# 🚨 *One-Stop-Shop* Klipper Configuration This repository contains the OSS Klipper configuration that can be used with any printer running klipper. If you were looking for the OSS Klipper configuration for the SV06, please switch to the [master](https://github.com/bassamanator/Sovol-SV06-firmware) branch. # Highlights - πŸ’₯ This Klipper configuration is an *endpoint*, meaning that it contains **everything** that you could possibly need in order to have an excellent Klipper experience! πŸ’₯ - `NEW` Filament runout sensor usage implemented. - Minimum configuration settings for Mainsail/Fluiddpi to work. - SuperSlicer config bundle that contains the printer configuration, as well as what are considered by many to be the best print settings available for any FDM printer ([Ellis' SuperSlicer Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles)). Find the differences between the different print setting profiles [here](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles/tree/master/SuperSlicer). But basically, the 45 degree profile places the seam at the back. - Macros - **Improved** mechanical gantry calibration/`G34` macro that provides the user audio feedback, and time to check the calibration. ⚠️ This is for i3 style printers only, see example video [here](https://youtu.be/aVdIeIIpUAk). - 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. ## To do: - [x] Replace M109/M190 with `TEMPERATURE_WAIT`. - [x] Get the Ellis `TEST_SPEED` macro working. ⚠️This works on Vorons only!. - [x] Add information about directory structure. - [x] Create FAQ section. - [x] Get filament sensor working with hotend PCB. - [x] Finalize filament sensor config and merge into `master`. - [ ] Create topic in Discussion section detailing how users should keep this repository in sync with their own Klipper config using `git`. - [ ] Explain `PAUSE`/`RESUME` extruder behaviour. - [ ] Integrate KAMP (Klipper Adaptive Meshing and Purging). - [x] Add `BEEP` when filament needs changing/`M600`. ## Stay Up-to-Date I work on this repository all the time and a lot of new features are coming. Watch releases of this repository to be notified for future updates: Raspberry Pi # Installation Steps ## Before You Begin - Know what you're getting into by reading this documentation *fully!* - 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 USB. - It is assumed that the username on the host device is `pi`. If that is not the case, you will have to manually edit `moonraker.conf` and `cfgs/misc-macros.cfg` and change any mentions of `/home/pi` to `/home/yourUserName`. - It is assumed that you already have a working `printer.cfg` and you already have your printer up and running Klipper. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - If you see any errors, or encounter any issues, please create an [Issue](https://github.com/bassamanator/Sovol-SV06-firmware/issues/new), or a [Pull request](https://github.com/bassamanator/Sovol-SV06-firmware/pulls). - I would recommend searching for the word `NOTE` in this repository. There are roughly half a dozen short points amongst the various files that you should be aware of if you're using this configuration. ## Download the Configuration 1. [Download](https://github.com/bassamanator/Sovol-SV06-firmware/archive/refs/heads/any-printer.zip) the `ZIP` file containing the Klipper configuration. 2. The parent folder in the `ZIP` is `Sovol-SV06-firmware-any-printer`. This is relevant in the next step. 3. Extract **only** the *contents* of the parent folder into `~/printer_data/config`. πŸ’‘ If you already have a `moonraker.conf` (which you probably do since you're already up and running Klipper), and *you're not using a low powered device such as the RPi Zero*, you need to simply paste the following into your `moonraker.conf`: ``` [file_manager] enable_object_processing: True ``` ## Setup Instructions Simply add `[include ./osskc.cfg]` somewhere at the top of your `printer.cfg`. ## Directory Structure 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 βœ… β”‚ β”œβ”€β”€ adxl-direct.cfg β”‚ β”œβ”€β”€ adxl-rp2040.cfg β”‚ β”œβ”€β”€ MECHANICAL_GANTRY_CALIBRATION.cfg β”‚ β”œβ”€β”€ misc-macros.cfg β”‚ β”œβ”€β”€ PARKING.cfg β”‚ └── TEST_SPEED.cfg β”œβ”€β”€ .vscode❌ β”œβ”€β”€ .gitignore❌ β”œβ”€β”€ images ❌ β”‚ β”œβ”€β”€ githubstar.gif β”‚ β”œβ”€β”€ heart.gif β”‚ └── party_blob.gif β”œβ”€β”€ misc ❌ β”‚ β”œβ”€β”€ cup-border.png β”‚ β”œβ”€β”€ logo_white_stroke.png β”‚ └── SuperSlicer_config_bundle.ini β”œβ”€β”€ moonraker.conf βœ… ❌ ΒΏ? (depends if you already have this file or not) β”œβ”€β”€ osskc.cfg βœ… └── README.md ❌ ``` ## Ko-fi Support Me Ko-fi If you found my work useful, please consider buying me a [Ko-fi](https://ko-fi.com/bassamanator). ## FAQ ##### How do I import a SuperSlicer configuration bundle (`SuperSlicer_config_bundle.ini`) into SuperSlicer? Please see [this discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/13). ##### How do I print using SuperSlicer? Please see [this discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/14). ##### When does beeping occur? The printer will beep upon: - Filament runout. - Filament change/`M600`. - Upon `PRINT_END`. - `MECHANICAL_GANTRY_CALIBRATION`/`G34`. ##### How do I disable beeping? Make the following changes according to your needs. All beeping will be disabled *except* during gantry calibration. | File | `cfgs/misc-macros.cfg` | | - | - | | Section | `[gcode_macro _globals]` | | Variable | `variable_beeping_enabled` | | Disable beeping | `0` | | Enable beeping | `1` | ##### I want to use a filament sensor. How do I set it up? You can find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor). ##### I have a simple filament sensor connected. How do I enable/disable it? Make the following changes according to your needs. | File | `cfgs/misc-macros.cfg` | | - | - | | Section | `[gcode_macro _globals]` | | Variable | `variable_filament_sensor_enabled` | | Disable sensor | `0` | | Enable sensor | `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. ## Useful Resources - [RP2040-Zero ADXL345 Connection Klipper](https://github.com/bassamanator/rp2040-zero-adxl345-klipper) - ⭐⭐⭐ [Ellis' Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide) ## Sources - https://www.klipper3d.org - https://ellis3dp.com/Print-Tuning-Guide - https://github.com/strayr/strayr-k-macros - https://docs.vorondesign.com/build/software/miniE3_v20_klipper.html - ⭐ https://github.com/spinixguy/Sovol-SV06-firmware - https://www.printables.com/model/378915-sovol-sv06-buildplate-texture-and-model-for-prusas - https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H0HIHTH)