BCI-Framework — BCI-Framework documentation

> Developed by Yeison Nolberto Cardona Álvarez
> Andrés Marino Álvarez Meza, PhD.
> César Germán Castellanos Dominguez, PhD.
> Digital Signal Processing and Control Group | Grupo de Control y Procesamiento Digital de Señales (GCPDS)
> National University of Colombia at Manizales | Universidad Nacional de Colombia sede Manizales

# BCI-Framework

A distributed processing tool, stimuli delivery, psychophysiological experiments designer and real-time data visualizations for OpenBCI.

BCI-Framework is an open-source tool for the acquisition of EEG/EMG/ECG signals, it is developed to work with OpenBCI’s Cyton board, the main core of this software lies on OpenBCI-Stream, a library that has been designed to handle all the low-level hardware features and extend the hardware capabilities with high-level programming libraries. An optionally distributed paradigm for data acquisition and streaming is available to be implemented, this approach stabilizes the sampling rate on non-real-time acquisition systems and consists on delegate the board handle to a dedicated environ and stream out the data in real-time. Write custom visualization for raw or processed time series and design custom neurophysiological experiments are the mayor features available in this application.

BCI-Framework consists of a graphical user interface (GUI) with a set of individual computational processes (distributed or in a single machine), that feed a visualization, serve a stimuli delivery, handle an acquisition, storage data, or stream a previous one (offline analysis). It has a built-in development environment and a set of libraries that can be implemented by the user to create their specific functionality.

## Screenshots

## Navigation

- Installation and running
  - Install from PyPi
  - Install from source code
  - Install in virtual environment
  - Running
- Configuration
- Interface
  - Toolbar
  - Montage
  - Connection
  - Electrode impedances
  - Records
  - Annotations
  - Properties
- Data analysis
  - Bare minimum
  - Data stream access
  - Simulate data stream
  - Built in methods
  - Receive markers
  - Send commands, annotations and feedbacks
  - Communication between analysis process
  - Framework integration
- Data visualization
  - Bare minimum
  - Data stream access
  - Buffer
  - Resampling
  - Plot raw data
  - Plot a reverse buffer
  - Topoplot
  - Skip frames
  - Framework integration
- Examples of data visualizations
  - OpenBCI: Auxiliardata
  - OpenBCI: RawEEG
  - OpenBCI: Rawtopoplot
- Stimuli delivery
  - Bare minimum
  - Stimuli area and Dashboard
  - Widgets
  - Sound
  - Pipelines
  - Recording EEG automatically
  - Send Markers
  - Hardware-based event synchonization
  - Fixation cross
  - Send annotations
  - Feedbacks
- Examples of stimuli delivery paradigms
  - Resting state and noiseacquisition
  - 4-Class motor imagery(Arrows)
  - 4-Class motor imagery(Pacman)
  - Visual workingmemory
  - P300speller
- Event marker synchronization
- EEG records exploring
  - MNE epochs
  - Export to EDF
  - RAW `ndarray` objects
- Illustrative example
  - Acquisition server
  - Configure montage
  - Configuration and connection with OpenBCI and then start the stream
  - Impedances
  - Raw EEG and topoplot
  - P300 speller
  - EEG records reading
  - Online classifier
  - P300 speller + Feedback

## Indices and tables

- Index

- Module Index

- Search Page