Help interpreting ADS register information
grahambriggs
Corvallis
Can anyone help me interpret the ADS register report with respect to channel settings.
When I send ? to the board, it responds with register report that looks like this:
Board ADS Registers
ADS_ID, 00, 3E, 0, 0, 1, 1, 1, 1, 1, 0
CONFIG1, 01, B6, 1, 0, 1, 1, 0, 1, 1, 0
CONFIG2, 02, C0, 1, 1, 0, 0, 0, 0, 0, 0
CONFIG3, 03, EC, 1, 1, 1, 0, 1, 1, 0, 0
LOFF, 04, 02, 0, 0, 0, 0, 0, 0, 1, 0
CH1SET, 05, 68, 0, 1, 1, 0, 1, 0, 0, 0
CH2SET, 06, 68, 0, 1, 1, 0, 1, 0, 0, 0
...
I would like to parse CH*SET,,,,, into the parameters for the current channel settings. Obviously the first character is an index of the channel number, what does 68,0,1,1,0,1,0,0,0 mean? I tried to line these up with the channel settings properties described in the Cyton SDK, but there does not seem to be a 1:1 relationship between what you can set and what is in the report. For example, including the 68, there are nine fields, but you can only set six properties with channel settings according to the SDK.
If anyone has a spec sheet on the meaning of the fields in this report, it would be greatly appreciated.
Comments
Graham, hi.
This is the ADS1299 data sheet, listing all register settings.
https://www.ti.com/product/ADS1299
William
https://github.com/OpenBCI/OpenBCI_Cyton_Library/blob/master/OpenBCI_32bit_Library.cpp#L3678
https://github.com/OpenBCI/OpenBCI_Cyton_Library/blob/master/OpenBCI_32bit_Library.cpp#L3813
William
Thank yo for prompt reply. This is all very helpful. I have looked at the data sheet. I see where the register bits map to the settings value for all items except one.
OpenBCI Cyton SDK documentation talks about a single 'bias' setting. In the data sheet there is a BIAS_SENSP and BIAS_SENSN. How do you determine the OpenBCI 'bias' state from the data sheet. Do you use SENSP, SENSN, maybe both with some kind of logic, or something different altogether?
Thank you
GB
https://docs.openbci.com/docs/02Cyton/CytonSDK#channel-setting-commands
Bias is either on or off for a given channel. The GUI (or Brainflow program), already knows what state it placed the Bias in. Which defaults to on for all channels. Only the data sheet would answer your question as far as reading out the Bias state from the registers. I don't believe the GUI is "reading" Bias state from the registers. It already knows what it set Bias to.
https://github.com/OpenBCI/OpenBCI_Cyton_Library/blob/master/OpenBCI_32bit_Library.cpp#L2584
To follow up for anyone else who has interested, through experimentation I have confirmed the answer. When you use CytonSDK channel command and set bias to for a channel, it shows up in both the SENSP and SENSN register.
Here is register report for default configuration (all channels have bias on)
BIAS_SENSP, 0D, FF, 1, 1, 1, 1, 1, 1, 1, 1
BIAS_SENSN, 0E, FF, 1, 1, 1, 1, 1, 1, 1, 1
Here is register report after sending x2060010Xx6060010X (turn bias of channel 2 and 6)
BIAS_SENSP, 0D, DD, 1, 1, 0, 1, 1, 1, 0, 1
BIAS_SENSN, 0E, DD, 1, 1, 0, 1, 1, 1, 0, 1