~0.1% resolution capacitive position sensor

Simple circuit ratios sensor capacitance to reference capacitor to measure micrometers.
It’s hard to imagine a simpler electromechanical sensor than the capacitance type, consisting of little more than two plates (or even just one if the sensed target is conductive) separated by a dielectric (e.g. air). Sensor capacitance is approximately: C = 8.854pF S/d where S = area of the plates and d = their separation (both in meters). C then becomes a sensitive readout of plate separation.
Wow the engineering world with your unique design: Design Ideas Submission Guide
Here’s a plausible example. With 38mm diameter circular plates and initial separation of 1mm, you get a nominal capacitance of C = 8.854pF * 0.0382 * pi / 4 / 0.001 = 10pF. C would span 3.3pF at d = 3mm to 33pF at d = 0.3mm which, with a little math, can be converted into the distance between the plates. But how to measure C?
For that, we’ll need an interface circuit. The one in Figure 1 is a suitably simple match for the simplicity of the capacitive sensor itself, consisting of just 8 inexpensive off-the-shelf (OTS) parts. Here’s how it works.

Figure 1 U1a and U1b cross-coupled Schmidt trigger timers form a ~1MHz RC multivibrator. For the example sensor dimensions and parts values, Output duty factor = x = Out / 5V = d/(d + 1mm). Therefore d = x/(1 – x)
U1a and U2a form an RC timer with a time constant equal to R1Csense while U1b and U2b do the same job for R2Cref. Cross coupling them as shown in Figure 1 creates a square wave oscillator whose ~1MHz cycle on U1 pin 3 consists of dwelling at +V for Tref = 50ksec Cref = 500ns and at zero for Tsense = 50ksec Csense = 500ns / d where d, as earlier, is measured in mm.
Thus, the Output duty factor “x” = Tref / (Tref + Tsense) = 500ns / (500ns + 500ns / d) = 1/(1 + 1/d) = d/(d + 1). Starting from x = d/(d + 1), a bit of rearranging yields x(d + 1) = d, then xd + x = d, x = d(1 – x), and finally d = x/(1 – x). Figure 2 shows how this math performs when the Out signal is fed into a 12bit ADC.

Figure 2 This graph shows sensor performance when Out is connected to a 12bit ADC using +5V for its reference. The black curve (left axis) = plate separation (d) in millimeters, while the red curve (right axis) = ADC least significant bit (LSB) resolution in micrometers. Note that the resolution is close to 0.1% (d/1000) over much of the range.
Details of circuit operation include the inherent matching and tracking of U1’s gates simply because they share the same chip, and of accurate duty factor digitization if the connected ADC uses +5V as its reference voltage. Asterisked parts (R1, R2, and Cref) are precision types. Stray wiring and layout capacitances should be scrupulously minimized.
If there’s a chance the sensor plates might come into contact and short out, then it’s a good idea to protect U2 with a series capacitor. 0.1uF (from the same bag as C1 and C2) will work well and be sufficiently larger than Csense such that its precision and stability (or lack of thereof) won’t matter. I’d also put another one in series with Cref, although it’s not strictly necessary, just so things look more balanced.
If your application needs position sensing in two dimensions (e.g. an XY stage), the other halves of U1 and U2 are ready and willing, which helps to keep things capaciously and suitably simple!
Stephen Woodward‘s relationship with EDN’s DI column goes back quite a long way. Over 200 submissions have been accepted since his first contribution back in 1974. They have included best Design Idea of the year in 1974 and 2001.
Related Content
- Capacitor matchmaker
- CMOS flip-flop used “off label” implements precision capacitance sensor
- From gap to signal: Non-contact capacitive displacement sensors
- Simple circuit interfaces differential capacitance sensor
- The sensor parade at CES 2025
The post ~0.1% resolution capacitive position sensor appeared first on EDN.


