Filament sensors are problematic. The simple kind can’t detect a jammed extruder. Most filament sensor designs make the extruder’s job harder by introducing resistance to the filament path. This is particularly true of the “smart” filament sensors that try to measure the movement of filament via a wheel. All physical filament sensors add mechanical complexity and more wires to the printer.
I wonder if it would be possible to monitor the duty cycle of the nozzle heater to determine whether or not filament is still flowing.
If filament is flowing through the sensor it has to constantly heat new filament. If the extruder is jammed or the filament has run out, the nozzle is only maintaining the temperature of the nozzle and any residual filament inside it.
Is there enough of a difference in the duty cycle of a heater nozzle to be reliably determine whether filament is flowing? If there is a detectable delta between “actually extruding” and “maintaining nozzle temp” the printer could alert the operator (through the UI or through macro actions). The operator could then decide whether extrusion has stopped or if it is merely a false alarm.
If no one knows the answer to the above question, how could I go about logging duty cycle and expected flow rate in a way that would relatively simple to analyze?
I think I could construct a test where first the printer prints a model with filament loaded while logging the expected flow rate and the nozzle heater duty cycle. I could then manually deplete the filament supply and “air print” the same gcode file. I could then compare the expected flow rate and the nozzle heater duty cycle of the two runs to get some idea of whether this idea has any merit.
I don’t think this method could replace a runout sensor, but it would allow detection of a clogged nozzle or clogged extruder without allowing several hours to pass.