I should apologize if my question is trivial since I did not find a similar question, I decided to specifically ask mine.

I have a microscopic membrane in my lab, this piece which we call it NMS has a variation of voltage caused by its operation. Similiar to the action potential in neurons of a nervous system. We are trying to build an electronic measurement system, which could capture the variation of voltage in -70mV to -55mV range. We want to have an accuracy of at least 1mV or possibly less in our measurements. Since the only electronic guy, we have access to is a bachelor student, we shall be able to help him, So I have decided to seek a community help.

The current SoC he knows how to program and feels confident with is ESP32. As I searched its datasheet, it has some cool functionality which we might use here, I add them here as a reference:


  • 4.1.2 Analog-to-Digital Converter (ADC)

ESP32 integrates 12-bit SAR ADCs and supports measurements on 18 channels (analog-enabled pins). Some of these pins can be used to build a programmable gain amplifier which is used for the measurement of small analog signals. The ULP-coprocessor in ESP32 is also designed to measure the voltages while operating in the sleep mode, which enables low-power consumption. The CPU can be woken up by a threshold setting and/or via other triggers. With the appropriate setting, the ADCs and the amplifier can be configured to measure voltage for a maximum of 18 pins.

  • 4.1.3 Ultra-Low-Noise Analog Pre-Amplifier

ESP32 integrates an ultra-low-noise analog pre-amplifier that amplifies the voltage difference between pins SENSOR_VP and SENSOR_VN and outputs the value to the ADC. The amplification ratio is given by the size of a pair of sampling capacitors that are placed off-chip. By using a larger capacitor, the sampling noise is reduced, but the settling time will be increased. The amplification ratio is also limited by the amplifier, which peaks at about 60 dB gain.

  • 4.1.4 Hall Sensor

ESP32 integrates a Hall sensor based on an N-carrier resistor. When the chip is in the magnetic field, the Hall sensor develops a small voltage laterally on the resistor, which can be directly measured by the ADC, or amplified by the ultra-low-noise analog pre-amplifier and then measured by the ADC.

So, I am basically looking for design suggestions for mentioned measurements with ESP32 chips. We need some advice for building the measurement probe too, specifically, we need a way of connecting our NMS membrane which is sandwiched between a microscope slide and a cover slip to our measurement system.

Thank you all.

  • \$\begingroup\$ Having "the only SoC the accessible EE student knows" as a design baseline is an absolute nonsense. Especially given it is ESP32 and the required performance. \$\endgroup\$
    – Eugene Sh.
    Dec 7, 2017 at 21:51
  • 1
    \$\begingroup\$ I can not agree more, We have not chosen ESP32 as a baseline, We simply are faced with that scenario. To show that the expert we have access to feels it is possible with ESP32. Maybe you could have helped more and proposed an alternative SoC for the given task. Thank you. \$\endgroup\$
    – DeFoG
    Dec 7, 2017 at 22:24
  • \$\begingroup\$ Why not install a 18 bit or 20 bit or 22 bit ADC? These easily resolve << 1 millivolt, with +- 5 volt input levels. \$\endgroup\$ Dec 8, 2017 at 4:39
  • \$\begingroup\$ The idea was not using external components, just wanted to do it with all ESP-32 has to offer. \$\endgroup\$
    – DeFoG
    Dec 16, 2017 at 21:58

3 Answers 3


The ESP32 doesn't measure pure voltage (meaning, its input doesn't look like an infinite resistor.) I don't find ohms value for the input pins of ESP32 A/D in their spec sheets. It might be 1Meg, it might be 100K.

What's voltmeter-resistance tolerated by your micropipette setup? If the A/D input needs to look like a 100meg resistor, then you'll definitely need an op-amp to serve as an input buffer. (Also an op-amp can handle both pos and neg inputs over a range of many volts.)

Also this:

  • Many patch clamp amplifiers do not use true voltage clamp circuitry, but instead are differential amplifiers that use the bath electrode to set the zero current (ground) level. This allows a researcher to keep the voltage constant while observing changes in current. To make these recordings, the patch pipette is compared to the ground electrode. Current is then injected into the system to maintain a constant, set voltage. However much current is needed to clamp the voltage is opposite in sign and equal in magnitude to the current through the membrane. See: https://en.wikipedia.org/wiki/Patch_clamp#Recording

For micropipette membrane probes, to attain low enough system noise, usually the voltage is fixed or "commanded," while only the nanoamps are being measured. We use a circuit called a "headstage amp:" an op-amp wired to act as a transimpedance amplifier. This is placed between the pipette electrode and the rest of your circuitry (the ESP32 input.) So, the membrane generates a 10nA pulse, and the amplifier gives a 1.0V output. The amplifier has two inputs (diff amp,) so we can compare potentials between the clamped cell and the fluid environment.

Search words: patch-clamp headstage schematic

I just replaced the fried FETs on one of these last month: an old classic version (not one of the expensive, cutting-edge products being used today.) I sketched out a crude schematic.

This one uses an external dual-JFET to attain extreme low-noise operation, with the FET feeding an inexpensive LF356 op-amp. The 100meg resistor gives 0.1V-per-nanoamp operation.


The fancy and expensive version is Axopatch, Axon corp. Here's one of their headstage amplifiers. Rather than buying dual FETs from Siliconix, they built their own! They mounted them on a peltier cooler, so they can chill it down to -20C, reducing the noise even more. This thing can detect the pulses from a single ion channel opening/closing.

  • \$\begingroup\$ I can't thank you enough, your writing is full of valuable keywords that will definitely hell us build this handy and inexpensive device. Thank you again. \$\endgroup\$
    – DeFoG
    Dec 9, 2017 at 10:59
  • ADC

Considering a 0dB attenuaton (and 12 bit precision), giving a full-scale voltage of 1.1V, you will have 4095 "steps" inside this voltage range, resulting in 0.000268620269V for each step. Very precise in my opnion. And fulfills your 1mV needs!

PS.: Just a reminder. Don't forget to move your voltages above 0V (I mean, +70mV and +55mV) so you can directly use the IC pins. If you could inform the base voltage in which this variations will occur it would be really helpful so I could give a better answer than this one :)

PPS.: Well, I can't comment in this account, so I will try to answer your question here, I would be glad if it helped!

  • 1
    \$\begingroup\$ Thank you for your feedback. I kindly request you take a look at this wiki page, you may find a more clear answer there. en.wikipedia.org/wiki/Action_potential \$\endgroup\$
    – DeFoG
    Dec 7, 2017 at 22:20
  • \$\begingroup\$ Sorry, I can't help you with the probes, my biology skills are very limited. But, considering an electronic lab probe, I would suggest low internal resistance ones, so you don't waste your tiny voltage differential inside the probes. Gold plated probes always worked for me. I would also recommend using 4 wire measurements, for accuracy. Now, about the MCU. If you could bring that voltage differential to the MCU it will read with your wanted precision. But beware of the negative voltages! Try to add an 0.7V offset voltage with an precision OPAMP. \$\endgroup\$
    – salgado
    Dec 7, 2017 at 22:41
  • \$\begingroup\$ I really appreciate your comments, you really gave some valuable hints to me. \$\endgroup\$
    – DeFoG
    Dec 7, 2017 at 22:58

Is the voltage you are measuring really negative? If so you will need an op amp circuit to bias or invert the voltage. The programmable gain amp may be helpful to increase your signal level. A low pass filter may be helpful to reduce noise. The datasheet you provided the link to does not really give many specifications for the ADC like ENOB (effective number of bits). You probably will not get the full 12 bits out if it. I think you might be better off with an external sigma delta ADC that can handle positive and negative inputs.

  • 1
    \$\begingroup\$ Thank you for your feedback. Do you suggest to use different SoC? can you be more specific and give me a product number that you feel fits our requirements? \$\endgroup\$
    – DeFoG
    Dec 7, 2017 at 22:35
  • \$\begingroup\$ Looking at your requirement further to capture the waveform shown in the link you probably want a conversion rate of at least 10 kHz so a sigma delta converter would be too slow for that. That means a sample every 0.1 ms which could be problematic for the SOC to read that often from an external ADC. So using the on chip ADC has advantages there. I really can't advise you with SoC selection as I don't have much experience there. \$\endgroup\$
    – EE_socal
    Dec 7, 2017 at 22:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.