Power-off Shutdown and Power-off Resuming
Note
- Fly_FAST system is required; other systems are not supported!
- Power-off shutdown and power-off resuming functions conflict with each other and cannot be enabled simultaneously.
- If only the power-off shutdown function is enabled, the power-off resuming function will be unavailable.
- Klipper connection must be properly configured and maintained for the power-off resuming function to take effect. After this function is triggered, the system will automatically enter the shutdown process.
Wiring
Important Notes
- Notes on FLY C8 power-off shutdown/resuming functions:
- When connecting other mainboards via USB, the 5V power line must be disconnected or isolated (e.g., by cutting the cable or using a USB cable with only data pins).
- The KPPM module must be connected to three points; otherwise, it will not function properly.
- If the 5V connection between the slave and master devices cannot be disconnected, the mainboard must be completely powered off before restarting; otherwise, it may fail to boot properly.
- FLY-C8 Using 5V Wiring
- FLY-C8 Using USB Wiring
- FLY-Pi-V2 using 5V wiring
- FLY-Pi-V2 using USB wiring
Configuration
- Power-off Shutdown
- Power-off Resuming
Configure Power Failure Shutdown
Note
- Method to configure power failure shutdown
-
Enter the device's IP address in the browser address bar, for example:
http://192.168.6.179
-
Access the configuration page
- Open the device IP address in the browser, for example:
http://192.168.1.2/
- In Fluidd, uncheck the option ->
Filter hidden files and folders
as shown in the left image below. - In Mainsail, check the option ->
Show hidden files
as shown in the right image below.
- You should now see the
.flyos-config
folder. Enter this folder and locate thesys-config.conf
file. - The
sys-config.conf
file is a symbolic link to theconfig.txt
configuration file in the removable disk namedFlyOS-Conf
.
- Open the
sys-config.conf
file and locate the two configurationsshutdown_pin_state
andshutdown_pin=
, and modify them to match the configurations below: - Please note that
shutdown_pin=none
needs to be deleted or preceded by a#
symbol.
- Open the device IP address in the browser, for example:
shutdown_pin_state=0
shutdown_pin=PA21
- Then
Save
->Close
, and restart the system.

Disable Power Failure Shutdown
Note
- The power failure shutdown function needs to be disabled, otherwise the power failure resume printing function cannot be used.
- The power failure resume printing function includes an automatic shutdown feature after saving progress.
- Please ensure that no other power supply is connected to the host computer, otherwise it will not be able to power on.
-
Enter the device's IP address in the browser's address bar, for example:
http://192.168.6.179
-
Access the configuration page
- Open the device IP address in the browser, for example:
http://192.168.1.2/
- In Fluidd, uncheck -> "Filter hidden files and folders" as shown on the left in the image below.
- In Mainsail, check -> "Show hidden files" as shown on the right in the image below.
- You will now see the
.flyos-config
folder. Inside this folder is thesys-config.conf
file. - The
sys-config.conf
file is a symbolic link to theconfig.txt
configuration file in the removable diskFlyOS-Conf
.
- Open the
sys-config.conf
file and locate the configurationsshutdown_pin_state
andshutdown_pin=
. - Add a
#
at the beginning of these configuration lines. - Then click
Save
->Close
and restart the device.
- Open the device IP address in the browser, for example:
plr.cfg Configuration File
- In the printer configuration page, locate the
plr.cfg
file. - Clear its content and paste the configuration below.
- The configuration file content is as follows:
[mcu host]
serial: /tmp/klipper_host_mcu
[power_loss_resume]
power_pin: host:gpiochip1/gpio21
is_shutdown: True # Whether to perform shutdown operation, enabled by default
paused_recover_z: -2.0 # If the print was paused when powered off, the Z-axis movement distance for resuming print, default is no movement
start_gcode:
# GCode executed before resuming print
# All parameters saved before power loss can be accessed via {PLR}
# You can use M118 {PLR} to output all available parameters
M118 Resuming print: {PLR.print_stats.filename}
M118 Interruption position: X:[{PLR.POS_X}] Y:[{PLR.POS_Y}] Z:[{PLR.POS_Z}] E:[{PLR.POS_E}]
M140 S{PLR.bed.target} ; Set bed temperature
M104 S{PLR.extruder.target-10} ; Set extruder temperature
M109 S{PLR.extruder.target-10} ; Wait for extruder to reach set temperature
G91 ; Relative coordinates
G1 Z2 F100 ; Raise Z, prepare for X and Y homing
G90 ; Absolute coordinates
G28 X Y ; Home XY
M140 S{PLR.bed.target} ; Set bed temperature
M104 S{PLR.extruder.target} ; Set extruder temperature
M190 S{PLR.bed.target} ; Wait for bed to reach set temperature
M109 S{PLR.extruder.target} ; Wait for extruder to reach set temperature
M83 ; Relative extrusion
# G1 E0.5 F400 ; Extrude a little
layer_count: 2 # Execute layer_change_gcode after resuming for {layer_count} layers
layer_change_gcode:
# GCode executed after resuming for {layer_count} layers
M118 Resume print speed
M106 S{PLR.fan_speed} ; Enable part cooling fan
M220 S{PLR.move_speed_percent} ; Set requested speed percentage
M221 S{PLR.extrude_speed_percent} ; Set requested extrusion speed percentage
shutdown_gcode:
# GCode executed before shutdown
M118 Low power voltage, shutting down
# M112 ; Emergency stop
-
After saving the configuration file above,
-
Open the
printer.cfg
file and add the following content at the very beginning:
[include plr.cfg] -
Click Save and Restart in the upper right corner.
-
At this point, the power loss resume feature of Klipper has been configured.
About [homing_override]
Description
Note
- If using
[homing_override]
, do not arbitrarily set the homing position in[homing_override]
. We are not responsible for failed power loss resume caused by this. - Below is the configuration description for
[homing_override]
.
- Description
[force_move]
: Enable the force move feature, allowing forced movement to a specified position.[force_move]
replaces theset_position_z
functionality in[homing_override]
. Failure to configure as instructed may cause power loss resume to fail.- The
[homing_override]
configuration below is to correctly home the Z-axis during power loss resume.
[force_move]
enable_force_move: true
[homing_override]
axes: z
gcode:
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
{% if home_all or 'X' in params %}
G28 X
{% endif %}
{% if home_all or 'Y' in params %}
G28 Y
{% endif %}
{% if home_all or 'Z' in params %}
G0 X{max_x / 2} Y{max_y / 2} F3600
G28 Z
G1 Z10 F2000
{% endif %}
- About the Z-axis lift description
- This configuration is executed only when the Z-axis is not homed, and does not affect normal usage.
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z=0
G90
G0 Z5 F600
{% endif %}
Testing
- Print any file, and during printing click the
Emergency Stop
button to simulate power loss. - Then click
Firmware Restart
and wait for Klipper to reconnect normally. - If a pop-up appears in the web interface or KlipperScreen, it indicates the power loss resume function is working properly.
- You can further test with actual power outage scenarios.
Loading...