Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


A simple library for reading data from a NeuroSky-based EEG headset.

Specifically, this was designed for reading data from toys using the low-end version of the NeuroSky chipset. While it generates data in the same packet format, the low-end chipset appears to only support a subset of the content generated by the full version.

The library does not itself specifically require a serial library (e.g. PySerial). The serial connection object is passed to the Brain constructor, and it is up to the user of the library to actually create it. The standard NeuroSky chipset, at least in the first generation of toy headsets, communicates at 9600 baud, no parity, 8 bits, 1 stop bit.

Requires Python 2.6 to 2.7. implements the Brain class, a subclass of Thread. A Brain object, running as a thread, reads bytes from the serial port as they arrive. Full packets' checksums are verified, and valid packets are sent to the Brain's packetHandler() method. The raw contents of checksum-failing packets are sent to its checksumFailHandler(). These can be overridden in a Brain subclass, or Brain can be instantiated as-is, with alternate handler functions supplied as arguments.

This is not (currently) a real unit test; it is just a couple of small functions that can be used for testing things that use Brain. Of most interest is the FakeSerial object: a serial port simulator that feeds canned data read from a file (data-100.json by default, also in the repo). This will let you work on stuff without having to wear the headset the whole time.


A simple library for reading data from a NeuroSky-based EEG headset



No releases published


You can’t perform that action at this time.