-
Notifications
You must be signed in to change notification settings - Fork 258
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
base: development
Are you sure you want to change the base?
Fix Cyton impedance check board configuration #1211
Conversation
|
It looks like the macOS build pipeline is broken, which is not related to the code that was pushed. I'd like to replicate these results using resistors as part of the review. The code is fine. Great work @philippitts ! |
Forum users have been reporting broken impedance function well before March 2024. I would estimate many months. Totally appreciate Philip tracking this down. On the Forum thread below I have suggested that users who need a workaround can try building the GUI from source using Phil's 2 line fix. https://openbci.com/forum/index.php?p=/discussion/3790/high-impedance#latest
On the other hand, MANY groups using Cyton for university research projects, depend on accurate impedance checks to comply with their academic research protocols. So a wider distribution of this repaired GUI would be welcome. @jartuso also commented recently on Slack: "this is the cyton impedance problem that we've talked about before. @philippitts didn't we fix this? This one scares me." What you may want to be concerned about is that universities getting wind of this in larger numbers, could dampen sales. |
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; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relates to #1058
There was a problem hiding this comment.
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.
I just validated Phil's results. Looks good to merge @retiutut |
The Cyton impedance check configuration appears to be incorrectly disconnecting SRB2 and using Bias instead. This has led to incorrect impedance measurements as shown in #1204. This fix results in correct measurements with a 51 kOhm resistor - more tests to follow.