This branch contains the Klipper configuration and firmware for the Sovol SV06 3D printer.
Printer | Branch |
---|---|
β‘ |
|
Sovol SV06 Skr-Mini-E3-V3.0 | skr-mini-e3-v3 |
Sovol SV06 Plus | sv06-plus |
All other printers | any-printer |
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.
- Features
- Stay Up-to-Date
- Preface
- Before You Begin
- Klipper Installation
- Initial Steps
- Adjust Your Slicer
- Support Me
- Directory Structure
- FAQ
- Useful Resources
- Sovol Official Links
- Sources
- π₯ This Klipper configuration is an endpoint, meaning that it contains everything that you could possibly need in order to have an excellent Klipper experience! π₯
- Filament runout sensor usage implemented.
- Minimum configuration settings for
Mainsail
andFluidd
. - Pre-configured configuration bundles based on the Ellis SuperSlicer Print Profiles:
- SuperSlicer
- PrusaSlicer
- Printer profiles: SV06/Plus; SV07/Plus
- Bed model and texture to use in SuperSlicer/PrusaSlicer.
- Macros:
- Improved mechanical gantry calibration/
G34
macro that provides the user audio feedback, and time to check the calibration. - Misc macros:
PRINT_START
,CANCEL_PRINT
,PRINT_END
,PAUSE
,RESUME
. - Parking macros (parks the printhead at various locations):
PARKFRONT
,PARKFRONTLOW
,PARKREAR
,PARKCENTER
,PARKBED
. - Load/unload filament macros.
PURGE_LINE
macro.TEST_SPEED
macro. Find instructions here.
- Improved mechanical gantry calibration/
- Klipper Adaptive Meshing & Purging (KAMP) integrated. Read about it here.
Watch for releases and updates. Please see this discussion.
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.
- This entire page is a 13 minute read. Save yourself hours of troubleshooting and read this documentation fully.
- Make sure your printer is in good physical condition, because print and travel speeds will be a lot faster than they were before. Beginner's would be wise to go through the steps mentioned here. Consider yourself warned.
- Follow the steps in order.
- If an error was reported at a step, do no proceed to the next step.
- It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a data USB cable. π‘ Most of the micro USB cables that you find at home are unlikely to be data cables, and it's not possible to tell just by looking.
- Disable the USB cable's 5V pin.
- It is also assumed that the username on the host device is
pi
. If that is not the case, you will have to manually editmoonraker.conf
andcfgs/misc-macros.cfg
and change any mentions of/home/pi
to/home/yourUserName
. - Klipper must be installed on the host Raspberry Pi for everything to work. Easiest is to use a MainsailOS image. Alternatively, you can install
Fluidd
orMainsail
via KIAUH. - Klipper must be up to date.
- In
Fluidd
, you can do this fromSettings
>Software Updates
. - In
Mainsail
, you can do this fromMachine
>Update Manager
.
- In
- Robert Redford's performance in Spy Game (2001) was superb!
- It is assumed that there is one instance of Klipper installed. If you have multiple instances of Klipper installed, via
KIAUH
for example, then this guide is not for you. You can still use all the configs of course, but the steps in this guide will likely not work for you. - Your question has probably been answered already, but if it hasn't, please post in the Discussion section.
- I would recommend searching for the word
NOTE
in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of.
π‘ If you have already flashed klipper onto your motherboard in the past, you can skip this step.
Please note:
- For the sake of simplicity, I will refer to the klipper firmware file as
klipper.bin
even though the actual filename is something along the lines ofklipper-v0.11.0-148-g52f4e20c.bin
. - The firmware file is located in the
misc
folder. - Flashing will only work if current firmware filename is different from previous flashing procedure. The
.bin
is also important. - You may find this video useful.
β οΈ Many users have reported having issues flashing Klipper using the Sovol microSD card.
- Size:
16GB
maximum. - File system:
FAT32
. - Allocation unit size:
4096 bytes
. - Must not contain any files except the firmware file.
- Disconnect any USB cables that might be connected to the motherboard.
- Copy
klipper.bin
to the microSD card. - Make sure the printer is off.
- Insert the microSD card into printer.
- Turn on the printer and wait a minute (usually takes 10 seconds).
- Turn off the printer and remove the microSD.
β²οΈ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide.
You can choose either of the 2 following methods.
cd ~/printer_data/config
- Empty entire
~/printer_data/config
folder.- In linux, you can delete files via
rm fileName
and directories viarmdir directoryName
. - In linux, you can list files and folders via
ls -lah
.
- In linux, you can delete files via
git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .
β οΈ Don't miss the period!
- Download the
ZIP
file containing the Klipper configuration. - See
Step 2
inMethod 1
. - The parent folder in the
ZIP
isSovol-SV06-firmware-master
. This is relevant in the next step. - Extract only the contents of the parent folder into
~/printer_data/config
.
-
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/*
- The output will be something along the lines of
/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
-
Adjust the
[mcu]
section inprinter.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
.
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. Klipper has successfully been installed on your printer!
ββ οΈ Your finger should be on the power switch for most of these steps β οΈβ
ββ οΈ Power off if there is a collision/problem β οΈβ
π‘ The
π‘ Do a practice emergency stop.
π‘ I recommend no filament be loaded for any of these steps.
ποΈ You will be pasting/typing these commands into the Mainsail
/Fluidd
console.
- Check to see if
X
andY
max positions can be reached, and adjustposition_max
, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety.G28
G90
G1 X223 F3000
G1 Y223 F3000
- Do a mechanical gantry calibration;
G34
. 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 thestoppers
at the top. You will hear a succession of beeps.- Figure out your
Z
position_max
by baby stepping your way up to the beam, and adjustposition_max
, if necessary.
- Figure out your
- PID tune the bed. Ideally, all PID tuning should occur at the temperatures that you print most at.
PID_TEST_BED TEMP=70
SAVE_CONFIG
(once completed)
- PID tune the extruder while part cooling fan runs at 25%.
PID_TEST_HOTEND TEMP=245
SAVE_CONFIG
(once completed)
- Adjust
z_offset
. Make sure your nozzle if very clean. Do the Paper test.DO_PROBE_CALIBRATE
- Follow
z_offset
setup inMainsail
/Fluidd
. SAVE_CONFIG
(once completed)
- Create a bed mesh.
DO_CREATE_MESH
SAVE_CONFIG
(once completed)
π If you've made it here, then your printer has been Klipperized, and is ready to print! π
But first, adjust your slicer.
ποΈ If you are using the config 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.LINE_PURGE
; prints KAMP's purge line.β οΈ Do not attempt to use without reading this section.
# ποΈ This is just an example Start G-Code
PRINT_START ...
PURGE_LINE
Please β star this repository!
If you found my work useful, buy me a .
This repository contains many files and folders. Some are necessary for this Klipper configuration to work, others are not.
- Necessary items are marked with a β .
- Items that can optionally be deleted are marked with a β.
βββ cfgs/ β
βββ CODE_OF_CONDUCT.md β
βββ CONTRIBUTING.md β
βββ .github/ β
βββ .gitignore β
βββ images/ β
βββ LICENSE β
βββ misc/ β
βββ moonraker.conf β
βββ osskc.cfg β
βββ printer.cfg β
βββ README.md β
βββ SECURITY.md β
βββ .vscode/ β
Please see this discussion.
Please see this discussion.
The printer will beep upon:
- Filament runout.
- Filament change/
M600
. - Upon
PRINT_END
. MECHANICAL_GANTRY_CALIBRATION
/G34
.
Adjust behaviour according to your needs.
File | cfgs/misc-macros.cfg |
---|---|
Section | [gcode_macro _globals] |
Variable | variable_beeping_enabled |
Disable | 0 |
Enable | 1 (default) |
You can find information about the physical setup here.
Adjust behaviour according to your needs.
File | cfgs/misc-macros.cfg |
---|---|
Section | [gcode_macro _globals] |
Variable | variable_filament_sensor_enabled |
Disable | 0 (default) |
Enable | 1 |
My filament runout sensor works, but I just started a print without any filament loaded. What gives?
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.
- The printer will beep 3 times (not annoyingly).
- Printing will stop.
- The printhead will park itself front center.
- The hotend will turn off, but the bed will remain hot.
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.
The printhead is now parked front center waiting for you to insert filament. You will:
- Heat up the hotend to the desired temperature.
- Use your Klipper dashboard.
- Purge (push) some filament through the nozzle.
- Use your Klipper dashboard, and extrude maybe 50mm (for a colour change you probably want to extrude more).
- OR, you can push some filament by hand making sure to first disengage the extruder's spring loaded arm.
- Hit resume in your Klipper dashboard.
default
mesh, PRINT_START
will crash.
ποΈ The Label objects setting in your slicer must be enabled for KAMP to work.
ποΈ LINE_PURGE
is 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 LINE_PURGE
functionality of KAMP has been configured and tested for use. To enable other functionality, adjust /cfgs/kamp/KAMP_Settings.cfg
.
Adjust behaviour according to your needs.
File | cfgs/misc-macros.cfg |
---|---|
Section | [gcode_macro _globals] |
Variable | variable_kamp_enable |
Disable | 0 (default) |
Enable | 1 |
Find full instructions here.
Some tips:
- Before running with
ITERATIONS=40
with an untested speed/accel value, run withITERATIONS=1
. - Pay close attention throughout the run, so that you can click
${\small{\textcolor{red}{\texttt{EMERGENCY STOP}}}}$ at a moment's notice. - This macro will simply help you determine the maximum speed your printhead and bed can reliably move at, not necessarily print at. The bottleneck for my SV06, for example, is the 15mm/s^2 that the hotend maxes out at (well under 200mm/s actual print speed).
Please see this discussion.
- Everything Sovol SV06
- RP2040-Zero ADXL345 Connection Klipper
- βββββ Ellis' Print Tuning Guide
- Simplify3D Print Quality Troubleshooting Guide