From 1823d0ca37ef9b2140a1052a20daa3469a67f98b Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 19 Apr 2023 22:59:32 -0400 Subject: [PATCH 01/24] Updated readme: Download section. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c7f2a3..11160d4 100644 --- a/README.md +++ b/README.md @@ -86,8 +86,9 @@ You can choose *either* of the 2 following methods. ### Method 2: Download the ZIP 1. [Download](https://github.com/bassamanator/Sovol-SV06-firmware/archive/refs/heads/master.zip) the `ZIP` file containing the Klipper configuration. -2. The parent folder in the `ZIP` is `Sovol-SV06-firmware-master`. This is relevant in the next step. -3. Extract **only** the *contents* of the parent folder into `~/printer_data/config`. +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`. ## Initial Steps From 5e342261c8e7bad6ac9f57249b04476fb707cc34 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 20 Apr 2023 12:19:06 -0400 Subject: [PATCH 02/24] Pulling in print_start from personal branch. --- README.md | 2 +- cfgs/misc-macros.cfg | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 11160d4..64147ac 100644 --- a/README.md +++ b/README.md @@ -275,7 +275,7 @@ The printhead is now parked front center waiting for you to insert filament. You - 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://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 diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 6872a33..e959bde 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -5,6 +5,11 @@ enable_force_move: True # [temperature_sensor raspberry_pi] # sensor_type: temperature_host +# NOTE If you're using a an Orange Pi, you can uncomment the next 2 lines, optionally. +# [temperature_sensor Orange_Pi] +# sensor_type: temperature_host +# sensor_path: /sys/class/thermal/thermal_zone0/temp + [virtual_sdcard] path: /home/pi/printer_data/gcodes @@ -122,9 +127,14 @@ gcode: {% set hotendtemp = params.HOTEND|int %} {% set chambertemp = params.CHAMBER|default(0)|int %} - # Set safe speeds {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} {% set maxVelocityAdjusted = (0.90 * maxVelocity * 60)|int %} + + {% if printer.configfile.settings.safe_z_home %} + {% set startX = printer.configfile.settings.safe_z_home.home_xy_position[0]|float %} + {% set startY = printer.configfile.settings.safe_z_home.home_xy_position[1]|float %} + {% endif %} + {% set bedtempAlmost = (bedtemp - 2)|int %} {% set hotendtempStepOne = 150|int %} {% set hotendtempStepTwo = 170|int %} @@ -132,18 +142,23 @@ gcode: BED_MESH_PROFILE LOAD=default ; NOTE if not using a mesh, comment out this line ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - G90 + G90 ; absolute positioning M140 S{bedtempAlmost} ; set & don't wait for bed temp M104 S{hotendtempStepOne} ; set & don't wait for hotend temp G28 X Y + {% if printer.configfile.settings.safe_z_home %} + G1 X{startX} Y{startY} F{maxVelocityAdjusted} + {% endif %} M190 S{bedtempAlmost} ; set & wait for bed temp M104 S{hotendtempStepTwo} ; set & don't wait for hotend temp M190 S{bedtemp} ; set & wait for bed temp + + M104 S{hotendtemp} ; set & don't wait for hotend temp G28 Z ; final z homing - M109 S{hotendtemp} ; set & wait for hotend temp G1 X0 Y0 F{maxVelocityAdjusted} + M109 S{hotendtemp} ; set & wait for hotend temp G1 Z20 F3000 ; move nozzle away from bed From 4a38d34a0e56f8ae8a13f721946b5dfe9353e87b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Marschollek?= Date: Thu, 20 Apr 2023 22:14:33 +0200 Subject: [PATCH 03/24] Add a minimum bed temperature of 0 degrees If the bed temperature is less than 2, the print job fails with an error message complaining about an invalid temperature. This happens, for instance, when printing ABS where the bed is not supposed to be heated. This change makes sure that the bed temperature cannot be negative. --- cfgs/misc-macros.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index e959bde..b952b20 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -135,7 +135,7 @@ gcode: {% set startY = printer.configfile.settings.safe_z_home.home_xy_position[1]|float %} {% endif %} - {% set bedtempAlmost = (bedtemp - 2)|int %} + {% set bedtempAlmost = (bedtemp - 2, 0)|max %} {% set hotendtempStepOne = 150|int %} {% set hotendtempStepTwo = 170|int %} @@ -307,4 +307,4 @@ gcode: G4 P{dur} SET_PIN PIN=beeper VALUE=0 G4 P{dur} - {% endfor %} \ No newline at end of file + {% endfor %} From 4df5ef2db319d591f35f03d641878409d6d824c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Marschollek?= Date: Fri, 21 Apr 2023 20:26:11 +0200 Subject: [PATCH 04/24] Add config for 2 ADXL345 via RasPi pico This adds a configuration supporting two ADXL345 sensors at the same time though a Raspberry Pi pico. Resonance measurements for both the head and the bed can be done without having to change the sensors. --- cfgs/adxl-rpi-pico-2x.cfg | 42 +++++++++++++++++++++++++++++++++++++++ printer.cfg | 1 + 2 files changed, 43 insertions(+) create mode 100644 cfgs/adxl-rpi-pico-2x.cfg diff --git a/cfgs/adxl-rpi-pico-2x.cfg b/cfgs/adxl-rpi-pico-2x.cfg new file mode 100644 index 0000000..f2a2e43 --- /dev/null +++ b/cfgs/adxl-rpi-pico-2x.cfg @@ -0,0 +1,42 @@ +##################################################################### +# Config that supports a print head and a bed sensor at the same time +# This requires a Raspberry Pi Pico. Instructions: +# https://klipper.discourse.group/t/raspberry-pi-pico-adxl345-portable-resonance-measurement/1757/9 +# +# Recommended mounts: +# https://www.printables.com/model/385334-sovol-sv06-adxl345-mount-printhead-and-bed +# +# ADXL345 related Settings +# https://www.klipper3d.org/Measuring_Resonances.html#adxl345 +##################################################################### + +[mcu RP2040] +baud: 115200 +restart_method: command +# Obtain definition by "ls -l /dev/serial/by-id/" +serial: /dev/serial/by-id/usb-Klipper_rp2040_E66138935F154C28-if00 + +[adxl345 head] +cs_pin: RP2040:gpio1 +spi_bus: spi0a +# update axes_map if your sensor is oriented differently. Note the print on your sensor. +# -y, -z, x means that +# - the x axis of your printer corresponds to the sensor's negative y axis +# - the y axis of your printer corresponds to the sensor's negative z axis +# - the z axis of your printer corresponds to the sensor's x axis +axes_map: -y, -z, x + +[adxl345 bed] +cs_pin: RP2040:gpio9 +spi_bus: spi1a + +[resonance_tester] +probe_points: 111.5, 116.5, 30 +accel_chip_x: adxl345 head +accel_chip_y: adxl345 bed + +[gcode_macro ADX] +description: Shortcut to ACCELEROMETER_QUERY for both sensors +gcode: + ACCELEROMETER_QUERY CHIP=head + ACCELEROMETER_QUERY CHIP=bed diff --git a/printer.cfg b/printer.cfg index 1d08719..a72b668 100644 --- a/printer.cfg +++ b/printer.cfg @@ -10,6 +10,7 @@ # NOTE Uncomment the ONE of the following lines if you're using an adxl345 # [include ./cfgs/adxl-rp2040.cfg] +# [include ./cfgs/adxl-rpi-pico-2x.cfg] # [include ./cfgs/adxl-direct.cfg] [mcu] From 51fd3f0b19f74b52ab559c2fea155f2312f1c3e3 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Fri, 21 Apr 2023 16:41:26 -0400 Subject: [PATCH 05/24] Update adxl-rpi-pico-2x.cfg Minor adjustments to adxl-rpi-pico-2x.cfg. --- cfgs/adxl-rpi-pico-2x.cfg | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cfgs/adxl-rpi-pico-2x.cfg b/cfgs/adxl-rpi-pico-2x.cfg index f2a2e43..363a301 100644 --- a/cfgs/adxl-rpi-pico-2x.cfg +++ b/cfgs/adxl-rpi-pico-2x.cfg @@ -1,7 +1,8 @@ ##################################################################### # Config that supports a print head and a bed sensor at the same time -# This requires a Raspberry Pi Pico. Instructions: -# https://klipper.discourse.group/t/raspberry-pi-pico-adxl345-portable-resonance-measurement/1757/9 +# This requires a Raspberry Pi Pico. +# Instructions: https://klipper.discourse.group/t/raspberry-pi-pico-adxl345-portable-resonance-measurement/1757/9 +# TLDR Instructions: The two sensors should use the spi0a (GPIO 0-3) and spi1a (GPIO 9-12) buses, respectively. # # Recommended mounts: # https://www.printables.com/model/385334-sovol-sv06-adxl345-mount-printhead-and-bed @@ -31,9 +32,9 @@ cs_pin: RP2040:gpio9 spi_bus: spi1a [resonance_tester] -probe_points: 111.5, 116.5, 30 accel_chip_x: adxl345 head accel_chip_y: adxl345 bed +probe_points: 111.5, 111.5, 20 [gcode_macro ADX] description: Shortcut to ACCELEROMETER_QUERY for both sensors From 835e990d888cf6605e42e1742751cae4e70823b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Marschollek?= Date: Fri, 21 Apr 2023 20:40:04 +0200 Subject: [PATCH 06/24] Avoid cooling down the extruder in PRINT_START The current `PRINT_START` macro heats the extruder to 150 degrees, then to 170, and finally to the target temperature. If the extruder is already hot, this unnecessarily cools it down and wastes time. This change only cools down the hotend if it's above the target temperature and then only to that temperature. If the extruder was colder than 150 degrees, this change maintains the current behaviour. --- cfgs/misc-macros.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 007bf92..e987a76 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -136,8 +136,8 @@ gcode: {% endif %} {% set bedtempAlmost = (bedtemp - 2, 0)|max %} - {% set hotendtempStepOne = 150|int %} - {% set hotendtempStepTwo = 170|int %} + {% set hotendtempStepOne = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 150)|max %} + {% set hotendtempStepTwo = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 170)|max %} BED_MESH_PROFILE LOAD=default ; NOTE if not using a mesh, comment out this line ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 From 940ea48541bd4ef621e8fdf43755a58e28bffa55 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Sat, 22 Apr 2023 15:00:45 -0400 Subject: [PATCH 07/24] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 64147ac..3c07c14 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This repository contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer with completely *stock hardware*. +For the **Sovol SV06 Plus**, please refer to the [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) branch. + If you wanted to use the One-Stop-Shop Klipper Configuration for a *different printer*, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. 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. From 6eedc4bd60aa67720bd055913b89a97e5a1d3143 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Sat, 22 Apr 2023 16:53:46 -0400 Subject: [PATCH 08/24] Update README.md Edit Adjust Your Slicer section. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 3c07c14..aa9803b 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,12 @@ But first, adjust your slicer. You need to adjust the start and end gcode in your slicer. The relevant macros are `PRINT_START` and `PRINT_END`. Find instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code). +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 `PURGE_LINE`. Here's an example: +``` +PRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature] +PURGE_LINE +``` + ## Directory Structure This repository contains many files and folders. Some are *necessary* for this Klipper configuration to work, others are not. From 6ede72744901d0a021ea12d48406c6b10b84fb98 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Sun, 23 Apr 2023 08:57:17 -0400 Subject: [PATCH 09/24] Update README.md Flash Firmware section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa9803b..073c518 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Although I've made switching over to Klipper as easy as is possible, it can stil - Size: `8GB`. According to Sovol, the largest size that you can use is `16GB`. - File system: `FAT32`. +- Allocation unit size: `4096 bytes`. - Must not contain any files *except* the firmware file. ### Flashing Procedure From b0d122a1c1ab85cf04b74c47e0827cd0abc0ade3 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 23 Apr 2023 09:39:20 -0400 Subject: [PATCH 10/24] Adjust Initial steps, step 1. --- .vscode/settings.json | 12 ++++++++++++ README.md | 12 +++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cdb8a73..3e14150 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,12 +7,24 @@ "spellright.documentTypes": ["markdown", "plaintext"], "cSpell.words": [ "ADXL", + "cfgs", + "Fluidd", + "Fluiddpi", "gcode", + "githubstar", "hotend", + "KIAUH", "Klipper", "Klipperized", + "lrwxrwxrwx", + "moonraker", "octahedroflake", "PARKBED", + "PARKCENTER", + "PARKFRONT", + "PARKFRONTLOW", + "PARKREAR", + "Prusa", "runout", "Sovol" ] diff --git a/README.md b/README.md index 073c518..260aeb9 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Although I've made switching over to Klipper as easy as is possible, it can stil - 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. Note that 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. - It is also 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`. -- Klipper *must* be installed on the host Raspberry Pi for everything to work. Easiest is to use a [FluiddPi](https://docs.fluidd.xyz/installation/fluiddpi#download) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. [KIAUH](https://github.com/th33xitus/kiauh) is another excellent option, though it's not as simple as flashing MainsailOS on a microSD card, for example. +- Klipper *must* be installed on the host Raspberry Pi for everything to work. Easiest is to use a [~~FluiddPI~~](https://docs.fluidd.xyz/installation/fluiddpi#download) (⚠️ `FluiddPI` is not under active maintenance) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. Alternatively, you can install `Fluidd` or `Mainsail` via [KIAUH](https://github.com/th33xitus/kiauh). - 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](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. @@ -98,7 +98,17 @@ You can choose *either* of the 2 following methods. ### Step 1 1. Find what port the `mcu` (SV06 motherboard) is connected to via `ls -l /dev/serial/by-id/`. + 1. The output will be something along the lines of +`lrwxrwxrwx 13 root root 22 Apr 11:10 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0`. + 2. `usb-1a86_USB2.0-Serial-if00-port0` is the relevant part. + 3. Therefore, the full path to your `mcu` is `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0`. 2. Adjust the `[mcu]` section in `printer.cfg` accordingly. + Based on this *example*, your `mcu` section will be: + ``` + [mcu] + serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 + restart_method: command + ``` ### Step 2 From d062ee5bcce51c89128f872cf79c361d7c36421a Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 3 May 2023 15:23:19 -0400 Subject: [PATCH 11/24] Adjusted initial steps on how to find the mcu. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 260aeb9..6319b83 100644 --- a/README.md +++ b/README.md @@ -97,13 +97,13 @@ You can choose *either* of the 2 following methods. ### Step 1 -1. Find what port the `mcu` (SV06 motherboard) is connected to via `ls -l /dev/serial/by-id/`. +1. Find what port the `mcu` (printer motherboard) is connected to via `ls -l /dev/serial/by-id/` or `ls -l /dev/serial/by-path/`. 1. The output will be something along the lines of `lrwxrwxrwx 13 root root 22 Apr 11:10 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0`. 2. `usb-1a86_USB2.0-Serial-if00-port0` is the relevant part. - 3. Therefore, the full path to your `mcu` is `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0`. + 3. Therefore, the full path to your `mcu` is either `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0` or `/dev/serial/by-path/usb-1a86_USB2.0-Serial-if00-port0`, depending on the command you used to find the `mcu`. 2. Adjust the `[mcu]` section in `printer.cfg` accordingly. - Based on this *example*, your `mcu` section will be: + This is just an *example* `mcu` section: ``` [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 From ad4c893fbcc2d29588bf1069dbc48c99fddd8dee Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 12 May 2023 00:53:25 -0400 Subject: [PATCH 12/24] Moved images to correct folder. --- README.md | 4 ++-- {misc => images}/cup-border.png | Bin {misc => images}/logo_white_stroke.png | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename {misc => images}/cup-border.png (100%) rename {misc => images}/logo_white_stroke.png (100%) diff --git a/README.md b/README.md index 6319b83..50fd699 100644 --- a/README.md +++ b/README.md @@ -197,9 +197,9 @@ This repository contains many files and folders. Some are *necessary* for this K └── README.md ❌ ``` -## Ko-fi Support Me Ko-fi +## Ko-fi Support Me Ko-fi - If you found my work useful, please consider buying me a [Ko-fi](https://ko-fi.com/bassamanator). + If you found my work useful, please consider buying me a [Ko-fi](https://ko-fi.com/bassamanator). ## FAQ diff --git a/misc/cup-border.png b/images/cup-border.png similarity index 100% rename from misc/cup-border.png rename to images/cup-border.png diff --git a/misc/logo_white_stroke.png b/images/logo_white_stroke.png similarity index 100% rename from misc/logo_white_stroke.png rename to images/logo_white_stroke.png From d5de6866da51c685056b353f4f0c2df9e6b80ce4 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 12 May 2023 01:04:01 -0400 Subject: [PATCH 13/24] Adjusted directory structure. --- README.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 50fd699..7911d23 100644 --- a/README.md +++ b/README.md @@ -176,18 +176,23 @@ This repository contains many files and folders. Some are *necessary* for this K ├── cfgs ✅ │   ├── adxl-direct.cfg │   ├── adxl-rp2040.cfg -│   ├── beeper.cfg -│   ├── misc-macros.cfg +│   ├── adxl-rpi-pico-2x.cfg │   ├── MECHANICAL_GANTRY_CALIBRATION.cfg +│   ├── misc-macros.cfg │   ├── PARKING.cfg -│   └── TEST_SPEED.cfg [☠️Not ready for use☠️] +│   └── TEST_SPEED.cfg +├── CODE_OF_CONDUCT.md ❌ +├── CONTRIBUTING.md ❌ ├── images ❌ -│   └── githubstar.gif -├── misc ❌ │   ├── cup-border.png -│   ├── klipper.bin +│   ├── githubstar.gif +│   ├── heart.gif │   ├── logo_white_stroke.png +│   └── party_blob.gif +├── misc ❌ +│   ├── klipper-v0.11.0-148-g52f4e20c.bin │   ├── M503-output.yml +│   ├── marlin-SV06V2.0.0A_2.24.bin │   ├── SuperSlicer_config_bundle.ini │   ├── sv06-buildPlate.png │   ├── SV06-buildPlate.stl From be1711cb68f451d2d81c542352ee5875e78c63c3 Mon Sep 17 00:00:00 2001 From: Bassam <61985779+bassamanator@users.noreply.github.com> Date: Fri, 19 May 2023 21:40:27 -0400 Subject: [PATCH 14/24] Update README.md Prepare flash section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7911d23..0888711 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,8 @@ Although I've made switching over to Klipper as easy as is possible, it can stil ### Prepare the microSD Card for Flashing +⚠️ Many users have reported having issues flashing Klipper using the Sovol microSD card. + - Size: `8GB`. According to Sovol, the largest size that you can use is `16GB`. - File system: `FAT32`. - Allocation unit size: `4096 bytes`. From 24a4262af21eee47ad4dd72cad95fd666d253bfc Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sat, 20 May 2023 19:59:18 -0400 Subject: [PATCH 15/24] Pulled in print_start from personal: prints start with higher bed temp now, range 10C. --- cfgs/misc-macros.cfg | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index e987a76..6e0d4be 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -127,6 +127,9 @@ gcode: {% set hotendtemp = params.HOTEND|int %} {% set chambertemp = params.CHAMBER|default(0)|int %} + # Other variables + {% set bedtempSlicer = bedtemp %} + {% set bedtempRange = 10 %} {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} {% set maxVelocityAdjusted = (0.90 * maxVelocity * 60)|int %} @@ -135,32 +138,40 @@ gcode: {% set startY = printer.configfile.settings.safe_z_home.home_xy_position[1]|float %} {% endif %} - {% set bedtempAlmost = (bedtemp - 2, 0)|max %} + {% set bedtempAlmost = ((bedtemp - 2, 0, printer.heater_bed.temperature|int)|max, bedtemp)|max %} {% set hotendtempStepOne = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 150)|max %} {% set hotendtempStepTwo = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 170)|max %} - BED_MESH_PROFILE LOAD=default ; NOTE if not using a mesh, comment out this line + # If bed-temp-almost is higher than bed-temp by a maximum of 10C + {% if bedtempAlmost > bedtemp %} + {% if (bedtempAlmost - bedtempRange) <= bedtemp %} + {% set bedtemp = bedtempAlmost %} + {% endif %} + {% endif %} + + BED_MESH_PROFILE LOAD=default ; NOTE if not using a mesh, comment out this line ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - G90 ; absolute positioning - M140 S{bedtempAlmost} ; set & don't wait for bed temp - M104 S{hotendtempStepOne} ; set & don't wait for hotend temp + G90 ; absolute positioning + M140 S{bedtempAlmost} ; set & don't wait for bed temp + M104 S{hotendtempStepOne} ; set & don't wait for hotend temp G28 X Y {% if printer.configfile.settings.safe_z_home %} G1 X{startX} Y{startY} F{maxVelocityAdjusted} {% endif %} - M190 S{bedtempAlmost} ; set & wait for bed temp - M104 S{hotendtempStepTwo} ; set & don't wait for hotend temp - M190 S{bedtemp} ; set & wait for bed temp + M190 S{bedtempAlmost} ; set & wait for bed temp + M104 S{hotendtempStepTwo} ; set & don't wait for hotend temp + M190 S{bedtemp} ; set & wait for bed temp + M140 S{bedtempSlicer} ; set & don't wait for bed temp ; set temp to sliced setting regardless - M104 S{hotendtemp} ; set & don't wait for hotend temp - G28 Z ; final z homing + M104 S{hotendtemp} ; set & don't wait for hotend temp + G28 Z ; final z homing G1 X0 Y0 F{maxVelocityAdjusted} - M109 S{hotendtemp} ; set & wait for hotend temp + M109 S{hotendtemp} ; set & wait for hotend temp - G1 Z20 F3000 ; move nozzle away from bed + G1 Z20 F3000 ; move nozzle away from bed [gcode_macro PRINT_END] gcode: From 5ada85f9648572ed2cfc9ef9598e3b75f78edaea Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 9 Jun 2023 17:28:07 -0400 Subject: [PATCH 16/24] Bed temp over now customizable. --- cfgs/misc-macros.cfg | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 6e0d4be..5ca1dc1 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -28,11 +28,13 @@ gcode: [gcode_macro _globals] variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected variable_beeping_enabled: 1 # NOTE Enable(1) or disable(0) beeping everywhere except during gantry calibration -variable_pre_purge_prime_length: 1.4 +variable_bed_temp_over: 10 # NOTE Start print if bed temperature is over by this amount, otherwise wait for temperature drop +variable_pre_purge_prime_length: 1.40 gcode: SET_GCODE_VARIABLE MACRO=_globals VARIABLE=pre_purge_prime_length VALUE={ variable_pre_purge_prime_length } SET_GCODE_VARIABLE MACRO=_globals VARIABLE=filament_sensor_enabled VALUE={ variable_filament_sensor_enabled } SET_GCODE_VARIABLE MACRO=_globals VARIABLE=beeping_enabled VALUE={ variable_beeping_enabled } + SET_GCODE_VARIABLE MACRO=_globals VARIABLE=bed_temp_over VALUE={ variable_bed_temp_over } [gcode_macro CONDITIONAL_BEEP] gcode: @@ -129,7 +131,7 @@ gcode: # Other variables {% set bedtempSlicer = bedtemp %} - {% set bedtempRange = 10 %} + {% set bedtempOver = printer["gcode_macro _globals"].bed_temp_over|default(0)|int %} {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} {% set maxVelocityAdjusted = (0.90 * maxVelocity * 60)|int %} @@ -142,9 +144,9 @@ gcode: {% set hotendtempStepOne = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 150)|max %} {% set hotendtempStepTwo = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 170)|max %} - # If bed-temp-almost is higher than bed-temp by a maximum of 10C + # If bed-temp-almost is higher than bed-temp by a maximum of bed-temp-over {% if bedtempAlmost > bedtemp %} - {% if (bedtempAlmost - bedtempRange) <= bedtemp %} + {% if (bedtempAlmost - bedtempOver) <= bedtemp %} {% set bedtemp = bedtempAlmost %} {% endif %} {% endif %} From 9c9eb1b088b91139c6a5d0cd7f55e738140e8670 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 9 Jun 2023 17:57:27 -0400 Subject: [PATCH 17/24] Added link to sv06plus official github. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0888711..f89b542 100644 --- a/README.md +++ b/README.md @@ -71,8 +71,8 @@ Although I've made switching over to Klipper as easy as is possible, it can stil 2. Copy `klipper.bin` to the microSD card. 3. Make sure the printer is off. 4. Insert the microSD card into printer. -4. Turn on the printer and wait a minute (usually takes 10 seconds). -5. Turn off the printer and remove the microSD. +5. Turn on the printer and wait a minute (usually takes 10 seconds). +6. Turn off the printer and remove the microSD. You may find this [video](https://youtu.be/p6l253OJa34) useful. @@ -268,7 +268,7 @@ 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. +*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? @@ -294,6 +294,7 @@ The printhead is now parked front center waiting for you to insert filament. You - [SV06 Official Marlin Source Code](https://github.com/Sovol3d/Sv06-Source-Code) - [SV06 Official Models](https://github.com/Sovol3d/SV06-Fully-Open-Source) +- [SV06 Plus Official Marlin Source Code and Models](https://github.com/Sovol3d/SV06-PLUS) ## Sources From 6399c70309fdb53ee379e5990ad7efdc2b6d29a5 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 9 Jun 2023 18:07:42 -0400 Subject: [PATCH 18/24] Cleanup in readme. --- README.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f89b542..b14e59c 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ You can choose *either* of the 2 following methods. 3. Therefore, the full path to your `mcu` is either `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0` or `/dev/serial/by-path/usb-1a86_USB2.0-Serial-if00-port0`, depending on the command you used to find the `mcu`. 2. Adjust the `[mcu]` section in `printer.cfg` accordingly. This is just an *example* `mcu` section: + ``` [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 @@ -163,6 +164,7 @@ But first, adjust your slicer. You need to adjust the start and end gcode in your slicer. The relevant macros are `PRINT_START` and `PRINT_END`. Find instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code). 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 `PURGE_LINE`. Here's an example: + ``` PRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature] PURGE_LINE @@ -230,12 +232,12 @@ The printer will beep upon: 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` | +| 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? @@ -244,12 +246,12 @@ Make the following changes according to your needs. All beeping will be disabled 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` | +| 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? From a5f72beea48903199aa388102dda70be3fd42610 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 11 Jun 2023 00:38:45 -0400 Subject: [PATCH 19/24] Minor update to readme.md. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b14e59c..8f2f83a 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,8 @@ You can choose *either* of the 2 following methods. 💡 Find explanations for gcode commands at [https://marlinfw.org/](https://marlinfw.org/) and [klipper.org](https://www.klipper3d.org/G-Codes.html). +You will be pasting/typing these commands into the Mainsail/Fluidd console. + 1. `G28` 1. Check to see if `X` and `Y` max positions (`G90`, `G1 X223 F3000`, `G1 Y223 F3000`) can be reached, and adjust `position_max`, if necessary. You can probably go all the way up to `225` for `X` and `Y` both, however, I would not recommend it. 2. Do a `G34`; mechanical gantry calibration. 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. From a6afa97f888ad154fd8a48f3c0b98df46a2ffdf3 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 11 Jun 2023 00:53:39 -0400 Subject: [PATCH 20/24] Changed * to _ for italics to accomodate the linter. --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 8f2f83a..4bd03e6 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ -# 🚨 *One-Stop-Shop* Sovol SV06 Klipper Configuration +# 🚨 _One-Stop-Shop_ Sovol SV06 Klipper Configuration -This repository contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer with completely *stock hardware*. +This repository contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer with completely _stock hardware_. For the **Sovol SV06 Plus**, please refer to the [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) branch. -If you wanted to use the One-Stop-Shop Klipper Configuration for a *different printer*, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. +If you wanted to use the One-Stop-Shop Klipper Configuration for a _different printer_, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. 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. # 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! 💥 +- 💥 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. @@ -36,13 +36,13 @@ Although I've made switching over to Klipper as easy as is possible, it can stil ## Before You Begin -- 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. Consider yourself warned. +- 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. 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. Note that 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. +- 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. Note that 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. - It is also 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`. -- Klipper *must* be installed on the host Raspberry Pi for everything to work. Easiest is to use a [~~FluiddPI~~](https://docs.fluidd.xyz/installation/fluiddpi#download) (⚠️ `FluiddPI` is not under active maintenance) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. Alternatively, you can install `Fluidd` or `Mainsail` via [KIAUH](https://github.com/th33xitus/kiauh). +- Klipper _must_ be installed on the host Raspberry Pi for everything to work. Easiest is to use a [~~FluiddPI~~](https://docs.fluidd.xyz/installation/fluiddpi#download) (⚠️ `FluiddPI` is not under active maintenance) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. Alternatively, you can install `Fluidd` or `Mainsail` via [KIAUH](https://github.com/th33xitus/kiauh). - 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](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. @@ -50,7 +50,7 @@ Although I've made switching over to Klipper as easy as is possible, it can stil ## Flash Firmware -💡 *If you have already flashed klipper onto your motherboard in the past, you can skip this step.* +💡 _If you have already flashed klipper onto your motherboard in the past, you can skip this step._ 💡 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 of `klipper-v0.11.0-148-g52f4e20c.bin`. @@ -76,24 +76,24 @@ Although I've made switching over to Klipper as easy as is possible, it can stil You may find this [video](https://youtu.be/p6l253OJa34) useful. -⚠️ **Caveat**: Flashing will only work if current firmware filename is *different from previous flashing procedure*. The `.bin` is also important. +⚠️ **Caveat**: Flashing will only work if current firmware filename is _different from previous flashing procedure_. The `.bin` is also important. ## Download Klipper Configuration -You can choose *either* of the 2 following methods. +You can choose _either_ of the 2 following methods. ### Method 1: Clone the Repository 1. `cd ~/printer_data/config` 2. Empty entire `~/printer_data/config` folder. Unfortunately, for safety reasons I will not post this command here. However, in linux, you can delete files via `rm filename`. -3. `git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .` +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](https://github.com/bassamanator/Sovol-SV06-firmware/archive/refs/heads/master.zip) 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`. +4. Extract **only** the _contents_ of the parent folder into `~/printer_data/config`. ## Initial Steps @@ -174,9 +174,9 @@ PURGE_LINE ## Directory Structure -This repository contains many files and folders. Some are *necessary* for this Klipper configuration to work, others are not. +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 ❌. +- Items that can _optionally_ be deleted are marked with a ❌. ``` ├── cfgs ✅ @@ -272,11 +272,11 @@ 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. +_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? -*Do no disable the stepper motors during this process!* +⚠️ _Do not disable the stepper motors during this process!_ The printhead is now parked front center waiting for you to insert filament. You will: @@ -284,7 +284,7 @@ The printhead is now parked front center waiting for you to insert filament. You - 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*. + - 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. ## Useful Resources From 817a6771f6ebb3b81d8cd77ef979113c0cec42c2 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 11 Jun 2023 01:15:21 -0400 Subject: [PATCH 21/24] Cleanup with linter. --- README.md | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 4bd03e6..02ad668 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ I am creating these files for my personal use and cannot be held responsible for # 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. +- `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. - Bed model and texture to use in SuperSlicer/PrusaSlicer. @@ -30,7 +30,7 @@ I work on this repository all the time and a lot of new features are coming. Wat # 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 all documentation found on this page. 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. +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 all documentation found on this page. 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. # Installation Steps @@ -43,7 +43,7 @@ Although I've made switching over to Klipper as easy as is possible, it can stil - 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. Note that 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. - It is also 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`. - Klipper _must_ be installed on the host Raspberry Pi for everything to work. Easiest is to use a [~~FluiddPI~~](https://docs.fluidd.xyz/installation/fluiddpi#download) (⚠️ `FluiddPI` is not under active maintenance) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. Alternatively, you can install `Fluidd` or `Mainsail` via [KIAUH](https://github.com/th33xitus/kiauh). -- Robert Redford's performance in *Spy Game (2001)* was superb! +- 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](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - 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. @@ -63,7 +63,7 @@ Although I've made switching over to Klipper as easy as is possible, it can stil - Size: `8GB`. According to Sovol, the largest size that you can use is `16GB`. - File system: `FAT32`. - Allocation unit size: `4096 bytes`. -- Must not contain any files *except* the firmware file. +- Must not contain any files _except_ the firmware file. ### Flashing Procedure @@ -100,18 +100,18 @@ You can choose _either_ of the 2 following methods. ### Step 1 1. Find what port the `mcu` (printer motherboard) is connected to via `ls -l /dev/serial/by-id/` or `ls -l /dev/serial/by-path/`. - 1. The output will be something along the lines of -`lrwxrwxrwx 13 root root 22 Apr 11:10 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0`. - 2. `usb-1a86_USB2.0-Serial-if00-port0` is the relevant part. - 3. Therefore, the full path to your `mcu` is either `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0` or `/dev/serial/by-path/usb-1a86_USB2.0-Serial-if00-port0`, depending on the command you used to find the `mcu`. + 1. The output will be something along the lines of + `lrwxrwxrwx 13 root root 22 Apr 11:10 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0`. + 2. `usb-1a86_USB2.0-Serial-if00-port0` is the relevant part. + 3. Therefore, the full path to your `mcu` is either `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0` or `/dev/serial/by-path/usb-1a86_USB2.0-Serial-if00-port0`, depending on the command you used to find the `mcu`. 2. Adjust the `[mcu]` section in `printer.cfg` accordingly. - This is just an *example* `mcu` section: + This is just an _example_ `mcu` section: - ``` - [mcu] - serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 - restart_method: command - ``` + ``` + [mcu] + serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 + restart_method: command + ``` ### Step 2 @@ -175,6 +175,7 @@ PURGE_LINE ## 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 ❌. @@ -225,6 +226,7 @@ Please see [this discussion](https://github.com/bassamanator/Sovol-SV06-firmware ##### When does beeping occur? The printer will beep upon: + - Filament runout. - Filament change/`M600`. - Upon `PRINT_END`. @@ -232,7 +234,7 @@ The printer will beep upon: ##### How do I disable beeping? -Make the following changes according to your needs. All beeping will be disabled *except* during gantry calibration. +Make the following changes according to your needs. All beeping will be disabled _except_ during gantry calibration. | File | `cfgs/misc-macros.cfg` | | --------------- | -------------------------- | @@ -243,7 +245,8 @@ Make the following changes according to your needs. All beeping will be disabled ##### 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). +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. @@ -268,7 +271,7 @@ A simple runout sensor can only detect a change in state. So, if you start a pri ##### What happens when I pause a print? -Same behaviour as `M600`/colour change *except* there won't be any beeping. +Same behaviour as `M600`/colour change _except_ there won't be any beeping. ##### What happens when filament runs out? @@ -281,10 +284,10 @@ _If_ you have a working filament sensor, the same behaviour as `M600`/colour cha 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. + - 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_. + - 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. ## Useful Resources From f921823acf8cd9a49c17a59402d071aa0581c7b5 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 11 Jun 2023 01:21:53 -0400 Subject: [PATCH 22/24] Adjusted settings.json. --- .vscode/settings.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3e14150..1a48344 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -27,5 +27,8 @@ "Prusa", "runout", "Sovol" - ] + ], + "[markdown]": { + "editor.formatOnSave": true + } } From baf505113dff9a4eb27d9e6336dc880fe6f23a79 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 18 Jun 2023 13:45:14 -0400 Subject: [PATCH 23/24] Update readme minor. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02ad668..de64954 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This repository contains the Klipper configuration and firmware for the **Sovol For the **Sovol SV06 Plus**, please refer to the [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) branch. -If you wanted to use the One-Stop-Shop Klipper Configuration for a _different printer_, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. +To use the One-Stop-Shop Klipper Configuration with a _different printer_, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. 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. From cd59efe4c142e2d12f72cfc091799411b3fa80ee Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 18 Jun 2023 13:50:37 -0400 Subject: [PATCH 24/24] Update readme minor. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de64954..b236660 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # 🚨 _One-Stop-Shop_ Sovol SV06 Klipper Configuration -This repository contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer with completely _stock hardware_. +This branch contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer. For the **Sovol SV06 Plus**, please refer to the [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) branch. -To use the One-Stop-Shop Klipper Configuration with a _different printer_, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. +To use the One-Stop-Shop Klipper Configuration with a _different printer_, please refer to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch. 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.