BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows system, and the source code can be complied on Borland C++ Builder 6.0, VisualStudio, and other platforms. The BCI2000 infrastructure includes extensive support, including online documentation with a wiki and a BCI2000 forum with over 6000 posts. For more information, or to download BCI2000, click on the links or our BCI2000 graphic below.
This graphic shows how BCI2000 can help with different software needs for BCIs and other types of adaptive neurotechnologies. The signal acquisition and output device hardware needs software that can manage the information that goes in to the system and comes out of it. BCI2000 can do this, and can also provide signal processing software and an overall operating system that keeps the different components of BCI2000 working together smoothly.
The BCI2000 platform has been widely used in BCI research and related work. It has more than 11,000 users, and it has supported the studies described in over 2,500 peer-reviewed publications. Thus, we are moving toward our vision of guiding BCI2000 toward a commonly used platform for not just BCIs but a myriad of other real-time signal processing platforms.
Prior to 2013, reflex operant conditioning in humans was performed using a patchwork of research hardware and software, loosely based on the architecture of the pre-existing BCI2000-based Elizan system for animals. As evidence mounted for the protocol’s efficacy, it became necessary to create a stable platform that could be used to replicate the setup in different laboratories and the results in the hands of different researchers and clinicians. In 2013–2014 Jeremy Hill and Aiko Thompson created the Evoked-Potential Operant Conditioning System (EPOCS). This combined the flexibility and tried-and-tested stability of its underlying BCI2000 infrastructure with a new graphical front-end that guides the operator through the stages of the protocol and provides the necessary on-the-fly analysis to link each stage to the next. The platform included specifications for reliable default hardware while providing sufficient flexibility for use with a range of alternative amplifiers and stimulators if necessary. As such, it quickly became the basis for all of MUSC’s and NCAN’s human operant-conditioning studies over the subsequent decade, and has been disseminated to several laboratories outside NCAN. EPOCS has been described in detail, in the context of a basic ROC protocol, by Hill et al. (2022). It has also inspired the development of a commercial clone by BioCircuit Technologies (see Collaborative Project #6: Clinical System for Reflex Operant Conditioning). If you are a neuroscientist or clinical researcher who would like to use EPOCS in your lab, you can download it directly from bitbucket, although we advise that you also contact us directly so that we can assess your needs and guide you in setting up your system by emailing Jeremy Hill (hill@neurotechcenter.org) and Cc: Jonathan Carp (carp@neurotechcenter.org).
Originally conceived in 1979, and implemented on a Digital Equipment PDP-11/34 microcomputer to support 24/7 operant-conditioning studies in rats, over the past two decades, Elizan has evolved into Elizan III, a portable and scalable BCI2000-based system for long-term animal studies that leverages off-the-shelf hardware and open source software to manage 24/7 operant-conditioning along with continuous data acquisition storage and analysis. Elizan III is based on a layered system model with a front end for configuration and providing ongoing and retrospective analysis results, a middle-ware for analysis, online animal control, and interfacing with a database, and a mySQL database for ongoing storage and rapid analysis of the acquired operant-conditioning trials. Although it can currently only realize one single therapeutic interaction at a time (e.g., H-reflex conditioning), it has no inherent limits to the number of animals that can be controlled, and it has been validated in studies that simultaneously trained up to 10 animals with 2000-8000 daily operant-conditioning trials. The system architecture is hardened against system failures to operate without any interruption 24/7 for several years. For example, the client-server architecture allows for the seamless adoption of new animals, while server-grade hardware with dual power supplies and redundant storage ensures that any hardware failures will not affect the often months-long operant-conditioning trials. Elizan III has been validated in over 50 studies over the past two decades. If you are a neuroscientist or clinical researcher who would like to use Elizan in your lab, please contact us by emailing Jeremy Hill (hill@neurotechcenter.org) and Cc: Jonathan Carp (carp@neurotechcenter.org).
SignalAcquisition is a library for the Arduino IDE that makes it easy for users' custom microcontroller projects (based around low-cost devices like the Arduino, Teensy or Pico) to sample signals at regular intervals and send the resulting samples, in batches, over a serial port using a simple binary protocol. It provides a counterpart to BCI2000's "SerialWidget" source module (released 2023). Together, SignalAcquisition and BCI2000 allow flexible signal digitization at low cost, for prototyping and debugging of custom neurotechnology systems during development and training. The SignalAcquisition library can be downloaded via the Arduino IDE's Library Manager (see also its official page on arduino.cc).
Keyhole is a lightweight Arduino-IDE library for serial-port interaction on low-cost microcontrollers like the Arduino, Teensy or Pico. Keyhole makes it easy for users to send commands from a computer to query or change firmware variables on the microcontroller, via a JSON- and Python-compatible text interface. It has broad applicability as a supervisory control and debugging utility, across a wide range of science and engineering disciplines. It is easy to use from the Arduino IDE's Serial Monitor pane; it also comes with a lightweight Python library that facilitates automating the computer's side of the interaction; alternatively, it can be used with BCI2000's versatile "SerialInterface" extension (released 2023). The Keyhole library can be downloaded via the Arduino IDE's Library Manager (see also its official page on arduino.cc).
This Python package provides classes that implement the recruitment-curve fitting formulations of McKinnon et al. (2023), thereby allowing interpolation and interactive plotting of EMG recruitment curves—especially suitable for the M-wave and H-reflex components, respectively, of the EMG responses to electrical peripheral nerve stimulation. It can be installed via Python's "pip" package manager or downloaded directly from the Python Package Index.
The SyncGenie is a programmable synchronization device designed for a range of uses in neuroscience research. With its default firmware, it is a configurable stand-alone “trigger box” that enables neurophysiological data to be aligned with physical stimulus events. It can also be re-programmed for a wide range of other applications: for example, to support both hardware-triggered and software-triggered pulse synchronization, to measure audio or video latencies, to deliver trigger pulses on unique custom-programmed schedules, or even to serve as a cost-effective digitizer for real-time analysis of analog signals. In short, it is the neural engineer's "Swiss Army knife".
This is an open-source hardware device (per OSHWA certification number US002698). The printed circuit-board design file, 3D-printable model for the enclosure, components list, assembly instructions, Arduino library, example firmware, and instruction manual are all disseminated via a dedicated repository on the Open Science Framework. The assembly instructions are in the article preprint, which details the SyncGenie's motivation, manufacture, and performance in a typical use case; this open-access article has also been published by the Elsevier journal HardwareX (Alkhoury et al., 2025).
The SyncGenie was developed as part of NCAN's collaborative project with Sudhin Shah's lab at Weill Cornell Medicine. It was initiated by Ludvik Alkhoury, Dr. Shah's post-doc, as a result of his attending Jeremy Hill's practical class on stimulus timing at the NCAN Summer Course in 2023, and its use and programming will be part of the curriculum of the NCAN Summer Course in 2025. Dr. Alkhoury can be reached at ludvik.alkhoury@gmail.com for queries about the SyncGenie.