Skip to main content

Site Navigation

Your Account

Choose Language

Help

Revision to Setting up to resume a print after a power failure

Tony

[title|Setting up to resume a print after a power failure]
 
[toc]
 
 
 
'''These instructions relate to RepRapFirmware 1.20.''' The auto-save facility was first introduced in version 1.19, however improvements in 1.20 necessitated changes to the configuration mechanism.
 
== Limitations ==
 
* You should use 24V power, not 12V. This makes it much more likely that there will be sufficient power left to lift the print head when power failure is detected.
* You must be able to re-home the printer (possibly using a different homing sequence from normal) with a print on the bed.
* If the print becomes detached from the bed while the power is off due to loss of bed heat, you won't be able to resume the print.
* The head must not drop down onto the print when power is removed.
 
== How it works ==
 
* Any time you pause a print from SD card, the state of the print is saved to a special file on the SD card, '''sys/resurrect.g'''
* On the Duet WiFi and Duet Ethernet, you can also also use the M911 command in config.g to enable automatic pause and state saving when low VIN voltage is detected
* You must set up file '''sys/resurrect-prologue.g''' to home the printer, taking account of the fact that there will be a print on the bed
* When the power supply voltage drops below the auto-pause threshold voltage, the heaters are turned off to conserve power, the state of the print is saved to file '''sys/resurrect.g''' on the SD card, the power fail script specified in the M911 command is run, and the print is left in a paused state
* After the power is restored, you can use command M916 to resume the print from where it stopped. This command runs file '''sys/resurrect.g''' which calls '''sys/resurrect-prologue.g''' at an appropriate point to home the printer
 
== Configuring auto-pause ==
 
Use the [[Gcode#Section_M911_Configure_auto_save_on_loss_of_power|M911 command]]. Example for a 24V Cartesian printer:
 
[code]M911 S21.0 R23.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"[/code]
 
In this example, the power fail procedure is execute if VIN drops below 21.0V. It does the following:
 
* Set X and Y motors to zero current (M913 X0 Y0). This is to make the power last longer. Don't do this on a delta printer.
* Set relative movement mode (G91)
* Set relative extrusion mode (M83)
* Simultaneously lift the head and retract filament (G1 Z3 E-5 F1000)
 
== Setting up the sys/resurrect-prologue.g file ==
 
When you print file '''sys/resurrect.g''' it performs the following operations:
 
* Set bed and chamber heater temperatures
* Set all tools and heaters to their saved temperatures and other parameters, and set tools to active or standby as needed (without executing tool change macros)
* Call '''sys/resurrect-prologue.g'''
* Restore fan speeds, move the head to where it stopped printing, and resume the print
 
At the very least, your '''sys/resurrect-prologue.g''' file must do the following:
 
* Home the printer, without crashing the head into the print. On a delta, or on a Cartesian or CoreXY printer with a Z max homing switch, you can home all axes. On other types of printers you may have to skip homing Z and use a G92 command to tell the printer the current Z coordinate. If you choose not to home an axis, then even if the print head hasn't moved since power down, the motor positions will change by up to 4 full steps compared to their position at power down.
* Execute M116 to wait for all heaters to reach operating temperature. You may do this either before or after homing axes.
* If your power fail procedure in the M911 command retracts filament and your printer has a single nozzle, you may wish to undo the retraction.
 
Example for a delta printer:
 
[code]
M116 ; wait for temperatures
G28 ; home all towers
M83 ; relative extrusion
G1 E4 F3600 ; undo the retraction that was done in the M911 power fail script
[/code]