We’ve all been there: you’re about to start a new print job and the filament on the spool is looking pretty sparse. You start the print hoping that there is enough filament for the job, but it runs out 90% of the way through and your part is ruined. A filament runout sensor will help you address this problem when it occurs, but this DIY digital spool scale will prevent the problem altogether.
Every popular slicer on the market will provide a fairly accurate estimate of the amount of filament (in mass and length) that a job will require. To determine if you have enough filament, you just need to know the length of the filament left on the spool or its weight. Figuring out the length is almost impossible unless you track the feed over time, but it is easy to weigh the filament. As long as you can subtract the weight of the spool (set the tare), you can determine if you have enough filament. This device both weighs the current spool and subtracts the tare.
This device contains an Arduino Nano, a load cell, buttons, and an OLED screen on a custom PCB. It fits into a custom spool holder and weighs whatever spool is in place. The cool thing is that it stores profiles in EEPROM, so it can remember the weight of empty spools from different manufacturers. You can either weigh an empty spool to get the tare value (the most accurate) or weigh a new spool and subtract the specified weight of the filament (such as 1kg). The latter is less accurate, since manufacturers tend to add a little extra filament to be safe. But you’d be erring on the side of caution, so that method shouldn’t cause any print failures.
If you do a lot of 3D printing and end up with a pile of partial spools, this scale device would make a perfect weekend project to improve your life.