Software

Software


BrainAccess software allows interfacing with BrainAccess devices, offers an infrastructure for setting up EEG and BCI experiments and ships with various EEG and BCI algorithms and applications.

The BrainAccess Board is a single-point entry application to communicate with BrainAccess devices, view and record EEG data, stream/receive EEG data to/from a network and launch a variety of available EEG and BCI apps.

The BrainAccess SDK is a collection of various libraries that give the user/developer direct control of the devices and access to EEG data with easy integration capabilities into user’s applications.

BrainAccess Board


BrainAccess Board is an application which allows interfacing with BrainAccess devices, saving and streaming EEG data and provides access to available EEG and BCI apps. 

BrainAccess Board Schema
Main components of BrainAccess Board and its connectivity to various sources

The main components of BrainAccess Board are listed below:

  • Configurator. In configurator EEG source is chosen, which could be a database containing EEG data, Lab Streaming Layer* of BrainAccess hardware. In the latter case, configurator would scan for available BrainAccess devices and connect to it and will allow choosing and labeling the EEG acquisition channels amongst other things. The EEG recorder could be turned on here as well to save all the data to a database and the data can be also selected to be streamed to Lab Streaming Layer to become available for other on the network. 
  • Applications. Under applications various EEG and BCI apps could be found such as EEG viewer, EEG data converter and other. 
  • Resources. A single entry point to other available resources for BrainAccess products. 

*Lab Streaming Layer is a middleware ecosystem used to stream, receive and synchronize neural, physiological and other data from various sensors. Read more on official website: https://labstreaminglayer.org/#/

BrainAccess Board supports Lab Streaming Layer that gives enormous flexibility when setting up experiments. The EEG and other data can be streamed/received over the network. This allows, for example, some computers collecting EEG data from BrainAccess devices, other computers providing stimulus and yet another computer collecting and recording all the streams. Lab streaming layer ensures synchronization between streams in time sensitive set-ups.  

BrainAccess Board LSL usage example
An example of the versatility of the BrainAccess Board working together with Lab Streaming Layer

Installation

Download BrainAccess Board from a Download Centre. It is a portable application and supports both Windows and Linux. 

System Requirements

Windows 10 or newer and Ubuntu 18.04 or newer are supported. The application takes up approx. 500mb on a hard drive.

BrainAccess SDK


BrainAccess SDK is a collection of libraries for controlling the devices, streaming and preprocessing EEG data. The libraries can be accessed via C/C++ or Python API. This gives the user direct control of the devices and access to EEG data and integration capabilities into user’s applications. Below is the list of software components included in the BrainAccess software installer.

BrainAccess Software Schema kopija
BrainAccess SDK component schema

BrainAccess Core


BrainAccess Core library provides an interface with BrainAccess electroencephalographs. It enables control of the device, configuration of acquisition parameters and streaming of EEG data to the computer.

The library has full control of the device for setting required channels for recording and their gains, measuring impedance, streaming EEG and other additional input data if available on the device. It also allows monitoring the state of the device such as battery voltage and level.

BrainAccess Core library features asynchronous requests, callback driven EEG data acquisition and supports multiple devices through the same bluetooth adapter.

BrainAccess Processor


BrainAccess Processor library has functions for EEG signal preprocessing such as detrending, filtering, FFT and other typical utilities.

BrainAccess Connect


BrainAccess software also includes some BCI algorithms as part of the BCI Connect library. It comes with C/C++ and Python API. Different BCI algorithms may need different EEG setups so please pay attention to the description of a particular algorithm.

SSVEP Classifier


The steady-state visual evoked potential (SSVEP) is a repetitive evoked potential that is produced when viewing flashing stimuli. Activity at the same frequency as the visual stimulation can be detected in the occipital areas of the brain.

 

SSVEP Classifier can recognize steady-state visual evoked potentials (SSVEP). If a person is presented with some visual stimuli flickering at different frequencies, SSVEP classifier can determine at which stimulus a person is focusing on.

 

This can be used as motionless control, where a user can choose between different presented options or even type a keyboard by only focusing his attention to a particular flickering letter.

 

The SSVEP classifier requires 2-6 electrodes placed in the occipital region (for example, O1, O2, P3, P4, Oz, Pz) with reference at Fp1 and bias at Fp2. Please see Python API documentation for more information on how to use the SSVEP classifier, which also includes an example of an SSVEP based keyboard and SSVEP based 4-direction movement classifier.

SSVEP keyboard example
SSVEP keyboard example

P300 Classifier


The P300 (P3) wave is an event-related potential (ERP) component elicited in the process of decision making. The P300 is thought to reflect processes involved in stimulus evaluation or categorization.

It is usually elicited using the oddball paradigm, in which low-probability target items are mixed with high-probability non-target (or “standard”) items. It surfaces as a positive deflection in voltage in EEG recordings with a latency (delay between stimulus and response) of roughly 250 to 500 ms. The signal is typically measured most strongly by the electrodes covering the parietal lobe. The P300 wave is present/most pronounced when a user is presented with target items, in other words target stimuli. The P300 classifier can be used as lie detector, speller (keyboard) and other.

Software - BrainAccess®
The electrode setup for the P300 requires 8 electrodes with reference electrode placed at Fp1 position and bias at Fp2 as shown in the picture.

Please see Python API documentation for more information on how to use the provided P300 classifier, which also includes an example of an P300 based keyboard (speller).

P300 speller
P300 speller

API


BrainAccess SDK can be interfaced through C, C++ and Python API. Python API is provided as a BrainAccess Python package and should be installed using pip.

Documentation for C/C++ and Python API can be found on the respective pages below:

Installation


Download Windows installer for BrainAccess SDK from the Download Centre. It is a single installer that installs all the BrainAccess software. For linux users download the debian package for installation of BrainAccess SDK. 

System requirements​


  • Windows 10 or newer and Ubuntu 18.04 or newer are supported.