Problem: The previous prototypes of EOGlass that I have shown use wet electrodes to make good contact to the user. This results in a reliable, low-impedance connection but is also messy and inconvenient. Recently I’ve been trying out dry electrodes for convenience, but they suffer from two main issues: drift and noise.
Both of these issues stem from the increased electrode impedance. If there is a large impedance between the user and the ground electrode, noise (particularly 60Hz mains noise) is able to couple onto the user. If there is a large impedance between the user and the sense electrodes, then a small voltage is developed across the electrode when current flows through the electrode.
As illustrated above we would expect to see a voltage of iLRL at the inverting terminal of the amplifier and iRRR at the non-inverting terminal. RL and RR represent the electrode impedances of the two electrodes. If there is any mismatch between these voltages, this will be amplified and seen in Vout. Typically as the user moves or as they sweat, the values of RL and RR will vary resulting in a drift over time. Using wet electrodes minimises RL and RR which also minimises the mismatch in voltages however an alternative way to minimise the offset voltage is to minimise iL and iR which is what we are trying to do today.
Solution: In all previous designs we have used the AD8226 differential amplifier from Analog Devices. This chip comes in a few flavours with different levels of performance, but in all cases we expect a bias current between 5nA and 27nA (which is the current that flows into the amplifier inputs, regardless of voltage). This may sound small, but with a 2211x gain between the input and the ADC this only allows for a 50kΩ mismatch between the two inputs before we saturate our 3.3V ADC. Considering that electrode impedance can range from kilohms to megohms this is a pretty small allowance which explains why we are seeing so much drift.
Another chip available from Analog Devices is the AD8220. This is a very similar chip however it has a bias current of less than 10pA which is an improvement of around 1000x. Before going all in on this chip, I wanted to compare the performance of each chip, so I built a test PCB.
Test PCB: The board is very simple. It features 3 potentiometers intended to represent the RL, RR and RG which can each sweep from 0Ω to 1MΩ. These are connected to the differential amplifier which can either be an AD8226 or and AD8220, each with 67x gain. This is then fed into another amplifier to add another 33x gain to give a total of 2211x gain. This is shown below.
I can then sweep the three potentiometers and measure the output voltage of TP3 to see the sensitivity to the electrode impedance.
The board was designed to be able to test multiple different chips and so the AD822x chips are mounted on a special breakout board that can be changed (slight mistake on the breakout board required a bodge wires, although it was not technically wrong). I then swept the values of RL and RR over their full range and measured the output voltage. Because the ground resistance has no effect on drift I did not include that in the sweep.
We can see that the AD8226 output voltage ranges from 0V to 3.3V over a span of only about 80kΩ while AD8220 only varies by about 150mV over the entire range of 2MΩ. This agrees approximately with our expectation and by fitting a line to the data we are able to calculate the average bias current which comes out as 21nA for AD8226 and 10pA for AD8220. This value accounts for the bias current and also the fact that the input was at 0V instead of midrail (2.25V) which results in increased current due to the finite input impedance of the amplifier, which will have a small effect.
We expect the output voltage to be 1.65V when the resistance mismatch is zero, however w see that in the AD8220 it is more like 1.4V. This can be explained by the input voltage offset of the AD8220 which can be as high as 125uV before being amplified by 2211x.
Initially I was finding that the AD8220 was showing higher bias current than expected, as plotted above in red. I quickly realised I had not cleaned my PCB and it was the leakage current due to the residual flux shorting the pins on the amplifier. (I made a similar discovery back in 2016 when designing filters for the Spectrum project and observing that my filter response was not good.) A thorough scrub with some flux remover resolved the issue.
With this data validating the claims of the data sheet, I am going to move ahead and design the next version of EOGlass using the AD8220 in place of the AD8226 to reduce drift. This comes at the slight cost that AD8220 requires a minimum of 4.5V to operate which will require adding another voltage regulator.
Other experiments: Because this board was relatively simple I decided to use it to experiment with soldering smaller chips than ever before. In order to make EOG circuit fit in a pair of glasses I need to use the smallest components possible. I decided to experiment with the LP5907 voltage regulators which come in a tiny 685x685um package. This was surprisingly simple with a hot air station and a little patience. I will definitely be moving forward with this design.
I also tested out the TSZ122 amplifier for the extra 33x gain and also to generate the midrail. I chose this device because it had extremely low offset voltage due to to the fact that it is a chopper amplifier. Unfortunately I am seeing a strong 44kHz sine wave signal on my output voltage which I suspect is due to the chopping frequency of the amplifier – this is probably not acceptable for a real design but I will look further into removing the signal with extra filtering.