Klippain requires a few simple steps to configure and customize it for your printer: please follow the following documentation step by step in order to get your printer running.
Warning:
General rule to keep the auto-update feature working: never modify Klippain files directly, but instead add overrides as per the following documentation. To proceed, you can modify all the pre-installed templates in your config root folder (
printer.cfg
,mcu.cfg
,variables.cfg
andoverrides.cfg
and, if applicable, the MMU configs files in themmu
directory created when you install Happy-Hare) as they will be preserved on update.
Before configuring Klippain, you will need to configure your MCUs and wiring. If you didn't select any templates during the installation (or want to customize the default wiring), modify your mcu.cfg
file according to the MCU pinout and wiring documentation.
Don't forget to fill in the serial_port or can_uuid of your MCUs. Refer to the official Klipper documentation for help.
Don't overlook, this section is the most important. Now that your MCU is configured, you will need to follow some additionnal steps to configure Klippain:
- In
printer.cfg
, uncomment lines corresponding to your printer hardware or software components to enable them (e.g., extruder type, XY motors, Z motors, QGL vs Z_TILT, etc.). - Then, edit
overrides.cfg
according to the overrides documentation and examples. Use overrides to tweak machine dimensions, invert motor directions, change axis limits, currents, sensors type, or anything you feel the need to change. - Once Klipper boots successfully, adjust the
variables.cfg
file to match your machine's configuration. This file provides additional customization for macro behavior (coordinates, enabling/disabling software features, etc.).
Note:
If you want to use an MMU/ERCF with Klippain, you need to install the HappyHare backend. Also, have a look at the Klippain MMU documentation for more specific details about its configuration.
Before your first print, carefully check all features to prevent issues on your machine! Begin with the config checks section from the official Klipper documentation.
Next, ensure the mechanical probe (if used) can be attached/detached, verify that QGL/Z_TILT works, and confirm correct coordinates for all components (purge bucket, physical Z endstop, etc.). Check your first layer calibration (and the switch_offset
parameter of the automatic Z calibration plugin, if used), etc...
Klippain will work out of the box with most slicers on the market and your profiles should be almost ready to go. You will just need to set some custom start print and end print gcodes to give Klippain the correct info.
Slicer | Custom start print gcode |
---|---|
SuperSlicer | START_PRINT EXTRUDER_TEMP={first_layer_temperature[initial_extruder] + extruder_temperature_offset[initial_extruder]} BED_TEMP=[first_layer_bed_temperature] MATERIAL=[filament_type] SIZE={first_layer_print_min[0]}_{first_layer_print_min[1]}_{first_layer_print_max[0]}_{first_layer_print_max[1]} INITIAL_TOOL={initial_extruder} |
OrcaSlicer | START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] MATERIAL=[filament_type] SIZE={first_layer_print_min[0]}_{first_layer_print_min[1]}_{first_layer_print_max[0]}_{first_layer_print_max[1]} INITIAL_TOOL=[initial_tool] |
PrusaSlicer | START_PRINT EXTRUDER_TEMP={first_layer_temperature[initial_extruder]} BED_TEMP=[first_layer_bed_temperature] MATERIAL=[filament_type] SIZE={first_layer_print_min[0]}_{first_layer_print_min[1]}_{first_layer_print_max[0]}_{first_layer_print_max[1]} INITIAL_TOOL={initial_extruder} |
In addition, there are a few other optional parameters that are supported in Klippain (they must be added on the same line after the first parameters):
CHAMBER=[chamber_temperature]
(for SuperSlicer and OrcaSlicer) orCHAMBER=[idle_temperature]
(for PrusaSlicer) to set a target heatsoak temperature during the START_PRINT sequence.TOTAL_LAYER=[total_layer_count]
to be able to set the PRINT_STATS_INFOS in Klipper. If you use this, you will also need to add the correspondingSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num}
to your slicer custom layer change gcode.TOOLS_USED=!referenced_tools!
(only for MMU users) is highly recommended to check only the used tools with the HappyHare Moonraker gcode preprocessor.CHECK_GATES=0
or1
(only for MMU users) that will override the corresponding variable defined in Klippainvariables.cfg
for this specific print.SYNC_MMU_EXTRUDER=1
(only for MMU users) if you want to stay with the defaultsync_to_extruder: 0
value of HappyHare (defined inmmu/mmu_parameters.cfg
), but still want to use the sync for a specific print.
All slicers will be happy with a simple:
END_PRINT
In addition, there are a few other optional parameters that are supported in Klippain (they must be added on the same line after the first parameters):
FILTER_TIME=600
that will override the corresponding variable defined in Klippainvariables.cfg
for this specific print. Time is expressed in seconds.MMU_UNLOAD_AT_END=0
or1
(only for MMU users) that will override the corresponding variable defined in Klippainvariables.cfg
.