Auto restart on filament error
I've noticed (at least for my printer) that about 90% of filament too little movement errors can simply be resumed and the printer keeps working. My thought is to create some conditional G code that will automatically resume the printer once. If it pauses again within 5 seconds or so after resuming, then it will stay paused. If the printer keeps printing after auto resuming, then this cycle can reset and repeat for future errors.
However, I'm not much of a programmer and am trying to figure out how to implement this. I'll have to initialize some variables in my start G code and I imagine filament-error0.g will have some sort of test to see whether it has just paused within the last 5 seconds or so.
Any suggestions would be greatly appreciated!
This issue stems from using 10kg spools with this printer and the initial inertia of getting the spool rotating trips the filament sensor. I'm open to other suggestions on solving this.
OwenD last edited by OwenD
The inertia problem will require some bearings.
The timer thing will require that you create a global variable in resume.g (probably as last line)
if !exists(global.AutoResumeTime) global AutoResumeTime = state.Time + 5 else set global.AutoResumeTime = state.Time + 5
Then in filament-error.g put as your first line
if exists(global.AutoResumeTime) if state.Time < global.AutoResumeTime M99 ; if the variable there's been a resume. If it was less than 5 seconds ago we exit without action
Note that in 3.4 RC the naming and some functionality of filament error files changed.
This is untested and from memory so check up on the syntax of state.Time in you object model browser
dc42 administrators last edited by
@iff7378 which firmware version are you running? There have been improvements to filament monitoring since the 3.3 release.