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
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.
brain.py implements the
Brain class, a subclass of
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.