BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.
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.
Website and download: http://bci2000.org/
Documentation: http://doc.bci2000.org/
User support forum: http://bbs.bci2000.org/
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.
Software packages based on BCI2000
Evoked Potential Operant Conditioning System (EPOCS)
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 here, 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).
Elizan software for basic science applications
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).
Keyhole
Keyhole is a lightweight Arduino-IDE library for serial-port interaction, allowing users to send commands and get/set firmware variables via a JSON- and Python-compatible text interface. It is compatible with the versatile new BCI2000 extension "SerialInterface" (released 2023). It can be downloaded here.
SignalAcquisition
Signal Acquisition is a library for the Arduino IDE that allows users 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 the new BCI2000 source module "SerialWidget" (released 2023). It can be downloaded here.
Other Software packages
RecuitmentCurveFitting
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 downloaded here.
Hardware
SyncGenie
SyncGenie is a programmable synchronization device designed for a range of uses in neuroscience research, primarily as a “trigger box” to align neurophysiological data with physical stimulus events, among other possibilities. It can support both hardware-triggered and software-triggered pulse synchronization and can even serve as a cost-effective digitizer for real-time analysis of analog signals. This is an open-source hardware device. 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 available here.