BrainFlow is a library intended to obtain, parse and analyze EEG, EMG, ECG and other kinds of data from biosensors
935 Stars
Updated Last
1 Year Ago
Started In
July 2018

GitHub all releases PYPI Nuget

BrainFlow is a library intended to obtain, parse and analyze EEG, EMG, ECG, and other kinds of data from biosensors.

It provides a uniform SDK to work with biosensors with a primary focus on neurointerfaces, all features available for free and distributed under MIT license.

Advantages of BrainFlow:

  • powerful API with many features to simplify development
    • Straightforward API for data acquisition
    • Powerful API for signal filtering, denoising, downsampling...
    • Development tools like Synthetic board, Streaming board, logging API
  • easy to use
    • BrainFlow has many bindings, you can choose programming language you like
    • All programming languages provide the same API, so it's simple to switch
    • API is uniform for all boards, it makes applications on top of BrainFlow almost board agnostic
  • easy to support and extend
    • Code to read data and to perform signal processing is implemented only once in C/C++, bindings just call C/C++ methods
    • Powerful CI/CD system which runs integrations tests for each commit automatically using BrainFlow's Emulator
    • Simplified process to add new boards and methods


Contribution guidelines

If you want to contribute to BrainFlow, be sure to review the contribution guidelines. This project adheres to BrainFlow's code of conduct. By participating, you are expected to uphold this code.

We use GitHub issues for tracking requests and bugs, please use BrainFlow's slack for general discussions.

The BrainFlow project strives to abide by generally accepted best practices in open-source software development.

Build Status

Build Type Status
Windows Tests Run Windows
Unix(Linix and MacOS) Tests Run Unix
Android Tests Run Android NDK
Alpine Tests Run Alpine
Valgrind Tests Run Valgrind
CppCheck CppCheck
Clang-Format Clang Format

Brainflow Bindings

We support bindings for:

Partners and Sponsors




Used By Packages

No packages found.