3d Printer Filament Length Readout
thingiverse
This is a Filament readout of the mm's of filament that has passed through the added encoder. The screen displays a subtotal and a grand total, with reset options for each. A short press of the tare button resets just the subtotal to zero, while a long hold resets both totals to zero. If power is removed, all totals are lost, but any calibration settings remain in place. Calibration can be done through a CLI on the serial port, and detailed code documentation is available for clarity. To get a warning of filament failure, I added a simple quadrature encoder to my Taz5's stepper gear. A special mount and circuit board use 2 OPB761N optos simply mounted to the corner of the stepper motor, giving 24 steps per revolution for about .16 mm / step read. The AMT103V gives much higher resolution, depending on settings but with a setting of 384 steps/rev it's about .05 mm per encoder step. This will be a separate creation called Taz5-6 Stepper Encoder. I've run versions of this filament length readout on my Lulzbot Taz5 for quite some time and thought I'd share it. It uses an AMT103V encoder, several bearings, and a couple of faucet springs to tension the bearing to the filament. I've added it to my Filament Scale (See my other Creations) and created a simple interface to a Lolin ESP32 with a SD1306 OLED. It was designed for 3mm filament but switching to a larger pressure bearing, 4x16x5mm, seemed to read 1.75 filament just as well. By comparing what the stepper has tried to feed and the actual feed going by the AMT103V, we can create an error and halt the print, allowing us to fix the problem. I've got a list of several things you can do with the Lolin ESP32 beyond my simple configuration. Well, I guess you're wondering what it's good for. Well, I haven't spent much time on the code, but this is a few of the things I've thought of making it do: 1. Of course, a run-out sensor that detects an out-of-filament condition and outputs an error signal to your control program or Raspberry Pi. I've tested it with Octopi Filament Sensor Reloaded and works; just needs some tweaking for desired trip settings. 2. The filament jammed and won't feed even though it went through the whole path. A simple switch sensor wouldn't notice anything wrong. 3. Do an accurate prediction of print completion time by looking at actual feed rate compared to expected length of filament. 4. Have a remote reading of the status of the print on a little web server. 5. Send a text message of a problem or if it's complete. 6. Test the maximum feed rate of the extruder. By adding a sensor (QuadEncoder in my Creations) to the stepper motor, we know how much filament should have been extruded. The actual filament sensor tells us what has really been used; you could increase the rate of extrusion until you see the extruder falling behind. I've included the STL for a universal encoder that can be used as desired. There's also a dedicated base that mounts directly to the Taz5-6 extruder with a longer extruder mounting screw. The code and connection diagram are included, and detailed look at the code will show how it all works. I have the error output going to my Raspberry Pi through a switch to disable it while testing. You'll need to experiment with trigger values to set properties for it to cause an error. You can monitor the stepper and encoder output with the serial port; the serial port also allows you to calibrate the readout and reset it if needed. Hope someone gets something out of all this, maybe just an idea to do something similar would be good. PS Here's a link to my 5v to 3v3 volt converter: https://oshpark.com/shared_projects/lSudnr6i
With this file you will be able to print 3d Printer Filament Length Readout with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on 3d Printer Filament Length Readout.