Introduction: Reengineering the Stator of a Digital Caliper

In one of me recent projects, I needed to measure larger distances quite precisely. Although, you can get a high precision 150mm digital caliper for just a few bucks nowadays, a measuring range of 150mm was not enough. I needed to measure distances up to 400mm precisely. Alas, such calipers aren’t low price anymore: They do not cost 15 Euro, but 150 Euro and more.

Basically, most cheap digital calipers seem to use capacitive sensing to figure out the distance travelled. When peeling off the thin plastic sheet with the ruler printed on it, you can see a PCB with a recurring T-like pattern. With this “stator” and its equidistant marks, the Ts, the sensing head of the caliper is able to calculate the distance. Basically it seems to utilize the principle of a Vernier scale and capacitive sensing.

But why buying a caliper for 150 Euro and more, if the only thing that is missing is apparently a longer stator / PCB glued onto a longer metal strip?

Thus, in the following, I want to share, how I tried to reengineer the stator of a cheap digital caliper. The result was tested with a DIY 500mm digital caliper. I compared its measurements with the measurements of another short digital caliper. And yes, I seems to have worked!

Step 1: Scanning the Stator

First I carefully removed the PCB from the steel strip and put it into my scanner. I used painter’s tape to make the stator lie perfectly flat on the glass and scanned it with 600dpi. Then I imported the scanned image into GIMP and checked the scan result: 1 pixel should correspond to 2.54 cm / 600. I measured known distances using GIMP’s pixel-based measurement tool (e.g. the width and length of the PCB, the dimensions of a scanned engineering ruler etc.). Knowing the distances in pixels, I then calculated the real physical lengths: measured pixels * (2.54cm/600). And yes, the scan with 600dpi seems to be okay, in x and y direction. Thus, it is a true digital copy of the real stator. It is important to check the scan results. I first had scanned the PCBs using a resolution of 1200dpi. However, the scan that was supposed to be 1200dpi wasn’t 1200dpi – a common problem with cheap scanners, as I found out later. Therefore, my first reengineering attempt was a fail, and the ordered stators / PCBs arrived with the wrong dimensions. :-(

Step 2: Reengineerig the Stator With Inkscape and Svg2Shenzhen

Since I have no idea how to redesign this kind of untypical PCB without any circuit paths in KiCad, I used Inkscape and Svg2Shenzhen – an Inkscape extension for PCB artwork.

I imported the scanned image into Inkscape and carefully aligned the stator perfectly vertical. I then used Inkscape’s feature “Edit → Clone → Create tiled clones“ to figure out the dimensions of the Ts and their distances. On the first go however, I never had a perfect match. Using 40 copies of a simple rectangle, the first 15 rectangles matched the scanned images, the rest of the rectangles did not! But why? Inkscape should produce perfectly equidistant rectangles!? So my conclusion is, that something seems to be wrong with the original stator itself. At the top of the PCB, the Ts seem to be slightly larger than in the middle. My explanation for this is that the outside parts of the copper board used for the PCB was bent slightly upwards during the photolithographical process, resulting in bigger Ts at the start than in the middle. Therefore, I tried to use only Ts in the middle of the stator for my reengineering efforts. The whole thing even made more sense, when switching from the metric system to inches: The equidistant steps of the stator seem to be exactly 0.1 inches!

Step 3: Preparing the Gerber Files and Ordering

So I gave “0.1 inches” a shot and used Svg2Shenzhen / KiCad to produce the required Gerber files. With most cheap online PCB manufacturers, the maximum length of PCBs is 50cm. Being only 2.5cm in width, the service team told me, that I need to order the PCBs in 1.6mm thickness. And the minimum order quantity is 5 PCBs. Thus, I designed the stator PCBs in a way which allows for chaining of them. As I figured out, the sensing head of a digital caliper should be able to measure distances up to 1m/100cm/1000mm.

Using the following settings, I successfully placed an order for the stator PCBs:

  • Layers: 1
  • Dimension: 20mm*495mm
  • PCB Qty: 5
  • PCB Thickness: 1.6
  • Impedance: no
  • PCB Color: Green
  • Surface Finish: HASL(with lead)
  • Copper Weight: 1
  • Gold Fingers: No
  • Material Details: FR4-Standard Tg 130-140C

Considering the above restrictions in PCB production: The new stator has a length of about 49 cm. The maximum length that can be measured with it is 49cm - 7cm display length = 42cm.

Step 4: Testing the Accuracy of the Stator

Using one of the PCBs, I have built a 500mm digital caliper and compared its measurement results with the readings of another 150mm digital caliper. The readings seem to be in the same range. Good! Unfortunately, I had no way to test measuring longer distances than 150mm. (Using a CNC and its stepper motors for that would be an option, but I don’t have access to this.)

All in all, the manual of the caliper states the following precisions:

  • +/-0.02mm (for measuring ranges <100mm)
  • +/-0.03mm (for measuring ranges >100mm and <200mm)
  • +/-0.04mm (for measuring ranges >200mm and <300mm)

This means, the larger the distance, the larger the error – by design. And chaining PCBs / stators might even introduce more inaccuracies into the measurement. These are two important points one has to keep in mind when using the new stators with the original sensing head.

Step 5: Conclusion

To conclude, precision measurement instruments have their price. And they deserve their price, since they are a marvellous piece of a precise engineering and manufacturing. But for some use cases, the home-made, reenginereed stators might be just good enough. Have fun! And by the way: If you found this instructable helpful, you can buy me a coffee :-) .