Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Cyton impedance check board configuration #1211

Open
wants to merge 3 commits into
base: development
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions OpenBCI_GUI/BoardCyton.pde
Original file line number Diff line number Diff line change
Expand Up @@ -450,8 +450,8 @@ implements ImpedanceSettingsBoard, AccelerometerCapableBoard, AnalogCapableBoard

currentADS1299Settings.values.gain[channel] = Gain.X1;
currentADS1299Settings.values.inputType[channel] = InputType.NORMAL;
currentADS1299Settings.values.bias[channel] = Bias.INCLUDE;
currentADS1299Settings.values.srb2[channel] = Srb2.DISCONNECT;
currentADS1299Settings.values.bias[channel] = Bias.NO_INCLUDE;
currentADS1299Settings.values.srb2[channel] = Srb2.CONNECT;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.openbci.com/GettingStarted/Biosensing-Setups/EMGSetup/#obtain-emg-data-with-openbci-cyton-board

Streaming EMG Data with the OpenBCI GUI

Once you have the GUI open, turn off any channels that you have not connected to muscle sensors.

Then for Cyton, go to hardware settings and turn off SRB2 for all of the channels that you are streaming data from.

Note: This is because ordinarily SRB2 is the reference point from which potentials are measured. However we are now having muscles reference themselves, so we do not want it to look at this pin.

While this may work, it also seems like this may break checking impedances when doing EMG.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relates to #1058

Copy link
Member Author

@philippitts philippitts Apr 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does not matter if you are reading EMG or EEG. The impedance check remains the same and measures the impedance of one Cyton electrode against SRB2, regardless of where that electrode is placed. Per the tests above, BIAS should never be used for impedance checks. This makes sense because BIAS is used as input to the ADS1299 to create destructive interference patterns that reduce noise vs SRB2 which is the reference point against which a channel can be measured (usually for EEG).

If you look at my readings from the linked issue you can see that on almost all the BIAS tests the signal was steadily dropping. This is because the ADS1299 is canceling out the "common noise" it's reading from the BIAS pin.

EMG doesn't use SRB2 while acquiring signals because EMG references against a second EMG channel (in most cases), but to measure impedance, SRB2 must still be used. The easiest method is to switch the BIAS electrode to SRB2 for impedance measurements and switch it back to BIAS for signal acquisition.

currentADS1299Settings.values.srb1[channel] = Srb1.DISCONNECT;

fullCommand.append(currentADS1299Settings.getValuesString(channel, currentADS1299Settings.values));
Expand Down
Loading