π₯ A comprehensive Klipper configuration for a variety of 3D printers π₯
1,087
476 commits
updated Sep 25, 2026
Please consider donating to support my open source work β€οΈ
| Printer | Branch |
|---|---|
| ${\normalsize{\textcolor{darkturquoise}{\text{Sovol SV06}}}}$ | β‘ ${\scriptsize{\textcolor{darkturquoise}{\text{YOU ARE HERE}}}}$ β‘ |
| Sovol SV06 SKR-Mini-E3-V3.0 | skr-mini-e3-v3 |
| Sovol SV06 Fly-E3-Pro-V3 | fly-e3-pro-v3 ** |
| Sovol SV06 Plus | sv06-plus |
| All other printers | any-printer |
${\small{\textit{** Maintained by ElPainis}}}$
[!WARNING] I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk.
Mainsail and Fluidd.SV06/Plus; SV07/PlusG34 macro that provides the user audio feedback, and time to check the calibration.PRINT_START, CANCEL_PRINT, PRINT_END, PAUSE, RESUME.PARKFRONT, PARKFRONTLOW, PARKREAR, PARKCENTER, PARKBED.PURGE_LINE macro.TEST_SPEED macro. Find instructions here.${\normalsize{\textcolor{goldenrod}{\texttt{Star β this project.}}}}$
Watch for updates.
Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and fully read this documentation. Also note that Klipper is not a must, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience.
In many ways, this entire repository can be considered my opinion on the 3D printing experience and this has been my attempt to share that experience. Some factors, such as accuracy and testing, have been at the forefront of my thoughts during this process. I hope you find this repository suitable. Cheers.
pi. If that is not the case, edit moonraker.conf and cfgs/misc-macros.cfg to change any mentions of /home/pi to /home/yourUserName.Fluidd, you can do this from Settings > Software Updates.Mainsail, you can do this from Machine > Update Manager.NOTE in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of.[!TIP] Most of the micro USB cables that you find at home are unlikely to be data cables, and it is not possible to tell just by looking.
[!CAUTION] Make sure your printer is in good physical condition, because print and travel speeds will be a lot faster. Beginners would be wise to run through these steps.
[!CAUTION] Disable the USB cable's 5V pin.
π‘ If you flashed Klipper onto your motherboard in the past, you can skip this step.
Please note:
klipper.bin even though the actual filename is something along the lines of klipper-v0.11.0-148-g52f4e20c.bin.misc folder..bin is also important.[!WARNING] Many users have reported having issues flashing Klipper using the Sovol microSD card.
16GB maximum.FAT32.4096 bytes.klipper.bin to the microSD card.[!IMPORTANT] β²οΈ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide.
π‘ Make sure git is installed (sudo apt update && sudo apt install git).
ssh into the Klipper host.cd ~/printer_data/config~/printer_data/config folder.
rm fileName and directories via rmdir directoryName.ls -lah.git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git . β οΈ Don't miss the period!ZIP file containing the Klipper configuration.Step 2 in Method 1.ZIP is Sovol-SV06-firmware-master. This is relevant in the next step.~/printer_data/config.π‘ Make sure the host and printer are connected via USB.
Find what port the mcu (printer motherboard) is connected to via one of the following commands:
ls /dev/serial/by-id/*ls /dev/serial/by-path/*/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0Adjust the [mcu] section in printer.cfg accordingly.
# π This is just an example
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command
Do a FIRMWARE_RESTART in the Klipper console.
If the Klipper flash that you did earlier was successful, and you've done everything else correctly, you should see no errors or warnings in the Mainsail/Fluidd dashboard. π Your printer has been Klipperized! π
ββ οΈ Your finger should be on the power switch for most of these steps β οΈβ
ββ οΈ Power off if there is a collision/problem β οΈβ
π‘ The ${\small{\textcolor{red}{\texttt{EMERGENCY STOP}}}}$ button in your dashboard works faster than hitting the power switch.
π‘ Do a practice emergency stop.
π‘ I recommend no filament be loaded for any of these steps.
[!NOTE] You will be pasting/typing these commands into the
Mainsail/Fluiddconsole.
X and Y max positions can be reached, and adjust position_max, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety.
G28G90G1 X223 F3000G1 Y223 F3000G34. After the controlled collision against the beam at the top, there will be a 10 second pause for you to verify that both sides of the gantry are pressed up against the stoppers at the top. You will hear a succession of beeps.
Z position_max by baby stepping your way up to the beam, and adjust position_max, if necessary.PID_TEST_BED TEMP=70SAVE_CONFIG (once completed)PID_TEST_HOTEND TEMP=245SAVE_CONFIG (once completed)z_offset. Make sure your nozzle if very clean. Do the Paper test.
DO_PROBE_CALIBRATEz_offset setup in Mainsail/Fluidd.SAVE_CONFIG (once completed)DO_CREATE_MESHSAVE_CONFIG (once completed)π If you've made it here, then your Klipperized printer is ready to print! π
But first, adjust your slicer.
[!NOTE] If you are using the slicer bundles found on this repo, you can skip this section.
It varies depending on your slicer. Find instructions here.
PRINT_END
If you would like to print a purge line before your print starts, at the end of your start gcode, on a new line, add one of the following:
PURGE_LINE; prints a standard purge line.KAMP_LINE_PURGE; prints KAMP's purge line.[!WARNING] Do not attempt to use
KAMP_LINE_PURGEwithout reading this section.
# π This is just an example Start G-Code
PRINT_START ...
PURGE_LINE
Please β star this repository!
Support open source, and buy me a
.
This repository contains many files and folders. Some are necessary for this Klipper configuration to work, others are not.
/home/pi/printer_data/config
βββ cfgs/ β
βββ CODE_OF_CONDUCT.md π
βββ CONTRIBUTING.md π
βββ .git/ β
β
βββ .github/ π
βββ .gitignore β
β
βββ LICENSE π
βββ misc/ π
βββ moonraker.conf β
βββ osskc.cfg β
βββ printer.cfg β
βββ README.md π
βββ SECURITY.md π
βββ .vscode/ π
If enabled, cancelling, or resuming a print from pause, could lead to collisions with previously printed objects. In order to prevent collisions, in your slicer, ensure that objects are printed from the back of the build plate to the front.
In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances.
This error often occurs when the mcu is unable to generate the required microsteps. Lower power Klipper hosts might be especially susceptible. Reducing microsteps to 64, or even 32 can resolve the issue.
Edit the relevant file according to your needs.
| File | Section |
|---|---|
cfgs/misc-macros.cfg | [gcode_macro _globals] |
| Variable | Disable | Enable | Notes |
|---|---|---|---|
variable_beeping_enabled | 0 | 1 (default) | |
variable_filament_sensor_enabled | 0 (default) | 1 | |
variable_kamp_enable | 0 (default) | 1 | See here |
variable_bed_temp_over | 0 | 10 (default) | Speeds up print start |
variable_bed_temp_not_exact | 0 | 1 (default) | Speeds up print start |
| Property | Marlin | OSS Klipper Config |
|---|---|---|
stepper_z run_current | 0.800 | 0.900 |
microsteps | 16 | 128 |
Please see this discussion.
Please see this discussion.
The printer will beep upon:
M600.PRINT_END.MECHANICAL_GANTRY_CALIBRATION/G34.You can find information about the physical setup here.
You can test the sensor via QUERY_FILAMENT_SENSOR SENSOR=filament_sensor.
A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps.
M600/colour change at a certain layer?Same behaviour as M600/colour change except there won't be any beeping.
If you have a working filament sensor, the same behaviour as M600/colour change will occur except the beeps will be fairly annoying.
[!WARNING] Do not disable the stepper motors during this process!
The printhead is now parked front center waiting for you to insert filament. You will:
[!WARNING] No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero.
[!WARNING] If KAMP is disabled, and there is no
defaultmesh,PRINT_STARTwill crash.
[!IMPORTANT] The Label objects setting in your slicer must be enabled for KAMP to work.
[!NOTE]
KAMP_LINE_PURGEis useable on appropriate devices even if KAMP is disabled.
This repo contains all the code from the KAMP repository, however, only the adaptive meshing and KAMP_LINE_PURGE functionality of KAMP has been configured and tested for use. To enable other functionality, adjust /cfgs/kamp/KAMP_Settings.cfg.
Read KAMP official docs to learn more.
TEST_SPEED macro?[!WARNING] This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful.
Find full instructions here.
Some tips:
ITERATIONS=40 with an untested speed/accel value, run with ITERATIONS=1.Please see this discussion.
341 followers Β· starred May 2023
31 followers Β· starred Feb 2024
92 followers Β· starred Nov 2023
19 followers Β· starred Aug 2023
π₯ A comprehensive Klipper configuration for a variety of 3D printers π₯
1,087
476 commits
updated Sep 25, 2026
Please consider donating to support my open source work β€οΈ
| Printer | Branch |
|---|---|
| ${\normalsize{\textcolor{darkturquoise}{\text{Sovol SV06}}}}$ | β‘ ${\scriptsize{\textcolor{darkturquoise}{\text{YOU ARE HERE}}}}$ β‘ |
| Sovol SV06 SKR-Mini-E3-V3.0 | skr-mini-e3-v3 |
| Sovol SV06 Fly-E3-Pro-V3 | fly-e3-pro-v3 ** |
| Sovol SV06 Plus | sv06-plus |
| All other printers | any-printer |
${\small{\textit{** Maintained by ElPainis}}}$
[!WARNING] I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk.
Mainsail and Fluidd.SV06/Plus; SV07/PlusG34 macro that provides the user audio feedback, and time to check the calibration.PRINT_START, CANCEL_PRINT, PRINT_END, PAUSE, RESUME.PARKFRONT, PARKFRONTLOW, PARKREAR, PARKCENTER, PARKBED.PURGE_LINE macro.TEST_SPEED macro. Find instructions here.${\normalsize{\textcolor{goldenrod}{\texttt{Star β this project.}}}}$
Watch for updates.
Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and fully read this documentation. Also note that Klipper is not a must, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience.
In many ways, this entire repository can be considered my opinion on the 3D printing experience and this has been my attempt to share that experience. Some factors, such as accuracy and testing, have been at the forefront of my thoughts during this process. I hope you find this repository suitable. Cheers.
pi. If that is not the case, edit moonraker.conf and cfgs/misc-macros.cfg to change any mentions of /home/pi to /home/yourUserName.Fluidd, you can do this from Settings > Software Updates.Mainsail, you can do this from Machine > Update Manager.NOTE in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of.[!TIP] Most of the micro USB cables that you find at home are unlikely to be data cables, and it is not possible to tell just by looking.
[!CAUTION] Make sure your printer is in good physical condition, because print and travel speeds will be a lot faster. Beginners would be wise to run through these steps.
[!CAUTION] Disable the USB cable's 5V pin.
π‘ If you flashed Klipper onto your motherboard in the past, you can skip this step.
Please note:
klipper.bin even though the actual filename is something along the lines of klipper-v0.11.0-148-g52f4e20c.bin.misc folder..bin is also important.[!WARNING] Many users have reported having issues flashing Klipper using the Sovol microSD card.
16GB maximum.FAT32.4096 bytes.klipper.bin to the microSD card.[!IMPORTANT] β²οΈ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide.
π‘ Make sure git is installed (sudo apt update && sudo apt install git).
ssh into the Klipper host.cd ~/printer_data/config~/printer_data/config folder.
rm fileName and directories via rmdir directoryName.ls -lah.git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git . β οΈ Don't miss the period!ZIP file containing the Klipper configuration.Step 2 in Method 1.ZIP is Sovol-SV06-firmware-master. This is relevant in the next step.~/printer_data/config.π‘ Make sure the host and printer are connected via USB.
Find what port the mcu (printer motherboard) is connected to via one of the following commands:
ls /dev/serial/by-id/*ls /dev/serial/by-path/*/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0Adjust the [mcu] section in printer.cfg accordingly.
# π This is just an example
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command
Do a FIRMWARE_RESTART in the Klipper console.
If the Klipper flash that you did earlier was successful, and you've done everything else correctly, you should see no errors or warnings in the Mainsail/Fluidd dashboard. π Your printer has been Klipperized! π
ββ οΈ Your finger should be on the power switch for most of these steps β οΈβ
ββ οΈ Power off if there is a collision/problem β οΈβ
π‘ The ${\small{\textcolor{red}{\texttt{EMERGENCY STOP}}}}$ button in your dashboard works faster than hitting the power switch.
π‘ Do a practice emergency stop.
π‘ I recommend no filament be loaded for any of these steps.
[!NOTE] You will be pasting/typing these commands into the
Mainsail/Fluiddconsole.
X and Y max positions can be reached, and adjust position_max, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety.
G28G90G1 X223 F3000G1 Y223 F3000G34. After the controlled collision against the beam at the top, there will be a 10 second pause for you to verify that both sides of the gantry are pressed up against the stoppers at the top. You will hear a succession of beeps.
Z position_max by baby stepping your way up to the beam, and adjust position_max, if necessary.PID_TEST_BED TEMP=70SAVE_CONFIG (once completed)PID_TEST_HOTEND TEMP=245SAVE_CONFIG (once completed)z_offset. Make sure your nozzle if very clean. Do the Paper test.
DO_PROBE_CALIBRATEz_offset setup in Mainsail/Fluidd.SAVE_CONFIG (once completed)DO_CREATE_MESHSAVE_CONFIG (once completed)π If you've made it here, then your Klipperized printer is ready to print! π
But first, adjust your slicer.
[!NOTE] If you are using the slicer bundles found on this repo, you can skip this section.
It varies depending on your slicer. Find instructions here.
PRINT_END
If you would like to print a purge line before your print starts, at the end of your start gcode, on a new line, add one of the following:
PURGE_LINE; prints a standard purge line.KAMP_LINE_PURGE; prints KAMP's purge line.[!WARNING] Do not attempt to use
KAMP_LINE_PURGEwithout reading this section.
# π This is just an example Start G-Code
PRINT_START ...
PURGE_LINE
Please β star this repository!
Support open source, and buy me a
.
This repository contains many files and folders. Some are necessary for this Klipper configuration to work, others are not.
/home/pi/printer_data/config
βββ cfgs/ β
βββ CODE_OF_CONDUCT.md π
βββ CONTRIBUTING.md π
βββ .git/ β
β
βββ .github/ π
βββ .gitignore β
β
βββ LICENSE π
βββ misc/ π
βββ moonraker.conf β
βββ osskc.cfg β
βββ printer.cfg β
βββ README.md π
βββ SECURITY.md π
βββ .vscode/ π
If enabled, cancelling, or resuming a print from pause, could lead to collisions with previously printed objects. In order to prevent collisions, in your slicer, ensure that objects are printed from the back of the build plate to the front.
In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances.
This error often occurs when the mcu is unable to generate the required microsteps. Lower power Klipper hosts might be especially susceptible. Reducing microsteps to 64, or even 32 can resolve the issue.
Edit the relevant file according to your needs.
| File | Section |
|---|---|
cfgs/misc-macros.cfg | [gcode_macro _globals] |
| Variable | Disable | Enable | Notes |
|---|---|---|---|
variable_beeping_enabled | 0 | 1 (default) | |
variable_filament_sensor_enabled | 0 (default) | 1 | |
variable_kamp_enable | 0 (default) | 1 | See here |
variable_bed_temp_over | 0 | 10 (default) | Speeds up print start |
variable_bed_temp_not_exact | 0 | 1 (default) | Speeds up print start |
| Property | Marlin | OSS Klipper Config |
|---|---|---|
stepper_z run_current | 0.800 | 0.900 |
microsteps | 16 | 128 |
Please see this discussion.
Please see this discussion.
The printer will beep upon:
M600.PRINT_END.MECHANICAL_GANTRY_CALIBRATION/G34.You can find information about the physical setup here.
You can test the sensor via QUERY_FILAMENT_SENSOR SENSOR=filament_sensor.
A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps.
M600/colour change at a certain layer?Same behaviour as M600/colour change except there won't be any beeping.
If you have a working filament sensor, the same behaviour as M600/colour change will occur except the beeps will be fairly annoying.
[!WARNING] Do not disable the stepper motors during this process!
The printhead is now parked front center waiting for you to insert filament. You will:
[!WARNING] No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero.
[!WARNING] If KAMP is disabled, and there is no
defaultmesh,PRINT_STARTwill crash.
[!IMPORTANT] The Label objects setting in your slicer must be enabled for KAMP to work.
[!NOTE]
KAMP_LINE_PURGEis useable on appropriate devices even if KAMP is disabled.
This repo contains all the code from the KAMP repository, however, only the adaptive meshing and KAMP_LINE_PURGE functionality of KAMP has been configured and tested for use. To enable other functionality, adjust /cfgs/kamp/KAMP_Settings.cfg.
Read KAMP official docs to learn more.
TEST_SPEED macro?[!WARNING] This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful.
Find full instructions here.
Some tips:
ITERATIONS=40 with an untested speed/accel value, run with ITERATIONS=1.Please see this discussion.
341 followers Β· starred May 2023
31 followers Β· starred Feb 2024
92 followers Β· starred Nov 2023
19 followers Β· starred Aug 2023