InFiDEL - Inline Filament Diameter Estimator (lowcost)

A cheap, yet precise filament diameter sensor, intended to compensate for filament diameter deviations in real-time.
614
1974
7
28 k
updated February 19, 2021

Description

PDF

The InFiDEL is a cheap (< $5) filament diameter sensor that can be calibrated to provide surprisingly precise filament diameter readings in real-time. While firmware support is currently sparse, the idea is to use the sensor to correct for filament diameter deviations while printing.

Based on this proof-of-concept: https://www.youmagine.com/designs/filament-diameter-sensor

BOM

Printed parts

1 Block
1 Lever

preferably printed in PETG, ABS or ASA as PLA may creep significantly over time

Electronics

1 SMT control board (populated)
or
1 THT control board + components (see Eagle files)

Suitable programmer for ATTiny85 (eg USBtinyISP)

1 SS495A linear hall effect sensor (or comparable) eg. http://go.toms3d.org/SS495

Fasteners

2 M3x8 screws (eg ISO 4762 M2x8)
1 3x24mm pin (eg DIN 7 3x24mm, for mating lever to the block)
1 3x16mm pin (eg DIN 7 3x16mm, for roller bearing in lever)
1 3x18mm pin (eg DIN 7 3x18mm, for idler bearing in block)
6 M3 threaded inserts

Pins may be replaced with screws or grubscrews, which may result in decreased precision

Mechanical / other

1 6x2mm magnet (eg N35) eg. http://go.toms3d.org/6x2magnet
4 623 bearings (preferably 623-2Z / 623-ZZ) eg. http://go.toms3d.org/623ABEC
1 Ballpoint pen spring (or other soft 4mm spring)
Short length of PTFE tube eg. http://go.toms3d.org/bowden

Calibration accessories

1 1.5mm drill bit
1 1.7mm or 1.8mm drill bit 
1 2mm drill bit
Calipers for verifying drill bit shaft diameter

Drill bits may be replaced with similar diameters. Measured diameter is to be written to firmware lookup table.

Assembly and Calibration

Mechanical assembly

Calibration

  • Flash board with infidel_calibration_release
  • Connect a host via I2C (eg running Host_example)
  • Insert each calibration drill bit shafts and replace the lookup table entries in infidel_release with your own measurements
    • Measure the actual diameter of the shafts and fill second column
    • Use the host's output *1000 to fill first column
  • Finally, flash infidel_release with your values filled out
  • Hub should now output exact diameter values

Analog output is currently not enabled in infidel_release (I2C and FAULT pin only)

Firmware

Daniel has uploaded the firmware to Github: https://github.com/drspangle/infidel-sensor/
For now, this is the recommended repo to develop against if you want to contribute to the code.

Source Files

All source files, Arduino code, Eagle files etc at https://toms3d.org/uploads/InFiDEL_202102.zip

License

The design files are published as-is, CC-0 / no rights reserved. Attribution when used would be nice, but is not required.

I do not have the time or resources to support this project to the extent it deserves. If you find the design or concept useful, you're encouraged to take it into the direction you see fit and share your results. 

Model origin

The author hasn't provided the model origin yet.

License