The Problem
The Bittium NeurOne Tesla is a research-grade EEG system with no official Python SDK. Its recordings live in a proprietary binary format, and the only reference tooling is a Matlab library from the manufacturer.
If you want to work with NeurOne data in a modern Python stack, you're reverse-engineering the binary layout yourself - or you use this.
What It Does
pyneurone_tools parses NeurOne session directories and exposes EEG recordings and events as clean Python objects.
Data comes out as (samples, channels) numpy arrays in nanovolt.
Events come out as a pandas DataFrame with full marker metadata - TTL trigger codes, sample indices, source port names, and event descriptions — ready to slice into epochs without any manual parsing.
The session/recording/binary-file hierarchy matches the NeurOne software's own terminology, so there's no impedance mismatch between what the recording operator sees and what the code exposes.
Implementation
- Binary layout reverse-engineered from the official NeurOne manual
- Integer ID codes mapped to strings via a port of the manufacturer's Matlab toolbox
- Selective channel loading - pass channels='all' or a list of names
- Exposes sampling rate, AC mode flags, and filter settings alongside raw data
- CI via GitHub Actions on Python 3.7–3.10; published to PyPI as neurone_tools