How to correctly setup power failure detection/resurrection in 1.20?
-
Had my first power failure during a big print early this morning, would like to resurrect.
Additional questions:
1. Why is the file in resurrect.g is called "Presurrect-prologue.g" instead of "resurrect-prologue.g" as the wiki says?
2. I never configured auto-pause with M911, yet a seemingly good resurrect.g file has been created for the print. Is there a default auto-pause in place?
3. My machine homed itself at the time of the power failure. I'm at a loss to explain how this could have happened.
The contents of resurrect.g right now:
[[language]] ; File "ExhaustPanel-P.gcode" resume print after print paused at 2018-01-13 05:07 M140 P3 S70.0 G10 P1 S0:0:0:0 R0:0:0:0 G10 P0 S215 R215 T0 P0 M98 Presurrect-prologue.g M106 P0 S1.00 M106 P2 S0.00 M106 P3 S0.00 M106 P5 S0.00 M106 P7 S0.00 M106 S255.00 M116 M290 S0.000 G92 E10.69300 M82 M23 ExhaustPanel-P.gcode M26 S4316562 P0.000 G0 F6000 Z6.560 G0 F6000 X383.10 Y181.68 G0 F6000 Z4.560 G1 F14000.0 P0 M24
-
The "P" is the parameter letter, it is not part of the filename.
In firmware 1.20 a resurrect.g file is created whenever you pause a print, so the one you have will be from when you last paused it, not from the time of the power failure unless the print was already paused when the power failed.
-
Oh, darn. Okay, thanks David.
-
…
Actually, not homing Z would work for me although I appreciate that not everyone is in the same situation. With 1mm lead screws and 1.8 degree motors, one full step is 0.005mm so 2 steps would only be an error of 0.01 mm. Even with 4mm lead screws, the error would be 0.04mm which with a 0.3mm layer height wouldn't be desperately bad. I'm guessing that Deltas use a much lower Z steps per mm but then don't they home at Z max in any case?I might be worth having the option to have G92 Z in the resurrect.g file for lead screw driven Z axes?
I can see a potential problem with that. You will probably have a command to lift Z in the power fail script, otherwise the nozzle will be stuck to the print. But if you don't have enough power reserve, that G1 Z command may not be executed accurately or in full. So you would still be uncertain of where Z should be.
A better solution might be:
- Implement a GCode to set the coordinates of the pause restore point, and generate this in resurrect.g to set it to the position when the power fail occurred
- When restarting the print, after homing X and Y and heating the nozzle, jog the head down to the correct height manually
- Implement a R1 option on the G92 command, then you cold use G92 R1 Z0 to tell the firmware it was at the Z height that is set in the psue restore point
-
But hey, that resurrect.g IS for today's date. Strange.
-
UNEXPECTED BEHAVIOR CONFIRMATION
I just successfully resurrected this print despite not having M911 defined in config.g
-
It must have automatically commanded the pause script, because it parked itself. I speculation that there was a short brownout this morning to account for it having enough power to park itself. I know you're saying that's not possible, but it did… I was sleeping when the print stopped itself, and on resurrect it picked right up where it left off.
-
Lucky you!
-
Yeah but, it seems like it issued the pause script on its own somehow. The gantry was parked, mid print. Any idea why it would do that?
-
Did I forget to mention the new firmware precognition feature?
An alert from a filament monitor will also cause a pause.