Filament diameter sensor
Proof of concept - measures filament diameter along one axis, based on a hall sensor3D printer parts and enhancements
Creative Commons Attribution Noncommercial Share Alike
Commercial use is not allowed, you must attribute the creator, you may remix this work and the remixed work should be made available under this license.
This is a proof-of-concept filament diameter sensor, currently intended for an extruder making filament. The filament centerline is 90mm above the mounting surface.
It picks up the filament's diameter between two bearings, amplifies it via the lever by a factor of 3.6, which moves a magnet in front of the hall sensor.
The hall sensor's depth is adjustable and is locked into place via the M3 bolt. Bend the hall sensor's leads 90° to the back and place the sensor in recessed spot. Lead the wires out to the front.
The 6x2mm magnet goes into the matching hole in the lever. The second hole intended for a ballpen spring, which is not needed in most use cases.
For testing, upload the included sketch to an Arduino, connect the hall sensor to 5V, ground and hook the signal pin up to A1 on the Arduino. Connect via serial at 115200 baud, it will start spitting out two values each line, the first one is the smoothed ADC value, the second one the calculated diameter. To calibrate, insert a test object with the maximum diameter you want to measure between the bearings and move the hall sensor carriage until the ADC value just reaches a maximum. Lock the carriage in place and use that value along with the diameter of the object as the last entry in the Arduino's lookup table. Insert two (or more, if you increased NUMTEMPS) more objects of varying sizes (for example the shafts of drill bits) and fill out the lookup table. Use the idle position without anything inserted for the zero-diameter position.
Support might be required for the files as they contain 30° overhangs. If you use Slic3r, you're better off with no support material.
Fyi, the Solidworks source file is a mess. Sorry.
Materials and methods
One of each printed part /// 1xSS495 hall sensor (or equivalent) /// 1x 6x2mm neodymium magnet /// 4x 608 skateboard bearings /// 1 M3x12 screw /// some 8mm smooth rod as axles
Issues are used to track todos, bugs or requests. To get started, you could create an issue.
I have connected successfully your Filament diameter sensor to marlin software but iḿ getting reverse data. Full open i get 0mm and full close i get more or less 3mm.
I pretend using your project to measure the filament on filament making machine.
Can you help?
Thanks in advance.
Good afternoon. I assembled the bar extruder, but the diameter is not stable. This sensor seems to me a godsend! Where can I see the connection diagram of the Hall sensor and the Arduin and Motor?
how do you use it with a 3d printer controller board? sorry for my noobness, but i can understand where is the voltage outputed?