From 5ada85f9648572ed2cfc9ef9598e3b75f78edaea Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 9 Jun 2023 17:28:07 -0400 Subject: [PATCH 1/5] 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 2/5] 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 3/5] 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 4/5] 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 5/5] 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