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