Introduction: Building a DIY Filament Width Sensor Using Digital Caliper

This post is about how to build a DIY filament width sensor using digital caliper with built-in data port.

Step 1: The Schematic

Step 2: Description of Key Components

Filament Puller

It has 1 stepper motor and 2 rollers. The rollers are driven by the stepper motor to pull the filament away from the digital caliper.

Digital Caliper

It has a data port which enables the reading of data by external devices such as Arduino. For details about its data format and other info., please refer to my other post at:

Control Box

It houses the electronics for reading the read outs from the digital caliper, reading the motor speed control input from the trimpot, controlling the motor speed and displaying the read outs on the LCD.

Step 3: The Code

There seems to be problem posting my code here (the format is all messed up). Please visit my blog for the complete code.

Step 4: Issue

Digital caliper measures the clamp's travel distance by measuring the variation in capacitance but the capacitance tends to drift due to factors such as the build quality of the caliper, environment, etc. For normal use, because the caliper is zero out each time before taking the measurement, the capacitance drift can be ignored because the capacitance of the clamp's starting point and the ending point are known and the caliper will be zero out again before each use. However, when the caliper is used in an environment that doesn't zero out for long period of time, the accuracy of the measurement is greatly impacted by the capacitance drift. Because of the above issue, other ways for measuring small distance (with 0.01mm accuracy) need to be used.