Please do not e-mail me for questions about this project. I no longer develop it, nor test or use it on Emotiv devices. I don't work in this field anymore. Thanks!
python-emotiv is an open-source library to acquire data from Emotiv EPOC headset. Although Emotiv recently provided 32-bit SDK for Linux, we have chosen to use the reverse-engineered protocol as the code will be finally deployed on a Raspberry Pi or BeagleBone Black ARM box.
The library uses libusb to detect and access the dongle instead of hidapi. The udev rules create a /dev/emotiv_epoc symlink in /dev tree, if you want to directly read from that node, pass method="direct" when you create your EPOC object.
Parts of the project are inspired from mushu and emokit which is the pioneer of the reverse-engineered protocol.
- pyusb (Version >= 1.0)
- pycrypto
- numpy
- scipy
- matplotlib (For data analysis scripts under utils/)
- BeagleBone Black GPIO (For SSVEP BCI in examples/)
"labstreaminglayer is a system for the unified collection of measurement time series in research experiments and handles both the networking, time-synchronization, (near-) real-time access as well as optionally the centralized collection, viewing and disk recording of the data."
python-emotiv has preliminary support in lsl/ folder to stream Emotiv EEG signals to labstreaminglayer nodes.
utils.py contains a save_as_matlab() function to export the acquired signals as a MATLAB file. This function saves the EEG data according to the FieldTrip specification to ease the process of analysing signals with FieldTrip.
Just run python setup.py install
to install the module on your system.
When you run emotiv/epoc.py as a standalone application, it will dump sensor data to the terminal:
Ozan Çağlayan, Galatasaray University, Computer Engineering Dept.