Filament management
Since I now have 2 Filament based 3D printers, and god knows how many rolls of filament (it's turns out it's 18) I thought I would do a bit of digging for a system to keep track of them. I had been using the octoprint spool manager, but that only really works well for single printers. Keeping 2 databases in sync is a bit of a pain. Particularly if you swap filament from one printer to the other.
The system needs to plug in to Octoprint, as I am using that for my CR-10 MAX and my Ender 5. I may swap over to klipper on the max at some point so I would ideally like it to be compatible with that too.
In addition, I want to know how much is left of each roll, and where it is located. It should also keep track of how much filament has been used. Ideally, tracking over things as well such as cost. In addition, it should track the basics like colour, vendor and how many rolls I have.
So, with all that in mind, I searched the internet and found.... spoolman. Spoolman is essentially a frontend for a database for filaments. It has plugins for octoprint and klipper, and tracks when filament is used. If I swap filaments over, I can just select the filament that is loaded in the printer and off I go.
I installed spoolman on a server I have for docker containers, making sure that I had an ansible script to re-deploy it (just in case) and to add traefik variable at a later point (if necessary). If in doubt, follow the docker-compose.yaml help in the readme.
Once the container was set up and the database was ready, I started adding the filaments. I could find out the details of the filaments I had in use from the printers themselves, using the current filamant management plugins. I also guessed that the spools weighted around 200 grams. This guess is mostly irrelevent as I don't tend to open rolls until I plan to use them. For your use case however, YMMV.
I added all the different vendors of filament I use to start and then on to the filaments themselves. With I was digging out the filaments, I made sure I stored them in an easy to find spot - which I called "storage", although it's actually the bottom of an Ikea callax unit.
The other place I was storing the filaments was in the Sunlu S4 filament dryer. This dryer also doubles as my filament feeder for my printers as well as the dryer. This is also the place where I store my opened filaments. I have 3 rolls in there at the moment, one of which is glow in the dark filament, which I tried to use unsuccessfully. When I have just finished my latest round of playing with my CR-10 MAX, I will give it a go on that.
Once complete, I had a full list of my filaments, where they were located and how much of each I had. So far so good.
The next step was to install the plugin on octoprint. This is again quite straight forward as it is really simple. Once you are set up, give the plugin the address of the spoolman docker application the application should be ready to use. You do need to select which spool is in use, but this is simple and done through the left hand menu.
While the plugin works great and does the majority of things I want it to, there are a few little things that could be done to improve the experience. The first is add support for Print job history. This would allow me to only need 1 plugin for filament management without losing any of the functionality I already have. It would also be nice if spoolman also looked after resin, but that is less of an issue.
In conclusion, despite it's few drawbacks, Spoolman has been preforming well for me to keep track of my filament across my 2 printers, as well as a quick reference for what I have in storage. Now just to get using it more...