Supported EEG hardware

The mindaffectBCI can supports different ways to connect to amplifiers allowing us to work with many different amplifiers. Here we give an overview of the main connection types and the supported amps.

BrainFlow Connections

The primary amplifier connection type is provided by brainflow. Thus any amplifier supported by brainflow can be used by the mindaffect BCI with a simple configuration file change.

Internally, we have most experience with:
  • openBCI Ganglion with 4 water-based EEG electrodes over the occiptial cortex using our 3d printed headband.
  • openBCI Cyton with 6 to 8 water based EEG electrodes over the occiptial cortex using our 3d printed headband

Brainflow supported

This online_bci uses brainflow by default for interfacing with the EEG amplifier. Specificially the file in examples\acquisition\utopia_brainflow.py is used to setup the brainflow connection. You can check in this file to see what options are available to configure different amplifiers. In particular you should setup the board_id and and additional parameters as discussed in the brainflow documentation.

You can specify the configuration for your amplifer in the acq_args section of the configuration file online_bci.json. For example to specify to use the brainflow simulated board use

"acq_args":{ "board_id":-1}

Or to use the openBCI Cyton on com-port 4

"acq_args":{
    "board_id":0,
    "serial_port":"COM4"
 }

LSL supported

If your amplifier supports streaming with the Lab-Streaming-Layer then directly use this as an acquisition device. Specificially the file in examples\acquisition\utopia_lsl.py is used to setup the LSL connection. You can check in this file for detailed (and up-to-date) information on what options are available for the LSL connection.

You can specify the configuration for your amplifer in the acq_args section of the configuration file. For example to use connect to the 1st LSL device with the EEG datatype, and only stream channels named Cz,C3,C4 use:

"acquisition": "lsl",
"acq_args":{ "streamtype":"EEG", "channels":["Cz","C3","C4"] }

Note: This does not actually start the amplifier stream. You will need to separately do that by separately running the appropriate amplifier-lsl driver. For example using the openBCI_LSL drivers to configure and start an LSL stream for a Cyton.

FieldTrip Realtime supported

FieldTrip is a toolbox for analysis of neuroimaging data. As part of it’s fieldtrip realtime support it provides drivers for a range of EEG/MEG/fMRI amplifiers. If your amplifier is supported in this way, you can use the FieldTrip acquisition driver to forward data from the fieldtrip amplifier driver to pymindaffectBCI.

You can specify the configuration for your amplifer in the acq_args section of the configuration file. For example to forward from FieldTrip buffer to pymimdaffectBCI use:

"acquisition": "ft"

Note: This does not actually start the amplifier stream. You will need to separately do that by separately running the appropriate amplifier-ft driver, see the list of implementations.

BrainProducts LiveAmp

Thanks to valuable support from BrainProducts, including loan equipment for testing, MindAffectBCI includes ‘out-of-the-box’ basic support for the BrainProducts LiveAmp. Specificially the file in examples\acquisition\utopia_brainproducts.py is used to connect to the amplifier. You can check in this file for detailed (and up-to-date) information on what options are available for this amplifier.

Note: To use this amplifier you must:
  1. first install the amplifier driver, which you should have recieved along with your amplifier) and
  2. have attached your ‘key-dongle’ to an available USB port on your computer.

You can specify the configuration for the LiveAmp in the acq_args section of the configuration file. For example to use this amp with default configuration use:

"acquisition": "bp"

AntNeuro eego

Thanks to valuable support from AntNeuro, including loan equipment for testing, MindAffectBCI includes ‘out-of-the-box’ basic support for the ANT-NEURO EEGO. Specificially the file in examples\acquisition\utopia_eego.py is used to connect to the amplifier. You can check in this file for detailed (and up-to-date) information on what options are available for this amplifier.

Note: To use this amplifier you must first install the amplifier driver, which you should have recieved along with your amplifier.

You can specify the configuration for the eego in the acq_args section of the configuration file. To use this driver with default config use

"acquisition": "eego"

Other Amplifiers

Alternatively, thanks to valuable support from their developers, we support some non-brainflow amplifiers ‘out-of-the-box’, specifically;

Add your own AMP support

If you have an amp which is not currently supported, and you have a way of getting raw samples out of it, then you can easily (7 lines of Python!) add support for your device as described in the Add a new Amplifier tutorial.

_Hardware Makers_: We are also happy to add support for additional amplifiers if EEG makers request it and are willing to provide open-source SDKs and test hardware.

Running on a Raspberry Pi

The mindaffectBCI can run directly on a raspberry pi. However, your milage may vary depending on which model of pi you have, we recommend;

  • To run the complete BCI stack, with screen-based presentation, acquisition, decoder, etc., a pi model 4
  • To run just the decoder or decoder with LED based presentation, a pi model 3 or higher.
  • To run just LED presentation, then a pi zero
Depending on which part of the BCI you want to run, you will need to install some additional packages. For the full-system deployment on a Pi-4 you will need:
  • Java:
  • BLAS:

In additon to enable openGL in the desktop you should enable the KMS (or fake-KMS) GL driver support by.

  • open raspi-config
  • Go to Advanced Options -> GL Driver -> GL (Fake KMS)
  • reboot your Pi for the settings to take effect