I first came across “ShArc” on a twitter post. ShArc is a novel bend/shape sensor by Fereshteh Shahmiri and Paul H. Dietz that they write about in their 2020 paper, “ShArc: A Geometric Technique for Multi-Bend/Shape Sensing“.
The sensor is made of two flexible circuit boards (“flexes”) stacked either side of multiple layers of polyimide material, which is the same material used for the flex substrate. Both flexes are constrained together at one end, and when the flexes are bent, they slide relative to each other. The topmost flex (TX Flex) has a series of transmit electrodes along its length, while the bottom most flex (RX Flex) has a series of corresponding receive electrodes along its length. As the two flexes slide relative to each other, the capacitance between each TX and RX electrode pair changes. By measuring this capacitance the system can infer the relative slide between the two flexes and in turn infer the bend radius.
The RX electrode is further split into a positive and a negative electrode that are each partially overlapping the drive electrode when straight. When the flex is unbent, the capacitance from TX to each of these electrodes is equal. When the flex is bent one way, the capacitance to positive electrode will increase due to greater overlap while the capacitance to the negative electrode will decrease. Bending the other way achieves an opposite effect. We can then use the difference between these two capacitances as the indicator of bending.
The paper provides the exact electrode layout that the ShArc team used for their prototype, however for my design I deviated a little. I chose to make the RX electrodes wider in order to increase the capacitance between TX and RX and hence also increase the change in signal when the flex is bent. I also reduced the pitch of my electrodes from 20mm to 12.5mm, and only had four electrodes compared to their eight.
My measurement architecture was also a little different from the original work. While we both used an AD7745/AD7746 CDC chip from Analog Devices to perform the measurements, the original work used only a single capacitance channel to perform all eight measurements. This meant that they had to use Texas Instruments TMUX1511 multiplexing chips to individually drive each TX electrode, while all RX electrodes were connected together to a single input. I chose to use the AD7746 (rather than the AD7745) which has two TX channels and two RX channels. This meant that each of my four TX/RX pairs could be a unique combination of TX/RX pins on the device and no external multiplexers were needed. I would argue that this is a preferable design as it removes the relatively large parasitic capacitances that are introduced by the multiplexers which may be significantly different part-to-part or even over lifetime, although it would not have supported more than four sensors without adding a second AD7746 device.
I also designed a main PCB to connect to the two flexes, perform the measurement and send the result over USB. The device is powered over USB and has an STM32F042F4 as a brain, which configures and controls the AD7746. Two voltage regulators are used to generate separate 3.3V rails for the STM32 and the AD7746 to minimise noise in the measurement, although I have not verified that this is necessary.
The AD7746 takes a 24-bit measurement with a full-scale range of +/-4.096pF. After converting the ADC reading into capacitance, it is then necessary to convert the capacitance into the relative shift between the TX and RX electrodes.
By design the TX and RX flexes are separated by about 508μm of polyimide (three layers of 101.6μm polyimide plus the thickness of the TX and RX flexes which are also 101.6μm). We know that the dielectric constant of polyimide is approximately 3.2, as provided on OSHPark’s website (flex manufacturer). By knowing these two physical quantities and then approximating the electrodes as parallel plate capacitors we can then convert the measured capacitance to relative motion.
With knowledge of the relative position of each of the sensors along the flex, we can then use the equations as provided in the paper to calculate the radius of curvature of each of the sections of the flex. As a rough approximation we can say that a 40mm radius of curvature would correspond to a change in capacitance of only 124fF.
Putting this all together, we can track the position of the flex live.
Overall, I’m pretty happy with the result so far which is a clear demonstration that the principles of ShArc work. Since filming the above video I found a slight error in my maths (I forgot to divide the capacitance by two as it is a differential capacitance), which means that the flex on the screen bends by about twice as much as reality.
Touching the flexes with your hand does create some error in the result as you disturb the electric field and influence the capacitance between the TX and RX electrodes. This could be improved with shielding, although the effect is relatively small.
Due to variation and unknowns in manufacturing (for example, flex thickness and polyimide dielectric constant) as well as the parallel plate approximation, it may be necessary to calibrate the device. My next step, then, is to evaluate the accuracy of the measurement and, if necessary, design a calibration procedure.