Interpreting Cyton data format
I’m trying to use the data coming from my Cyton board, but I’m really struggling with the interpretation of some of this data. I'm using the info found here: https://docs.openbci.com/Cyton/CytonDataFormat/, but it isn't helping much.
I’m getting the data above. I understand the accelData and channelData, but what is auxData?
They also mention start/stop bytes, but when I check in the generated eeg data .txt file, I exclusively find stopByte 192 (=0xC0) after accelData. Also, none of the other stopBytes defined in the online documentation are ever used, and startBytes are missing altogether. To finish with: what does “valid: true” represent?
Comments
Hi Romain,
Generally it is recommended to use the Brainflow libraries to read the data stream and do the conversions. Rather than parsing the serial stream yourself.
https://brainflow.org/
https://brainflow.readthedocs.io/en/stable/Examples.html#python-get-data-from-a-board
The CSV text file recording is NOT the raw data stream, but has been pre-processed by Brainflow. The accelerometer values are not sent on every data packet.
William
Hello wjcroft, thanks for your response!
The problem is that I'm trying to use my EEG headset (Ultracortex Mark IV, cyton board, 8 channels) in a node.js application, which isn't supported by brainflow at the moment. So I'll have to figure out how to parse the data myself. Would you have any resources you could point me towards to achieve this?
I also have a further question about this:
The csv file shown in my original post has been generated with the OpenBCI GUI and I read on their website that this corresponded to the raw data, without any pre-processing, noise removal or filters applied. Is this correct, or is this info outdated? Does the latest version of the OpenBCI GUI use brainflow? If it's been indeed pre-processed with brainflow, what exactly has been done to the data? Is there anywhere I can find an exact list of the pre-processing done by brainflow on the raw data?
And thanks again for your help!
Best,
Romain
Romain, hi.
Have you looked at Alex Castillo's libraries?
https://github.com/neurosity/eeg-pipes
https://www.google.com/search?q=eeg-pipes
The CSV recording file IS raw, in terms of signal processing. The channel data is just raw microvolts with no filters. But the CSV does NOT represent the raw radio packet byte stream. The GUI is using Brainflow to receive the data. Brainflow questions can be asked on the Brainflow Slack,
https://brainflow.org/
William J Croft
Forgot to add.
eeg-pipes
is for the signal processing.openbci-observable
is the module to collect Cyton or Ganglion data stream.https://openbci.com/community/new-javascript-open-source-projects-for-openbci/
https://www.npmjs.com/package/openbci-observable
https://github.com/neurosity/openbci-observable
Update: It looks like a BrainFlow NodeJS binding is being considered for development in the near future. This would be compatible with all OpenBCI hardware. I am also planning to contribute to testing and development of this feature.