Viewing raw data from Cyton in Open BCI GUI

Is it possible to view the raw adc obtained data in Open BCI GUI, without applying any algorithms like denoising and other filtering?
Are any filtering algorithms running on chip on the PIC32?

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Bio, hi.

    The text CSV recording file produced by the GUI, is raw, without any signal processing. You can view that with various programs that can input CSV, such as EDFBrowser, Matlab, etc. Do note that the Cyton raw data contains a DC offset. This is typically removed with a high pass filter at .5 Hz or so. DC offsets can be in the range of millivolts, so thousands of microvolts. Normal EEG waveforms such as alpha and beta are well under 80 microvolts.

    No filtering is done on the Cyton PIC processor.

    Regards,

    William

  • William, its good to hear that!
    So the CSV file is saved in Open BCI format? I mean, would it be in something like 

    CH0 CH0 CH0 CH1 CH1 CH1 CH2 CH2 CH2... and so on 

    I have shown 3 bytes for each channel, I guess ADS1299 also gives back a status data per sample is that also written to the file?
  • wjcroftwjcroft Mount Shasta, CA
    No, it is a CSV text file, just ascii text, with channel values (in microvolts), separated by comma. The comments at the top of the text file give the format.
  • Ok that's good for starters. I was wondering if we can get access to the raw binary data thats streaming in and view it in OpenBCI, or maybe even in the OpenBCI Python Toolkit.
  • wjcroftwjcroft Mount Shasta, CA
    The GUI has a button near the top left (time series), that controls the filter setting. With this you can turn off the filtering. Note that it still must remove the DC offset, to allow the signal trace to remain centered in the screen.

    The raw live signal is always available via the SDK and data stream docs, and via language interfaces such as Python or LSL.


    LabStreamingLayer data format can be streamed out from the GUI Networking widget, and attached to various BCI apps such as OpenViBE, Matlab, and LSL language libraries,

  • This is great info!
    Thanks a million!
    Regards,
    Bio
  • edited May 2019
    So I did a sample capture, I have ECG probes LEAD1 and LEAD2 connected as per the diagram given in my earlier post. Also BIAS connected.
    And this is a snippet of my CSV file.
    I have not connected the electrodes to anything just left them open.

    92, -12333.29, -12311.70, -58054.05, -47450.54, -90175.07, -45506.27, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.541, 1558783606541
    93, -12675.07, -12653.68, -58049.11, -47449.85, -90177.13, -45510.59, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.541, 1558783606541
    94, -11713.48, -11691.42, -58038.56, -47424.99, -90174.51, -45493.49, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.541, 1558783606541
    95, -10278.78, -10255.72, -58020.63, -47385.50, -90168.21, -45467.83, -187500.02, -187500.02, 0.024, -0.032, 1.028, 16:56:46.541, 1558783606541
    96, -10656.24, -10633.33, -58000.81, -47369.69, -90160.32, -45466.71, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.541, 1558783606541
    97, -12310.89, -12289.28, -57996.89, -47388.22, -90164.56, -45493.04, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.541, 1558783606541
    98, -12661.41, -12640.04, -57997.30, -47392.96, -90171.80, -45502.70, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    99, -11699.10, -11677.02, -57983.38, -47364.77, -90165.30, -45482.02, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    100, -10258.82, -10235.58, -57961.27, -47320.90, -90154.30, -45451.85, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    101, -10630.94, -10607.94, -57942.76, -47306.01, -90147.40, -45451.76, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    102, -12284.92, -12263.15, -57937.75, -47323.45, -90150.21, -45476.88, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    103, -12635.49, -12613.96, -57934.02, -47324.34, -90153.08, -45482.58, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    104, -11680.40, -11658.25, -57923.14, -47299.31, -90149.48, -45465.17, -187500.02, -187500.02, 0.000, 0.000, 0.000, 16:56:46.542, 1558783606542
    105, -10241.75, -10218.48, -57904.58, -47259.01, -90141.38, -45438.75, -187500.02, -187500.02, 0.034, -0.038, 1.028, 16:56:46.542, 1558783606542

    I understood that the first number is the index and then there are 8 values in microvolts, and then 3 values of accelerometer data in G and them 2 time stamp values?
    The first timestamp seems to be in HHMMSS and then milliseconds. What is that huge number at the end?
    Also if the time stamp are in microvolts, so -10241.75uV would actually be 10.241mV correct?
  • wjcroftwjcroft Mount Shasta, CA
    It appears that the number after the timestamp is another format of the timestamp, since the milliseconds (last 3 digits) flip over at the same time. Note the accel. numbers only appear every 10 samples. You could verify this by checking the GUI source code.

    Yes -10241.75uV is -10.241mV.
Sign In or Register to comment.