Interpreting Cyton data format

RomainPRomainP Belgium
edited January 2022 in Hardware


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

  • wjcroftwjcroft Mount Shasta, CA

    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 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.

    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

  • wjcroftwjcroft Mount Shasta, CA
    edited January 2022

    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

  • wjcroftwjcroft Mount Shasta, CA
    edited January 2022

    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

  • retiututretiutut Louisiana, USA
    edited January 2022

    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.

Sign In or Register to comment.