Cheapest Plastic Electronic Digital Caliper DRO

Those <5$ calipers lack information about internals on the internet. I change that.

Similar projects worth following
I bought the cheapest caliper available on ebay under 5 dollars. I plan to use it as DRO for filament going in 3Dprinter or out of filament extruder. I found no info about it so here is what i found:
It shows 0,1mm resolution but internally it uses 0,01mm resolution.
It has classic 23bit protocol as other chinese calipers.
It powers of in 5 minutes but can be kicked back on electronically.
It has separate DATA and CLOCK signals from buttons.
It can be powered by 1,5V externally.
It can be connected to arduino using power level shifter to put the output between atmegas logic level limits.
For those who say that capacitance and value drifts: Nope, it doesn't drift, it holds same value (0,01 resolution serial out, not the 0,1 display) for 6 hours minimum. Your power is unstable, because that analog value is dependent on +5V rail. Use same 5V rail as the 3DPrinter control chip, otherwise you will get bad accuracy because DA's full will be tens of mV off the AD full.

First i got my cheapest scope and found data and clock. Unlike stainless calipers they are separate signals. You will also need to breakout at least on/off or it will shutdown and stop sending signals. It is BCD type caliber (or B type in some webpages).

CLOCK signal:

DATA signal:

Next i will disassemble again, connect ON/OFF switch, connect nano328-ch340g and try to decode the signals.



Portable Network Graphics (PNG) - 76.49 kB - 01/14/2017 at 20:50




Adobe Portable Document Format - 16.31 kB - 01/14/2017 at 20:50



kicad Schematic

sch - 4.90 kB - 01/14/2017 at 20:50



Arduino nano program

ino - 6.15 kB - 01/14/2017 at 20:30


  • 1 × cheapest chinese caliper "carbon fiber" black plastic 100mm type
  • 1 × Arduino Nano CH340G, Atmega 328
  • 2 × LED red 1,5V voltage drop
  • 3 × resistors 200ohm, 500ohm, 2k
  • 2 × capacitors 4,7uF, 47uF

View all 6 components

  • Input and output finished!

    Michael Skrepsky01/14/2017 at 21:01 0 comments

    I made a schematic and Arduino program for it.

    I has its power positioned between Arduino input logic level limits.

    It can be kicked on with ON/OFF switch contact broken out by pulling it LOW

    The Arduino outputs analog signal 1V = 1mm, inverted MULTIFAIL signal if the filament is out of specification (editable in program), and fake encoder signal to simulate jamming. I can install real encoder in the future.

    Now i need to hack Marlin on GT2560 board and insert one of my signals to pause the printer if filament runs out or falls out of diameter specification. I will position it like if spool jams, the caliper opens and pauses the print.

    Final look:


    Serial out:

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates