filament monitoring events
-
Hello. Duet3 + sbc , version 3.4.5
I have set up a pulse filament sensor. It is working and calibration info looks ok.
Im doing a test print. Everything went ok for the first 2 hs. and then the print paused because of a "too much filament movement"
The problem is that it seems it is not doing as expected following the documentation:run filament-error#.g if available, where # is the extruder number
failing that run filament-error.g if available
failing that the Duet enters the Pausing state, shows a message on all available targets with the type of filament error, and invokes system macro pause.g. The job is paused and will need manual intervention to resume the print.In my config I have added a filament-error0.g
So that file should be excuted in case the filament sensor on extruder 0 detects a problem.
Instead of that it is executing pause.g
I have double checked and the file is there (in the system folder) and it is properly named:What could be the problem? I know that it is not being called it is pausing and taking the printhead to coordinates that are not the ones specified on that file but they are specified on pause.g
Thanks in advance for the help
-
@Tinchus since 3.4.x the event system has taken over handling of these sorts of issues:
https://docs.duet3d.com/en/User_manual/RepRapFirmware/Events#changes-in-behaviour-since-rrf-33
Specifically:
In RRF 3.3 when a filament error occurred RRF would first look for filament-error#.g where # is the extruder number, and fall back to filament_error.g if that was not found. RRF 3.3 would pause the print before running the filament-error file. RRF 3.4 only looks for filament-error.g but it passes the extruder number in the D parameter, and it does not pause the print.
Try without the 0 in your filament-error gcode file.
-
I will update the documentation
-
@T3P3Tony Great, filament-error.g is working.
Regarding the D parameter, is "D" the parameter I can check with a conditional gcode inside filament-error.g so check who triggered the error?
Can I check also which error number was reported in order to react accordingly? Docs say the parameter P but it is not clear to me: D and P are globals? -
@Tinchus They are passed as macro parameters which you can then use in conditional gcode:
https://docs.duet3d.com/en/User_manual/Reference/Gcode_meta_commands#macro-parameters
e.g: this command inside filament-error.g will print them out
echo "filament error from filament monitor: "^{param.B}^"."^{param.D}^" : "^{param.P}^" ,"^{param.S}
-
@Tinchus said in filament monitoring events:
@T3P3Tony Great, filament-error.g is working.
Regarding the D parameter, is "D" the parameter I can check with a conditional gcode inside filament-error.g so check who triggered the error?
Can I check also which error number was reported in order to react accordingly? Docs say the parameter P but it is not clear to me: D and P are globals?D and P are parameters passed to the filament-error.g macro, similar to the parameters you can pass to other macros. Within that macro you refer to them as param.D and param.P. See https://docs.duet3d.com/en/User_manual/Reference/Gcode_meta_commands#macro-parameters.
-
Thank you both!!!! All doubts answered, can we marked ths as "solved"
-
I ahve to say it again... DUDE , WHAT A NICE BOARD YOU HAVE DESIGNED!
-
-