Thursday, April 10, 2014

OpenBCI: Measuring Electrode Impedance

An important driver of EEG signal quality is how well the electrodes are electrically connected to the skin.  Common clinical and research guidance often says to use skin cleansing and skin abrasion to get the electrode-to-skin impedance down below 10 kOhm or even 5 kOhm.  If you don't, you can get noisy or unrepeatable measurements.  Most EEG systems allow you to measure the impedance at each electrode.  The OpenBCI system that I have been helping to develop is also capable of doing this (see other's work on using the ADS1299 to measure impedance) but I have not taken the time to figure out how to use it.  Until now...

Measuring Electrode Impedance Using the ADS1299's "Lead Off" 6nA Current Source

Impedance from Voltage and Current:
  The main idea with measuring the impedance of the electrode-to-skin interface is for the EEG system to inject a known current through the electrode and to measure the resulting voltage difference.  Since V = I*R, you can easily compute impedance "R" by taking the measured voltage "V" and dividing by the known current "I".  Pretty easy, right?  Well, how do you inject the current?  And how do you measure the voltage across the electrode-to-skin interface?

Injecting the Known Current:  The core of the OpenBCI board is the ADS1299 integrated circuit from Texas Instruments.  It has a feature called "Lead Off Detection" that does this trick of injecting a known current into each electrode.  As you can see in the figure above, a very small current (shown as 6 nA) is forced into the electrode line by a current source built into the ADS1299.  So, no matter how much resistance or impedance is between the current source and ground (within reason, of course), the system forces 6 nA through the electrode to ground.

What is Ground?  Unless you are sitting in salt water or touching something big and metal, it is unlikely that your body is connected to ground.  To address this, an EEG system often provides an extra connection in addition to the regular electrodes.  This extra connection is usually called something like "bias", or "driven ground", or "driven right leg (DRL)".  The purpose of this connection is to keep your body's DC voltage level within an acceptable range and to keep any common-mode AC signals in your body minimized.  Therefore, the bias line will act to source or sink whatever current as necessary (within reason) to minimize your DC and common-mode AC signals.  As a result, for the 6nA current that we are injecting, "ground" is the bias driver, as shown in the figure above.

Making a Mental Model of Where the Current Goes

Measuring Just the Electrode-to-Skin Voltage:   If the bias driver is our ground, the figure shows one way to model where the current goes.  Note that the current passes through several unknown impedances on its way to ground.   How do we evaluate just the impedance of the "+" electrode's interface to the skin?  The answer is to remember that an EEG system measures the voltage between its "+" input and its reference (or "-") input.  Because of the high-input impedance of the differential amplifier, no current flows into the "-" electrode line, so none of its impedance elements matter (for the purpose of this measurement).  Therefore, we can easily measure just the voltage drop across the first three elements -- the 5K in-series resistor, the electrode-to-skin impedance, and the impedance of a portion of the human body.  Because the series resistor is known, and because the impedance of the body is too small to matter, we have only one unknown remaining -- the impedance of the electrode-to-skin interface.

Calculating the Impedance:  The model above shows the electrode-to-skin interface as a simple resistor.  While this is not quite right (it does have a capacitive component as well), we can use this model to roughly estimate the number we need.  Following from the basic V = I*R, we shuffle the terms to get R = V/I.  We know both "V" (the measured voltage drop) and "I" (the known 6 nA current), so we easily get "R".  The only trick is to make sure that you're using compatible units for voltage and current.  In my case, I'm measuring the voltage as an *RMS* value (not an amplitude value).  My current value (6 nA), however, is an amplitude value, not an rms value.  So, to make the units compatible my calculation must includes a factor of sqrt(2) to convert RMS into amplitude:

R = (Measured Voltage * sqrt(2))/(Known Current) 

Finally, remember that the "R" here is the the series resistance of the electrode-to-skin interface plus the 5K resistor built into the OpenBCI board.  So, to get the impedance of just the electrode-to-skin interface, you need to subtract 5K.

Testing on OpenBCI:  To confirm that this all works in real life and not just on paper (or, um, just on a blog page), I used one of my OpenBCI boards to test it out and confirm that it works.  The simplest test that I could devise was to use clip leads (see picture below) to jump together the electrode connectors.  Specifically, I connected four of the "+" electrode connectors to the single reference (ie,"-") electrode connector, which is then jumped to the bias electrode connector.  This configuration eliminates all of the electrode-to-skin impedances and the human body impedances.  The only impedances remaining are the 5K series resistors.  Hopefully, when I do my voltage measurements and divide by the 6 nA current, I'll get a number close to 5K.


Testing the Impedance Measurements on an OpenBCI V1 Board.
The colored wires are directly connecting  (ie, shorting) the electrodes
to the reference electrode and to the bias electrode.

Configuring for the Test:  Because I only had a few clip leads, I could only jumper four of the eight "+" electrode connectors.  As a result, when I ran OpenBCI, I only activated channels 1-4.  I configured the "Lead-Off Detection" settings to generate a 6 nA current source at a frequency of 31.2 Hz.  I then started to activate the current sources on the "P" side of each EEG channel.  I saw that I could activate and deactivate the signal on any given channel without affecting the signals seen on the other channels.  Excellent.

Screenshot of the OpenBCI GUI when running an impedance test on channels 1-4.  Click to zoom.
Note that ~31 Hz test signal is present in the first four channels
and that the resulting per-channel impedance is 5.4-5.8 kOhm.

Results:  With all four current sources active, I got the results seen in the screenshot above.  As you can see (click to enlarge), a 31 Hz signal is present in the first four channels.  You can see this in the time-domain montage on the right and in the frequency spectrum plot in the bottom-left.  On the time-domain plot, you can see that my labels indicate that the voltage induced on each EEG channel is between 23.0 uVrms and 24.5 uVrms.  Using my equation from a few paragraphs back, this yields impedance estimates of 5.43 to 5.77 kOhm.  Since I'm expecting to see the resistance of each channel's 5 kOhm resistor, this corresponds to an error of 9-15%.  Given that the ADS1299 datasheet says that the "known" current is only known to +/- 20%, I find my result to be very satisfying.  I'm feeling pretty happy right now.

Super-Advanced Topics:  With the method described above, you can measure electrode-to-skin impedance of the electrodes attached to the "P" inputs of this system.  The question remains on how to measure the impedance of the reference electrode (which is attached to the "N" inputs) and of the bias electrode.  The short answer for the reference electrode is that you can use the similar ADS1299 feature for the "N" channel (as long as you do not use SRB1 as a cheater way to mux the REF to all of the "N" inputs, which is what we do in OpenBCI V1).  And the short answer for the bias electrode is that the ADS1299 can detect if it is attached, but it cannot measure its impedance.  Luckily, the impedance of the bias electrode is not as relevant.

Overall Success:  So, I'm feeling pretty good about getting this impedance measuring to work.  The code for implementing this has been pushed to the OpenBCI GitHub.  The next step is do do some impedance measurements using actual electrodes on my actual head.  Look for a follow-up post!

Follow-Up:  I measured the impedance using disposable ECG electrodes as well as re-usable gold cup EEG electrodes.  You can see the results here:

Follow-Up: I linked this post to answer a question on the Texas Instruments user forums (regarding the Texas Instruments ADS1299 chip at the heart of OpenBCI).  This post was recognized by TI for a TI Community Award, Aug 2015.  Thanks, TI!

47 comments:

  1. Hello Chip, my name is Israel and i´m doing some tests on texas instruments´s development kit and I have some questions about your test:
    -Do you disconnect the bias electrode and check the impedance? is it the same?
    - which gain do you use on PGAs with the current of 6nAmp?
    - Are you using simetrical sources for AVdd and AVss (+2.5V and -2.5V)?
    - Are you configuring the "bias_sense" registers for the 4 channels under test?

    I made the same test but only in channel 1, and when I disconnect the bias electrode there is no difference as when it is connected.

    thanks!!!

    ReplyDelete
    Replies
    1. To answer your questions:

      1) I did not test the impedance of the bias electrode.
      2) I used the a gain setting of 24x
      3) I am using a bipolar power supply...+2.5V and -2.5V
      4) I am not using the bias sense registers...for me, that would require yet more studying of the datasheet, so I decided not to employ that feature and start more simply.

      Regarding having no effect of disconnecting the bias lead, it would indeed have no effect on your measurements as long as the act of injecting 6 nA into your body did not raise your DC level ie, your common mode signal) to the point of saturating the inputs of the ADS1299. You are a capacitor, so you do have some capability to store the charge. You are also often capacitively coupled to the environment in some small way, so you will leak charge. Either way, I too have disconnected the bias lead and still finds that it works on my body.

      It does NOT work, however, in my synthetic test described above where I shorted the connections to each other. When there is no human body involved, I guess there is no ability to absorb the current (since none goes into the "-" electrode input) so it immediate ceases to work as soon as I disconnect the bias.

      I hope that this helps you figure out your problem! Good Luck!

      Chip

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Hello Chip,

    Just wanted to say how very awesome it is of you to document and share this information; your time and effort in OpenBCI will translate into results beyond your expectation I believe. =D

    I have a novice/inexperienced question in regards to using these electrodes:

    If you were to place your head, or shall I say lay your body down and submerge your entire head into a bowl of highly salinated water with these electrodes placed throughout; what would we see in theory?

    Since the electrodes are not immediately placed close to the skin, but are in proximity of the lining of the container that holds a volume of highly salinated liquid my guess is we would see a lot of noise or signal mixture right?

    The reason I bring this up is I recently spent some time in a sensory deprivation tank; which is a container filled a 1000 lbs of epsom salts; where you lay inside and float buoyantly. The water and air is heated to near your body temperature so you lose sensation between the air/water difference. With your eyes open or closed, completely black. You basically feel like a floating brain in this environment and I believe it would be quite interesting to start monitoring EGG/EMG in this state, especially once we turn on a LCD screen and can give some visual input.

    However; in this floating environment wearing a headset might be distracting in itself(you lay naked in the tank); could the tank be lined with electrodes?

    These are the kind of questions that come to mind in this place and I would love to participate in testing this further; until I get my hands on a board to test myself was curious if you had any guess.

    Thank you so much,
    -Travis Ladner
    www.tladner.com

    ReplyDelete
    Replies
    1. Hi Travis,

      I'm not sure that I fully understand all of your questions...so let me answer about what I do know...

      While I have not measured EEG (brain signals) while submerged, I have measured ECG (heart signals) while submerged. I've not done it in highly salinated water, only fresh (tap) water. But, it worked just fine.

      The key is to insulate the electrodes on your body (as well as the electronics, obviously) from the water. Otherwise, the electrodes will short to each other through the water and not pick up your body's signals.

      With ECG electrodes on your body, it's a obvious how one can insulate / coverup the electrodes to keep them from touching the water. With EEG electrodes, it's not nearly as obvious how to insulate them. But, if you can, I see no reason why it wouldn't work as well as ECG did.

      If you're going to try it yourself, I definitely recommend trying ECG first. You can debug your setup in a much easier way than going for those troublesome EEG signals.

      BTW, if you're sitting in a big salty tank, think very carefully about how you're attaching yourself to your computer. This could be a real safety hazard here. Run everything off batteries! Stay isolated! Don't kill yourself!

      Delete
  4. Hello Chip
    I apologize in advanced for re-posting this question but I will shorten to hopefully make it less annoying.
    Is the amplitude of the frequency signal at 30Hz = 10 because of the 5KOhm impedance + the 5KOhm series resistor?
    Thanks in advanced
    Rafael

    ReplyDelete
    Replies
    1. Hi Rafael, I actually delayed replying to your previous post because I wanted to take a moment to look at the sections of the Dev Kit documentation that you referenced. But, since you've simplified your question, I try to answer just the simpler question...

      I'm not sure where you're seeing that the amplitude at 30Hz is 10. In my plots, the amplitude is 23-25 uVrms. So, with the equation that I gave in the main body of the post, you get:

      R = (24E-6 Vrms) * sqrt(2) / (6E-9 Amps) = 5.65 kOhm

      That ~5 kOhm value would be the single 5K resistor that I have in series with the "+" channel.

      If it were attached to my skin, and if I was lucky enough to only have a 5 kHz electrode-to-skin impedance, I would expect to measure a voltage of something like:

      Vrms = I_amp * R / sqrt(2)

      Vrms = (6 nA) * (5 kOhm + 5 kOhm) / sqrt(2) = 42.4 uVrms

      Does that help answer your question?

      Chip

      Delete
  5. yes, I understand it better now, thank you a lot!
    I didn't zoomed into your "EEG Amplitude vs (uV/sqrt(Hz)) vs Frequency" plot.

    By any chance have you seen the screenshots on this data sheet regarding impedance:
    http://www.ti.com/lit/ug/slau443/slau443.pdf
    Page 38 & 39:
    They stated that the FFT magnitude of the fundamental component will be directly proportional to the electrode impedance being measured, so looking at figure 45, at 31.25Hz, how does that amplitude relate to their 5K impedance?

    I was wrong to assume your plot was similar to this one!

    Thanks a lot for the useful insights!

    Rafael

    ReplyDelete
    Replies
    1. Hi Rafael,

      I can't help you with Figure 45. I tried a few guesses at what their vertical axis represents, but I can't seem to make it work out.

      I can help with Figure 44 and its text. In reading its text, it became clear to me that, unlike my bog post here, they choose to activate the INP *and* INM at the same time. The ADS1299 is wired (by default, at least) to push current out of INP and pull it in on INM, so the pseudo-circuit that I drew for my post doesn't really apply.

      If you do it the way that they do it, your expected voltage looks like:

      V_amplitude = I_inp * R_inp + I_inm * R_inm
      V_amplitude = 6 nA * 5 kOhm + 6 nA * 5 kOhm
      V_amplitude = 60 uV

      Since they were expressing their result as V_pp, you get:

      V_pp = 2 * V_amplitude
      V_pp = 2 * 60 uV
      V_pp = 120 uV.

      Done!

      Sorry that I couldn't help with their FFT plot. There are several ways to scale / normalize an FFT result, so it can be tough to back out what other folks did.

      Chip

      Delete
  6. Thank you Chip! that definitively helps, reading your blog post about not using SRB1 to mux the reference electrode with INMs (this is exactly what I'm doing) the alternative is to use SRB2, could you expand a little more on this subject?
    Thank you for all the great info, you are awesome.
    Raf

    ReplyDelete
    Replies
    1. On the SRB1 vs SRB2 issue...well, that's complicated. All of my EEG recordings (and most EEG recordings in general) use multiple sense electrodes and a single reference electrode. For the ADS1299, the question is where to attach the reference electrode.

      For OpenBCI V1 (the green board), the sense electrodes plugged into INP and the reference was plugged into SRB1 (which gets routed in the ADS1299 to *all* of the INM).

      For OpenBCI V2, we flipped it around so that the sense electrodes went into INM and the reference electrode plugged into SRB2 (which gets routed in the ADS1299 to the INP channels *of your choice*).

      Both setups work fine, though because of the oddities of how SRB1 functions, you cannot check the impedance of your reference electrode if it is connected to SRB1. The SRB2 approach solves that problem, and it gives more flexibility on which channels get the reference, but it seemed weird that my sense electrodes plugged into INM instead of INP. This cannot be what TI intended me to do. Clearly, there had to be the "right" way that I was missing.

      After more contemplation, I think that the way that TI intended was for you to pick any INM that you like and declare that to be your reference electrode. Then, you'd use the software settings for SRB2 to route that one INM electrode signal out of the ADS1299 via the SRB2 pin. External to the ADS1299, you would jump SRB2 back into the SRB1 pin. Then, you'd use the software settings to connect SRB1 to be the reference for all of the channels' ADCs.

      As far as I can tell this setup achieves all the goals: (1) a common reference electrode, (2) very flexible routine of signals, (3) the ability to check the impedance on all electrodes, including the common reference.

      Does that address your question?

      Chip

      Delete
  7. yes, that's great, I have much further reading to do on the SRB2 and SRB1 routing but is good to know that only using SRB2 I can obtain reference electrode impedance.

    On the above GUI, if you were to check for impedance on the reference electrode, where would the value show up? across all channels? just curious
    Thanks
    Rafael

    ReplyDelete
    Replies
    1. Yes, you're right! When I activate the impedance monitoring on the ref channel, the waveform appears on all the channels on the GUI simultaneously.

      Delete
  8. Nice job. I have been involved in developing gels, creams etc. for a long time. Way back the standard ECG gel was 20% saline and you could get good impedances. Some patients complained about irritation so they eventually went to 0% saline. People still use saline based gel in research applications. If you email me your address I would be happy to send you some saline gel and also a tube of Grass EC2 that is widely used in clinical EEGs. This has a real high impedance paste. Another way to get the impedance down is to use a Alcohol/ pumice prep pad. I could also send you some of these. Karlzurn at gmail

    ReplyDelete
    Replies
    1. Hi Karl,

      Thanks for the discussion about gels...I am familiar with some of the current options out there. When I'm using these individual cup-style electrodes, I feel that the gels won't be sufficiently sticky to hold the cups to my skin, so I stay with the thicker materials like the Ten20 paste.

      Having done a fair amount of work with ECG, in addition to EEG, I'm also familiar with skin preparation techniques such as scrubbing and abrading the skin. No fun!

      I think what really surprises me about my EEG impedance results is the variability in impedance for two sites that are so close together...such as the two locations on the back of my head. Or, in other results (not shown here), I can get ~10K on the sides of my head (C3/C4) but have difficulty getting < 60K on the back of my head.

      It's clear why the forehead might be different (no hair), but why is the back so different compared to the sides? Odd. And interesting.

      Thanks for reading!

      Delete
  9. I just looked at your profile. I live most of the time in Florida but still maintain a house in St. Albans. We might be able to get together some time as I am in Vermont every other month.

    ReplyDelete
  10. Hey Chip, can you write me at dmrelashvili@gmail.com, I have some ideas about further usage of what you have done with EEG recording

    ReplyDelete
  11. Dear Chip,
    Very useful and interesting post!
    I'm trying to test, but I don't understand what registers have to be used from the user manual.

    Does it need to set only the register: LOFF to 01 - FLEAD_OFF[0:1] at 01 (enable ac leadoff)? Or do you have a different list of registers?

    Thanks!

    ReplyDelete
  12. Hi chip.This is a simplest way i seen to measure resistance.Thanks for your time.
    Do you have any idea to measure skin to electrode capacitance or total impedence.

    Thanks

    ReplyDelete
    Replies
    1. Measuring the capacitive component seems harder than measuring the resistive component. One way that you might be able to measure the capacitive component would be to measure the phase lag between the drive signal going into your body and the sensed signal coming out of your body. You can't do that with the setup shown above because you don't know the timing (ie, phase) of the drive signal.

      To get the drive signal, you could probably use a jump wire to send the OpenBCI drive signal back into one of the unused OpenBCI input channels (in addition to sending that same drive signal into your body). By recording the direct signal along with the signals from your body, you could compute their phase and estimate the capacitance necessary to induce that much phase shift.

      Note that I haven't ever done any of this...it's merely me thinking out loud about how I might try to do it. If you try it, let me know what you find!

      Delete
  13. nice to meet you ,excuse me , I have some questions about the ADS1299, REF is connected to CZ? Fz is connected to GND? CH1p is connected to Fp1? please help me, thanks

    ReplyDelete
    Replies
    1. For the experiment shown here, none of the electrodes were connected to my body. I used jumper wires just to connect between the different pins of the OpenBCI board.

      For my follow-up test (at the link below), I put one electrode on my forehead, which was connected to CH1. I put the REF behind my left ear and I put the BIAS behind my right ear. Many other configurations are possible, too.

      http://eeghacker.blogspot.com/2014/04/impedance-of-electrodes-on-my-head.html

      Delete
    2. This comment has been removed by the author.

      Delete
    3. Hi Chip,
      excuse me , How do you judge Measuring signal correctly?

      Delete
  14. Hi Chip,

    I enjoyed reading all your posts, keep up the good work!

    I have a similar setup with a ADS1299, but not the openBCI. I tried verifying the impedance measurement with your method described here, but not successful yet. I’m using the SRB1 pin for the reference electrode, it has the same lowpass anti-aliasing filter as all positive electrode inputs. The reference electrode is routed to every negative input via the mux. Also, the bias output electrode has the same AA filter.
    On the schematic from openBCI v2.2 I saw an anti-aliasing lowpass-filter (5k + 4.7nF) at every input of the ADS1299. The 5k resistor you are talking about here is that resistor from the lowpass filter I assume. What about the influence of the capacitor? It is difficult to see in your signal waveforms, but I guess you also have some voltage spikes at every edge caused by the capacitor. Since these spikes affect the RMS value the calculated resistance is affected by them. Any thoughts on that? The method you described here makes sense to me, but does the assumption, that there’s no current flowing in the “-“ input, still hold if you consider the capacitor?

    Also (not really related to that), I am interested in how your bandpass filter is implemented. Is it a FIR or IIR? What about passband-ripple and roll-off characteristics?

    Cheers,
    Andy

    ReplyDelete
    Replies
    1. The 5K + 4.7nF is indeed for low pass anti-alias filtering. The resistor is in-series while the capacitor is to ground. It's a simple 1st order roll-off.

      As for the spikes, I don't know what you're talking about. A first-order low-pass filter will help suppress transient spikes, not generate them. Also, a first-order filter like this will never overshoot or "ring" like a higher order filter.

      As for the effect of the capacitor on the impedance measurement itself, it does induce some small amount of attenuation at the frequency used by the impedance-measuring test signal generated by the ADS1299. Given that the ADS1299 itself says that the impedance-measuring current is only accurate to +/-20%, and given that one is simply using the impedance checking to make sure that the skin impedance is "low" (a very non-specific term), I think that any effect of the cap is not relevant to the needs of this application.

      Chip

      Delete
    2. You're right about the spikes, my bad.
      One more question on the side here: are you able to use the continuous dc lead off detection simultaneously with the bias drive? Whenever I enable the bias drive it seems to saturate the dc lead off comparators.

      Delete
    3. I have not tried to measure the impedance of the bias electrode, nor have I tried to use the "lead off detection" to see if it was attached. Sorry.

      Delete
    4. I see. Well, in case I figure it out I will post it here, maybe somebody else is stuck with the same problem...

      Delete
  15. Hey thanks for the awesome post! I tried the impedance measurement like you've done here, but I was constantly getting a very low value. For example with everything shorted and biased, the impedance read only 3k and not 5k from the series resistor. I went further and attached a potentiometer and after some tinkering I found that adding a "fudge factor" of 0.5 times my impedance measurement produced roughly an accurate figure (ex. 3k + 0.5 * 3k = 4.5k).
    Do you have any idea on what is causing this massive error in the measurement? I mean, a constant 50% error? Damn.

    Anyways thanks for the post!

    ReplyDelete
    Replies
    1. As stated in the post above, the current that is being injected by the ADS1299 is +/-20%. It is very reasonable that a "correct" reading of the in-line 5K resistor might be anywhere from 4K to 6K.

      If you are getting 3K, that is a bit low. I, too, have seen values that low, and I'm not sure why. It is possible that there is some capacitive coupling somewhere in the system that violates my purely-resistive model described above. Maybe that's the cause of the unusually low readings.

      Based on my experience with OpenBCI and with other EEG system, the process of measuring the electrode impedance seems to have a bit of an art (or voodoo) to it. I've never been completely satisfied.

      Even with these errors, though, the values are good enough to know when an electrode is attached well and when it is attached poorly. That's the main purpose of these impedance checks, so I've accepted that the performance is good enough.

      Delete
  16. Hi Chip,

    I am looking into methods for taking impedance measurements in particular. Quick question, are you using the ADS1299's onboard ADC and PGAs to record EEG signals following injection of the 6nA? I am considering using the similar ADS1194 (16-bit) since it is cheaper and I only require 4 channels.

    In forums, TI have suggested the use of pre-amplifiers before the ADS1194 due to a large amount of noise appearing at its input, since there is no filtering occurring in any way prior to the PGAs. The suggestion of pre-amplifiers however defeats the purpose of having impedance monitoring, since you cannot inject current into the output of instrumentation circuitry.

    Does this mean that I should consider using the ADS1xxx for injection of current (directly attached to the passive EEG electrodes), and completely separate instrumentation circuitry for recording data? This means I won't be making use of their PGA, ADC and SPI functionality, which seems like a big waste to me.

    Sean Grech

    ReplyDelete
    Replies
    1. Hi Sean,

      For impedance measurement using the ADS1299, I only used its on-board features...it's built-in ADCs, PGAs, and current source.

      Sadly, I don't know anything about the ADS1194, so I can't help you there. Sorry!

      Chip

      Delete
    2. No problem. OK thanks!

      The EEG signals you are reading using the ADS1299 are precise enough to perform signal analysis, such as FFT I assume?

      I've found that the ADS1298 and ADS1299 are basically identical, except the ADS1299 is made for low-noise applications (EEG) - and are more expensive.

      One last question, the bias and reference electrode are shorted together throughout, correct? The bias driver therefore serves as a ground point...

      Sean

      Delete
  17. Hi, Sean. We've tried to measure impedance of the pside by turning on the respective channel in the LOFF_SENSP register only. Then we've turned off pside in the LOFF_SENSP register and turned on nside by turning on respective channel in the LOFF_SENSN register. And we've got the same impedance values on both sides while it doesn't have to be so. May be we've done something wrong in setting registers. Can you give us detailed settings of the LEADOFF registers in order to measure impedance of the p_electrode only and for the n_electrode of the channel only. Thanks in advance.

    ReplyDelete
  18. Chip, I'm attempting to replicate your efforts in impedance measurements using the ADS1299 Eval Board but not getting anything near valid results. Is it possible to test directly on a single channel? Or do you need to include the connection to the Bias Driver?

    Struggling here and thought I'd reach out and see if you had any hints/tips.

    ReplyDelete
  19. I was wondering at which frequency you guys are measuring impedance in the openBCI. When we measure with the Autolab we get impedances of about 800kOhm at frequencies of 5-50Hz and with the same electrodes we get 40kOhm at openBCI. We are wondering about the frequency you guys use for your resistance values in the P and N settings of openBCI?

    ReplyDelete
  20. Hello,
    I am planning to make ABR(Audio Brain sterm responses) device. In this application, electrodes (three electrodes) connected as similar as you shown in figure. Application works as mentioned below
    1. Play audio clicks through speaker(100us duration)
    2. Start measuring evoked potentials for 10-15ms
    3. Please suggest, how many samples sufficient to analyze data?
    4. At what sampling rate should we run ADS129X?
    5. Which should be the ideal chip for application ADS1299 or ADS1298?
    6. I am thinking to choose ADS1298, because, it has higher sampling rate
    7. Please suggest us

    ReplyDelete
  21. Hi there,

    I'm trying to figure out if the value shown in the newest release of the OpenBCI GUI is with or without the 5 kOhm resistor.

    I get an impedance of 18kOhm shown on the left when the voltage shown on the right is 76.4 uVRMS.
    Using your formula:
    ( 76.4u * sqrt(2) ) / 6n = 18 kOhm.
    So is the actual skin-electrode impedance 13 kOhm?
    I'm just surprised its not th elower value shown in the GUI.

    ReplyDelete
    Replies
    1. Also, when I short N1 to SRB, I get a resistance of 3.6 kOhm consistently.
      I tried putting in a 5.5 kOhm resistor then expecting to see 9.1, instead I got 7.48 kOhm.
      Any idea?

      Delete
  22. Sorry, i can not undestand, for what you did it - "I'm measuring the voltage as and RMS value, whereas the 6 nA current is an amplitude not rms value"

    ReplyDelete
    Replies
    1. I fixed the typo ("and" should be "an") and I slightly expanded the surrounding text to try to clarify. Hopefully, this helps!

      Chip

      Delete
  23. Hi Chip,

    Thanks for the post.
    Please, you can show the registers of the ads1299 to make this test?

    ReplyDelete
  24. Hi Chip,

    I am new to these EEG measurement, so these information is really awesome.

    You mentioned in the other post that for a single measurement, we have to use the exact same type of electrode for active, ground and reference. Could you please elaborate more of why we need to use the same type of electrode? From your diagram it seems like the skin-electrode impedance of reference and ground electrode should not affect the skin-electrode impedance of the active electrode (the one you highlighted in yellow).

    Thank you & Cheers!

    ReplyDelete
  25. Hi Chip, In continuation of this impedance measurement, I want to ask:
    1. Does the code requires to set bits of 'LOFF_SENSP/SENSN' register?
    2. From which register have you enabled the bias driver which will sink that 6nA current? How is that configured?

    ReplyDelete
  26. Eeg Hacker: Openbci: Measuring Electrode Impedance >>>>> Download Now

    >>>>> Download Full

    Eeg Hacker: Openbci: Measuring Electrode Impedance >>>>> Download LINK

    >>>>> Download Now

    Eeg Hacker: Openbci: Measuring Electrode Impedance >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete
  27. Awesome blog! Very helpful and understanding article with good knowledge sharing.

    ReplyDelete