When 3D-printing an object with a fused deposition machine, your extruder pulls filament through it, melting and depositing it in place to produce a nicely formed part… if everything is set up correctly. Enrico Miglino observed that the forces at play are not always constant. Besides the position of the extruder itself, one variable that necessarily changes during a long print is the weight of the filament roll you’re using.
Miglino noticed that heavy rolls can cause maintenance issues, and breakage issues tend to pop up when the roll becomes half done. To combat these issues he came up with a device that turns the spool automatically, taking the strain off of the filament and removing the resistance from the movement of the extruder. His solution is, of course, 3D printed!
It uses an Arduino Uno or XMC1100 board to control the stepper motor that powers the device via a TE94112LE DC motor shield, and senses how much of the roll is left using a load cell. It’s a clever setup that can be seen working away in the video below. You can also see how the kit is assembled in this instructables writeup.
If that seems too complicated for your liking, you might like to take advantage of a ball bearing roller assembly to help reduce friction. You can get just the filament roller assembly by itself here. Finally, if this setup looks familiar, his roller/weight monitor was covered in this post. It has the ability to sense how much filament you have left in each roll to keep you from running out, but doesn’t implement an automatic unrolling device.