Uniform Data Acquisition API for All Devices


Applications on top of BrainFlow are device agnostic from the box. So, you can target more users and can switch devices without changes in code!

params=BrainFlowInputParams()
# provide params for your particluar device
# its the only device specific code
params.serial_port="COM3"
params.ip_address="192.168.0.11"
#.......

board_shim=BoardShim(board_id, params)
eeg_channels=BoardShim.get_eeg_channels(board_id)


8 Language Bindings


board.prepare_session()
board.start_stream()
time.sleep(10)
board.stop_stream()
data=board.get_board_data()
board.release_session()

Deep integration into Python, C++, Java, C# and support for Julia, Matlab and Rust. This allows a very smooth transition from one programming language to another and simple integration to existing applications!



Powerful Signal Processing and ML API


BrainFlow also provides Signal Processing and ML API which can be used independently from Data Acqusition API. It can apply filters, transforms, clean data and calculate derivative metrics like concentration from raw data and much more.

for channel in eeg_channels:
	# check all supported filters and parameters in docs
	DataFilter.perform_rolling_filter(data[channel], 3, AggOperations.MEAN.value)