Feature Request: Track filament usage per spool in software
-
Hello there!
In 2018 there was a discussion about it:
https://forum.duet3d.com/topic/7133/filament-remaining-sensor
Here is an example from that topic:
https://plugins.octoprint.org/plugins/filamentmanager/The goal is to have a rough estimate by counting the used filament.
-
I think this would be a great addition. Companies like colorFabb specify the 'length' of the filament they sell so basically a counter that 'adds' every extruder move and provides this data in object model would work I believe. What do you think @dc42 ?
-
This has been requested many times. I even went so far as to provide a patch. while not perfect, it did work. Filament has to be counted "per filament type". While useful, this is not as useful as counting per filament roll.
-
@Colten couldn't you create a filament "type" per roll/color. ? Then you could use the M701 commands to switch between rolls+types and track usage per spindle.
Ideally you could tie the slicer into it by having the slicer G-code issue the correct M701 S"PETG-Prusa-Orange" command based on the selected filament in the slicer. Then you could just choose the filament from the slicer, send, and print.
-
The complicated part is defining exactly how this should work. Some of the issues are:
- How exactly should it interact with the existing filament management system? For example, should it work at all if you do not use the filament management system?
- Should it track offline spools as well as whatever spools are currently loaded?
- How will you tell it that you have started a new spool? Or that you have loaded a part-used spool?
- How often should it update the usage data on the SD card? If it updates it too often, it will wear out the SD card too quickly.
-
@dc42 I wonder if this would be better running on an external device like a Rpi or a docker container on a server? I know the duet products are moving towards a plugin architecture with the pi.
We would just need the appropriate APIs into the duet boards to be notified on print events and filament changes. This would relieve the duet and DWC from all of the user interface overhead.
-
It would be easier to implement on a Pi attached to a Duet, however I don't want to rule it out from implementation on a standalone Duet.
-
I think that viable solution would be to use NFC tags and a spool holder with reader. With new spool just put a nfc sticker (can be bought easily) and set a filament length when spool used for a first time.
Then each time spool in put on spoolholder read the tag, and update legth when print finished/tool change/ etc
Easy to implement - nfc readers are available with many intercaes, tags can be bought without problems.
-
@dc42 said in Feature Request: Track filament usage per spool in software:
The complicated part is defining exactly how this should work. Some of the issues are:
- How exactly should it interact with the existing filament management system? For example, should it work at all if you do not use the filament management system?
- Should it track offline spools as well as whatever spools are currently loaded?
- How will you tell it that you have started a new spool? Or that you have loaded a part-used spool?
- How often should it update the usage data on the SD card? If it updates it too often, it will wear out the SD card too quickly.
It could work as a very simple plugin for DWC.
It should not interact with anything except the filament usage data of a running print job.Users can add multiple counters. One per spool.
A counter is defined by some name + length of a full spool.
Once enabled it monitors filament usage until a pending print job needs more filament.
A warning should be shown in this case.
The SD card write frequency should be user defined.It is for manual use. If you forget to change the counter you have to start from scratch and correct the counter values on sd card manually.
The analogy of a stop watch is quite helpful.