Build a Motorized Filament Rewinder and Respooler for Bulk Filament
Buying filament in bulk — 5kg or 10kg boxes instead of individual 1kg spools — is significantly cheaper per kilogram, but it leaves you with loose coils or cardboard spools that don't fit your printer's spool holder, dry box, or AMS/ACE-style multi-material system. A motorized filament rewinder solves that: it pulls filament from a bulk spool or loose coil under light, even tension and winds it onto a standard reusable spool, so a $70 5kg box of PLA turns into five drop-in-ready 1kg spools instead of a tangled mess you have to feed by hand every time you need a portion of it. This build uses a stepper motor, a simple tension arm, and an optional turns counter to produce clean, evenly-wound spools with almost no filament memory kinks.
How It Works
The mechanism is simple: a stepper motor turns the take-up spool at a controlled, slow speed while filament feeds off the supply coil through a tensioning arm. The tension arm is the part that actually matters for print quality later — feed filament onto a spool too loosely and it will tangle and snag mid-print; wind it too tight and you risk stressing brittle materials like PLA or introducing subtle diameter distortion. A spring-loaded or counterweighted arm with a microswitch or potentiometer lets the controller slow down or pause the motor automatically when tension builds up, which is what keeps the wind even without a human standing there constantly adjusting speed.
Parts List
- NEMA 17 Stepper Motor
- TMC2209 Stepper Driver Module
- Arduino Uno R3
- 12V 5A DC Power Supply
- Lever Microswitch (tension arm cutoff)
- 608 Bearings (spool hub and tension arm pivot)
- M5 Threaded Rod and Nuts (spool axle)
- Small Extension Springs (tension arm)
- Empty 1kg Filament Spools (take-up spools)
- PLA or PETG Filament (for printed housing parts)
- M3 Screw Assortment Kit
- PTFE Guide Tube (filament path guide)
Building the Frame and Spool Mounts
The whole assembly is straightforward to 3D print: a motor mount plate that holds the NEMA 17 with its shaft coupled directly to a printed spool hub, a freewheeling hub on the opposite side for the supply coil (this side needs a 608 bearing so the bulk coil can unspool freely under light drag, not be driven), and a pivoting tension arm with a bearing-mounted roller that the filament rides through. Print the spool hubs and tension arm in PETG rather than PLA if you can — they see repeated flexing and light impact, and PLA's brittleness shows up as cracked hub teeth after a few months of use. A base plate tying the two hub towers and the tension arm mount together at a fixed spacing keeps everything aligned; MDF or plywood cut on a CNC router works just as well as a printed base if you want to save print time.
Wiring and Control
An Arduino Uno driving a TMC2209 in standalone (non-UART) step/dir mode is more than enough — this doesn't need Klipper-grade motion control, just a slow, steady turn with a stop condition. Wire the tension arm's microswitch as a digital input: when the arm swings past its low-tension threshold (meaning slack has built up because the spool is winding faster than filament is being pulled off it), the sketch pauses the stepper until the arm swings back past the high-tension threshold. A basic loop looks like this:
void loop() { if (digitalRead(TENSION_LOW_PIN) == LOW) { // Slack detected — pause winding until tension arm resets stepper.disableOutputs(); delay(50); } else { stepper.enableOutputs(); stepper.runSpeed(); // slow constant speed, ~60-120 RPM equivalent at the spool } }Start conservative — around 20-30 RPM at the take-up spool for the first spool you wind, and watch how evenly it lays down. If you see it pile up in the center instead of traversing side to side, add a simple oscillating guide (even a 3D-printed cam-driven fork works) so the feed point sweeps left-right across the spool width as it winds; without it you'll get a tall, narrow winding that's more prone to filament crossing over itself and jamming during a later print.
Rewinding Technique
- Mount the bulk coil or loose loop on the free-spinning supply hub, or set it flat on the floor/table if it came as a loose coil rather than on a spool.
- Feed the leading end through the PTFE guide tube, over the tension arm roller, and tie or tape it to the empty take-up spool.
- Start the motor at low speed and watch the first few wraps closely — this is where crossed filament or an uneven first layer on the spool causes problems later in the wind.
- Let it run to completion, checking tension arm behavior periodically. A properly tensioned wind should look neat and firm but not so tight that the spool flanges bow outward.
- Cut and tuck the end into one of the spool's retention slots, or add a small zip tie if your printed spool design doesn't have a built-in end-lock.
Safety Notes
Keep long hair, loose clothing, and fingers away from the spinning hub and any exposed drive coupling — a slow-turning stepper spool isn't especially dangerous, but a bulk coil under tension can still pull a finger in if it catches. If you're rewinding filament that's been sitting exposed and picked up moisture, this is also a good moment to run it through a filament dryer first or wind it directly onto a spool that lives inside a dry box, since bulk-box filament is usually less protected from humidity than a sealed retail spool.
Once built, a rewinder pays for itself fast if you go through more than a spool or two of a given color per month — bulk boxes routinely run 30-40% cheaper per kilogram than retail spools, and having pre-wound, ready-to-load spools on hand means you're not stopping a print job to hand-wind filament off a tangled coil at 11pm.
Related Guides
- Build a Cyberdeck: Custom Portable Computer with a Laser-Cut and 3D Printed Enclosure
- Build a DIY Vacuum Former: Molding Custom Parts from 3D-Printed Masters
- Build a Rolling Multi-Machine Utility Cart for Your Shop
- Build a DIY Heated Enclosure for FDM 3D Printers
- Build a Motorized Camera Slider: 3D-Printed Rail, Stepper Drive, and ESP32 Control
- How to Design and 3D Print Functional Threads: Screws, Nuts, and Threaded Inserts
- How to Print Multi-Color Models with a Single Extruder Using M600 Filament Changes
- How to Design Snap-Fit Joints and Living Hinges for 3D Printed Parts