Klipper’s configuration system is very flexible and robust, but it has a couple things that can make it confusing for new users (or even experienced users):
- Including configs are helpful to organize configs, and I use includes extensively, but it can make it hard to debug certain SAVE_CONFIG errors
- Sections can override each other, and each section overrides the one before it. Again, helpful for modularity, but a bit annoying when debugging configs.
Because of this I developed AllConfig, a simple Klipper utility to allow for outputting the entire config as Klipper sees it to a file. This offers two main benefits over looking at the klippy.log
:
- It’s in the config directory, so one less click to get to the log directory
- It’s a lot smaller than the
klippy.log
, so your UI won’t freeze when you open it or try to do a CTRL+F.
Once you install AllConfig and put a [allconfig]
section anywhere in your printer’s config, on the next Klipper restart, a file named allconfig.cfg
will be generated in your config directory, including the below header for clarity:
More information can be found on its Github.
# This file contains the config that Klipper actually sees.
# Note that this may be different that what is in your printer.cfg
# because there may be multiple sections overriding each other.
#
# Example:
# # In one file
# [extruder]
# step_pin: xxx
# dir_pin: xxx
# en_pin: !xxx
# rotation_distance: 40
# ...
#
# # In another file included into printer.cfg
# [extruder]
# rotation_distance: 32
#
# Klipper only sees what happens last, so if the config was loaded
# in the order shown in the previous example, Klipper would see:
#
# [extruder]
# step_pin: xxx
# dir_pin: xxx
# en_pin: !xxx
# rotation_distance: 32 # <-- NOTE the different rotation_distance
#
# This also takes into account SAVE_CONFIG.
# Example:
#
# #*# <---------------------- SAVE_CONFIG ---------------------->
# #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
# #*#
# #*# [extruder]
# #*# pid_kp: 21.432
# #*# pid_ki: 1.856
# #*# pid_kd: 61.884
#
# In this example, including the previous [extruder] section,
# Klipper would see:
#
# [extruder]
# step_pin: xxx
# dir_pin: xxx
# en_pin: !xxx
# rotation_distance:
# pid_kp: 21.432
# pid_ki: 1.856
# pid_kd: 61.884