bassamanator / Sovol-SV06-firmware

🔥 A comprehensive Klipper configuration for a variety of 3D printers 🔥
GNU Affero General Public License v3.0
885 stars 78 forks source link
klipper klipper-configuration klipper-macros skr-mini-e3-v3 sovol sovol3d sv06 sv06-plus

Please consider donating to support my open source work ❤️

One-Stop-Shop Klipper Configuration

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.

Outline

Features

🔼 Back to top

Stay Up-to-Date

${\normalsize{\textcolor{goldenrod}{\texttt{Star ⭐ this project.}}}}$

Watch for updates.

github star

🔼 Back to top

Preface

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.

🔼 Back to top

Before You Begin

[!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.

🔼 Back to top

Klipper Installation

Flash Firmware

💡 If you flashed Klipper onto your motherboard in the past, you can skip this step.

Please note:

[!WARNING] Many users have reported having issues flashing Klipper using the Sovol microSD card.

1. Prepare the microSD Card for Flashing with These Parameters

2. Flashing Procedure

  1. Disconnect any USB cables that might be connected to the motherboard.
  2. Copy klipper.bin to the microSD card.
  3. Make sure the printer is off.
  4. Insert the microSD card into printer.
  5. Turn on the printer and wait a minute (usually takes 10 seconds).
  6. Turn off the printer and remove the microSD.

[!IMPORTANT] ⏲️ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide.

🔼 Back to top

Download OSS Klipper Configuration

Method 1: Clone the Repository

💡 Make sure git is installed (sudo apt update && sudo apt install git).

  1. cd ~/printer_data/config
  2. Empty entire ~/printer_data/config folder.
    • In linux, you can delete files via rm fileName and directories via rmdir directoryName.
    • In linux, you can list files and folders via ls -lah.
  3. git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git . ⚠️ Don't miss the period!

Method 2: Download the ZIP

  1. Download the ZIP file containing the Klipper configuration.
  2. See Step 2 in Method 1.
  3. The parent folder in the ZIP is Sovol-SV06-firmware-master. This is relevant in the next step.
  4. Extract only the contents of the parent folder into ~/printer_data/config.

🔼 Back to top

Initial Steps

Adjust Configuration with MCU Path

💡 Make sure the host and printer are connected via USB.

  1. 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/*
    1. The output will be something along the lines of
      • /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
  2. Adjust 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
  3. 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. 🎉 Your printer has been Klipperized! 🎉

🔼 Back to top

Configure Your Printer

❗☠️ 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/Fluidd console.

  1. Check to see if 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.
    1. G28
    2. G90
    3. G1 X223 F3000
    4. G1 Y223 F3000
  2. 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 the stoppers at the top. You will hear a succession of beeps.
    1. Figure out your Z position_max by baby stepping your way up to the beam, and adjust position_max, if necessary.
  3. PID tune the bed. Ideally, all PID tuning should occur at the temperatures that you print most at.
    1. PID_TEST_BED TEMP=70
    2. SAVE_CONFIG (once completed)
  4. PID tune the extruder while part cooling fan runs at 25%.
    1. PID_TEST_HOTEND TEMP=245
    2. SAVE_CONFIG (once completed)
  5. Adjust z_offset. Make sure your nozzle if very clean. Do the Paper test.
    1. DO_PROBE_CALIBRATE
    2. Follow z_offset setup in Mainsail/Fluidd.
    3. SAVE_CONFIG (once completed)
  6. Create a bed mesh.
    1. DO_CREATE_MESH
    2. SAVE_CONFIG (once completed)

🏁 If you've made it here, then your Klipperized printer is ready to print! 🏁

But first, adjust your slicer.

🔼 Back to top

Adjust Your Slicer

[!NOTE] If you are using the slicer bundles found on this repo, you can skip this section.

Start G-Code

It varies depending on your slicer. Find instructions here.

End G-Code

PRINT_END

Line Purge

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:

[!WARNING] Do not attempt to use LINE_PURGE without reading this section.

# 📝 This is just an example Start G-Code
PRINT_START ...
PURGE_LINE

🔼 Back to top

Support Me

Please ⭐ star this repository!

Support open source, and buy me a Ko-fi.

🔼 Back to top

Directory Structure

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/ 💠

🔼 Back to top

Special Considerations

Sequential printing

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.

Renamed GCODE Commands

BED_MESH_CALIBRATE

Renamed to _BED_MESH_CALIBRATE.

🔼 Back to top

FAQ

What are some settings that I can change?

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

How do I import a configuration bundle into SuperSlicer/PrusaSlicer?

Please see this discussion.

How do I print using SuperSlicer/PrusaSlicer?

Please see this discussion.

When does beeping occur?

The printer will beep upon:

I want to use a filament sensor. How do I set it up?

You can find information about the physical setup here.

You can test the sensor via QUERY_FILAMENT_SENSOR SENSOR=filament_sensor.

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.

What happens when I put in M600/colour change at a certain layer?

  1. The printer will beep 3 times (not annoyingly).
  2. Printing will stop.
  3. The printhead will park itself front center.
  4. The hotend will turn off, but the bed will remain hot.

What happens when I pause a print?

Same behaviour as M600/colour change except there won't be any beeping.

What happens when filament runs out?

If you have a working filament sensor, the same behaviour as M600/colour change will occur except the beeps will be fairly annoying.

How do I resume a print after a colour change or filament runout?

[!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:

  1. Heat up the hotend to the desired temperature.
    • Use your Klipper dashboard.
  2. 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.
  3. Hit resume in your Klipper dashboard.

What do I need to know about KAMP?

[!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 default mesh, PRINT_START will crash.

[!IMPORTANT] The Label objects setting in your slicer must be enabled for KAMP to work.

[!NOTE] 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.

Read KAMP official docs to learn more.

How do I use the 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:

How do I compile my own firmware?

Please see this discussion.

🔼 Back to top

Useful Resources

🔼 Back to top

Sovol Official Links

🔼 Back to top

Sources

ko-fi

🔼 Back to top