Accuracy of impedance test signal on Ganglion

Hi all,
First time poster. I don't yet have OpenBCI hardware, but my new Ganglion board (and the Low-cost Biosensing Starter Kit) are arriving tomorrow (fingers crossed).

Can anyone tell me anything more about the accuracy/error magnitude of the Ganglion's impedance test signal for measuring electrode impedance? I intend to use the Ganglion Signal Widget, as demoed here.

This blog post on an analogous mechanism for the ADS1299 on the Cyton board says that the error in the test signal current ("lead-off", ~6nA) sourced from the ADS1299 is +/- 20%, thus the error in the electrode impedance measurement should be within that same range. Is there a comparable calculation for the impedance measurements from the Ganglion?

I've looked at the Ganglion schematic but I'm pretty new to electronics so there's nothing super obvious to me there.

Comments

  • edited June 2020

    Also I know that head phantoms are a thing that can be used for characterizing impedance:

    I'd like to characterize the impedance of a few different electrodes and compare them. If the Ganglion/Cyton aren't great for this, any suggestions for a head phantom setup?

  • wjcroftwjcroft Mount Shasta, CA
    edited June 2020

    Thellertik, hi.

    Your best approach will be to wait until you have the actual Ganglion and electrodes, and measure on yourself under different conditions. Generally with newer EEG amplifiers, skin impedance is not as critical as with older equipment. Use the GUI impedance widget to check what you are seeing. Electrodes using conductive electrolyte (paste or gel), will always have lower impedance than dry electrodes. Another test you could do is monitor the amplitude of your eyes closed alpha waves, with different electrode setups. Note that alpha is strongest in occipital or parietal lobe locations.

    re: head phantoms. They are an impressive research tool, but quite involved to create and calibrate. So your best option is just live tests on your own head or on the head of a subject.

    https://openbci.com/forum/index.php?p=/discussion/637/methods-for-signal-validation-eeg-phantom-heads

    Regards, William

  • Hi William,
    Thanks for the response. Indeed I've received and tested with the hardware at this point, and it works pretty well. I'm still not sure about the magnitude of the error in the values, but they seem to vary as I expect (impedance is better when I press down, adding salt water to dry electrodes lowers impedance significantly) so I don't suspect they're inaccurate overall.

    I would still like to do a little more characterization though, considering impedance is still fundamental to understanding the noise performance of electrodes, it would seem. It would be nice to inject a square wave via the impedance test circuit, like they do in this paper.

    • Have you heard of anyone trying that? I think it's doable, from a quick peek at the firmware and schematic for the ganglion.
    • Do you know why the IMP_SIG output of the DAC in the impedance test signal generator (page 2 of the ganglion schematic) is tied to the #_IN+ signals ? This is confusing to me, considering I think the #_IN+ should only be receiving the test signal from an electrode, via the skin, no?
  • Added some of my own analysis here. Hopefully this isn't duplicative with documentation found elsewhere...but if it isn't I couldn't find it! The firmware itself is undocumented, thus not very helpful.

    How I think impedance calculation on the Ganglion works. See the schematic from my initial post for context.

    • DAC (U12) injects a known voltage. (page two of the schematic)
    • There's a current and a voltage drop across the 100 ohm resistor (R39)
    • IMP_SIG is tied to the positive side (e.g. 1_IN+) of the electrode-under-test
    • That postive-side voltage flows out through an electrode, through the head, and up through the ref electrode, completing the circuit. The current in this circuit is the same as that through R39, because the +/- inputs for the instrumentation amp are high impedance, and we assume (for an ideal opamp) that no current flows through them.
    • U14 measures the current through R39, and thus through the electrode (via uA_SENS)
    • The instrumentation amp measures the voltage between the electrode positive and ref

      • Though I'm confused here: when measuring the impedance for the ref electrode, how does this work? 
    • The known voltage output by the DAC and the sensed current (uA_SENS) are used to calculate the resistive component of impedance (which seems often be assumed to be the only part that matters at the low frequencies of EEG)

      • This happens here in the firmware. You can see there's a voltage divided by a current in that line

        • int _impedance = (HALF_WAVE * DAC_volts_per_count) / (((((maxPosCurrentCounts - minNegCurrentCounts)/2) * ADC_volts_per_count)/SHUNT_SENSOR_GAIN)/SHUNT);
        • (HALF_WAVE * DAC_volts_per_count) this appears to be the voltage drop
        • SHUNT  appears to be the current uA_SENS. Gain factored in with SHUNT_SENSOR_GAIN
        • I'm not really sure what the (((maxPosCurrentCounts - minNegCurrentCounts)/2) * ADC_volts_per_count) part is all about.
      • This also confuses me

        • it seems like the voltage drop measured by the instr amp is across TWO electrodes, both the electrode-under-test and whatever the return electrode is. The code that calcs impedance doesn't seems to factor in the presence of a second electrode.
        • Or does it? Maybe it's that (((maxPosCurrentCounts - minNegCurrentCounts)/2) * ADC_volts_per_count) part I don't understand?
        • From a pure dimensional analysis point of view, I see the volts from DAC_volts_per_count canceling with the volts from ADC_volts_per_count, leaving impedance as a 1/amp value. That's weird. 
Sign In or Register to comment.