Skip to main content

High level Python module for EEG/EMG/ECG acquisition and distributed streaming for OpenBCI Cyton board.

Project description

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


OpenBCI-Stream

High level Python module for EEG/EMG/ECG acquisition and distributed streaming for OpenBCI Cyton board.

GitHub top language PyPI - License PyPI PyPI - Status PyPI - Python Version GitHub last commit CodeFactor Grade Documentation Status

Consist in a set of scripts which deals with the configuration and connection with the board, is compatible with both connection modes supported by Cyton: RFduino (Serial dongle) and WiFi (with the OpenBCI WiFi Shield). These drivers are a stand-alone library that can be used to handle the board from three different endpoints: (i) a Command Line Interface (CLI) with simple instructions configure, start and stop data acquisition, debug stream status and register events markers; (ii) a Python Module with high-level instructions and asynchronous acquisition; (iii) an object-proxying using Remote Python Call (RPyC) for distributed implementations that can manipulate the Python modules as if they were local, this last mode needs a daemon running in the remote host that will be listening connections and driving instructions.

The main functionality of the drivers reside on to serve a real-time and distributed access to data flow, even on single machine implementations, this is achieved by the implementation of Kafka and their capabilities to create multiple topics for classifying the streaming, these topics are used to separate the neurophysiological data from the event markers, so the clients can subscript to a specific topic for injecting or read content, this means that is possible to implement an event register in a separate process that stream markers for all clients in real-time without handle dense time-series data. A crucial issue stays on time synchronization, is required that all system components in the network be referenced to the same local real-time protocol (RTP) server.

Main features

  • Asynchronous acquisition: Acquisition and deserialization is done in uninterrupted parallel processes, in this way the sampling rate keeps stable as long as possible.
  • Distributed streaming system: The acquisition, processing, visualizations and any other system that needs to be feeded with EEG/EMG/ECG real-time data can be run with their own architecture.
  • Remote board handle: Same code syntax for develop and debug Cython boards connected in any node in the distributed system.
  • Command line interface: A simple interface for handle the start, stop and access to data stream directly from the command line.
  • Markers/Events handler: Beside the marker boardmode available in Cyton, a stream channel for the reading and writing of markers are available for use it in any development.

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openbci-stream-1.0.0rc11.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openbci_stream-1.0.0rc11-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

Details for the file openbci-stream-1.0.0rc11.tar.gz.

File metadata

  • Download URL: openbci-stream-1.0.0rc11.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for openbci-stream-1.0.0rc11.tar.gz
Algorithm Hash digest
SHA256 fd4b8377c6c542afc4c511bf8a5e89da60f590364ebeb45d91bf2826f6fca8b4
MD5 c73498275eade48f06c4b7685b18606f
BLAKE2b-256 a63bd3d713a9d402c1d5a62130c9da8a7f7f83104ebbec8cf350f08ceea3a986

See more details on using hashes here.

File details

Details for the file openbci_stream-1.0.0rc11-py3-none-any.whl.

File metadata

  • Download URL: openbci_stream-1.0.0rc11-py3-none-any.whl
  • Upload date:
  • Size: 44.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for openbci_stream-1.0.0rc11-py3-none-any.whl
Algorithm Hash digest
SHA256 c13f239feacb0770dd0557eb839aabc144cb1163d87b5fc0dea4aafb461e61a2
MD5 bdd8245abfce0d0f492dcbb60c4d6a29
BLAKE2b-256 bd332a8de17564124d42f188a762015897f8ffaef86d9c67057a8f6f3cf19609

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page