From 8347290f9fa141bcb2a0d77bea71f92f606d3c00 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 23 Nov 2023 04:36:15 -0500 Subject: [PATCH 1/4] Adjust kamp settings: include line_purge; adjust printer.cfg accordingly; adjust readme.md, slicer and kamp sections. --- README.md | 19 +++++++++++++------ cfgs/kamp/KAMP_Settings.cfg | 2 +- printer.cfg | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 634dac7..629c27b 100644 --- a/README.md +++ b/README.md @@ -200,10 +200,15 @@ 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`. +### 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: + +- `PURGE_LINE`; prints a standard purge line. +- `LINE_PURGE`; prints KAMP's purge line. ⚠️ Do not attempt to use without reading [this section](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging). ```yaml -# 🗒️ This is just an example +# 🗒️ This is just an example Start G-Code PRINT_START ... PURGE_LINE ``` @@ -314,13 +319,15 @@ The printhead is now parked front center waiting for you to insert filament. You ### How do I enable KAMP (Klipper Adaptive Meshing & Purging)? -Although this repo contains all the code from the KAMP repository, only the `mesh` functionality of KAMP has been configured and tested. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. +⚠️ No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero. -The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. +⚠️ If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash. -⚠️ If KAMP is disabled, and you don't have a `default` mesh stored in your `printer.cfg`, `PRINT_START` will crash. +🗒️ The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. -⚠️ KAMP cannot be used with low-powered devices such as the Raspberry Pi Zero. +🗒️ `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. diff --git a/cfgs/kamp/KAMP_Settings.cfg b/cfgs/kamp/KAMP_Settings.cfg index 401b91b..40b389c 100644 --- a/cfgs/kamp/KAMP_Settings.cfg +++ b/cfgs/kamp/KAMP_Settings.cfg @@ -2,7 +2,7 @@ # NOTE bassamanator: uncomment the functionality that you want to use from KAMP [include ./Adaptive_Meshing.cfg] # Include to enable adaptive meshing configuration. -# [include ./Line_Purge.cfg] # Include to enable adaptive line purging configuration. +[include ./Line_Purge.cfg] # Include to enable adaptive line purging configuration. # [include ./Voron_Purge.cfg] # Include to enable adaptive Voron logo purging configuration. # [include ./Smart_Park.cfg] # Include to enable the Smart Park function, which parks the printhead near the print area for final heating. diff --git a/printer.cfg b/printer.cfg index bbfe350..8a51bbb 100644 --- a/printer.cfg +++ b/printer.cfg @@ -109,7 +109,7 @@ pid_ki: 1.326 min_temp: 0 max_temp: 300 max_extrude_only_distance: 150.0 -# max_extrude_cross_section: 5 # NOTE Uncomment this line if you intend on using KAMP pruge +max_extrude_cross_section: 5 # NOTE Needed for KAMP purge [tmc2209 extruder] uart_pin: PC14 From 6b69ba9479f005219c8f018155c9aa884ff20cc1 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 23 Nov 2023 14:06:09 -0500 Subject: [PATCH 2/4] Adjust config bundles. --- misc/PrusaSlicer_config_bundle-SV06-Both.ini | 6 +++--- misc/SuperSlicer_config_bundle-SV06-Both.ini | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/misc/PrusaSlicer_config_bundle-SV06-Both.ini b/misc/PrusaSlicer_config_bundle-SV06-Both.ini index 00e687a..ce24ab9 100644 --- a/misc/PrusaSlicer_config_bundle-SV06-Both.ini +++ b/misc/PrusaSlicer_config_bundle-SV06-Both.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-11-20 at 02:32:36 UTC +# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-11-23 at 18:53:35 UTC [print:0.20mm QUALITY SV06 Ellis] avoid_crossing_curled_overhangs = 0 @@ -2610,7 +2610,7 @@ retract_restart_extra_toolchange = 0 retract_speed = 40 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\nPURGE_LINE\n\n;; If you are passing variables to PRINT_START, comment out above line and uncomment the last 3 lines instead. (I already did this)\n;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md\n;; Make sure the variable names match (for example if you use "EXTRUDER" instead of "HOTEND") +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code template_custom_gcode = thumbnails = 32x32,400x300 thumbnails_format = PNG @@ -2691,7 +2691,7 @@ retract_restart_extra_toolchange = 0 retract_speed = 40 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\nPURGE_LINE\n\n;; If you are passing variables to PRINT_START, comment out above line and uncomment the last 3 lines instead. (I already did this)\n;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md\n;; Make sure the variable names match (for example if you use "EXTRUDER" instead of "HOTEND") +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code template_custom_gcode = thumbnails = 32x32,400x300 thumbnails_format = PNG diff --git a/misc/SuperSlicer_config_bundle-SV06-Both.ini b/misc/SuperSlicer_config_bundle-SV06-Both.ini index 717e60a..c31c8a2 100644 --- a/misc/SuperSlicer_config_bundle-SV06-Both.ini +++ b/misc/SuperSlicer_config_bundle-SV06-Both.ini @@ -1,4 +1,4 @@ -# generated by SuperSlicer 2.4 on 2023-08-23 at 23:28:35 UTC +# generated by SuperSlicer 2.4 on 2023-11-23 at 19:03:00 UTC [print:Ellis_Decorative_45_Degree_15mm3] allow_empty_layers = 0 @@ -3707,7 +3707,7 @@ retract_speed = 40 seam_gap = 15% silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]\r\nPURGE_LINE\n\n;; If you are passing variables to PRINT_START, comment out above line and uncomment the last 3 lines instead. (I already did this)\n;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md\n;; Make sure the variable names match (for example if you use "EXTRUDER" instead of "HOTEND")\n +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code start_gcode_manual = 0 template_custom_gcode = thumbnails = 32x32,400x300 @@ -3832,7 +3832,7 @@ retract_speed = 40 seam_gap = 15% silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]\r\nPURGE_LINE\n\n;; If you are passing variables to PRINT_START, comment out above line and uncomment the last 3 lines instead. (I already did this)\n;; Guide: https://github.com/AndrewEllis93/Print-Tuning-Guide/blob/main/articles/passing_slicer_variables.md\n;; Make sure the variable names match (for example if you use "EXTRUDER" instead of "HOTEND")\n +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code start_gcode_manual = 0 template_custom_gcode = thumbnails = 32x32,400x300 From e4a2ce3480ca2cf658ebf4cae5e06f33057237de Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 24 Nov 2023 17:09:54 -0500 Subject: [PATCH 3/4] Create compile howto. --- misc/compile-how-to.md | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 misc/compile-how-to.md diff --git a/misc/compile-how-to.md b/misc/compile-how-to.md new file mode 100644 index 0000000..33bdf54 --- /dev/null +++ b/misc/compile-how-to.md @@ -0,0 +1,43 @@ +${\small{\textcolor{green}{\texttt{2 minute read}}}}$ + +#### Do I need to re-flash the motherboard? + +You will _almost never_ need to re-flash `klipper.bin`. When this is needed, your dashboard will explicitly tell you that you need to re-flash. + +#### Where does Klipper live? + +1. On the motherboard. +2. On the host device (Raspberry Pi, etc.). + +🗒️ These 2 versions of klipper can rightly differ. + +#### Should I update Klipper, moonraker, etc.? + +I always update everything on the host device via the dashboard. I don't want to miss out on improvements, especially those that improve safety. What this means is that on some occasions, there will be breaking changes: you will need to change a few things in your config **before you can print**. I would suggest that if you absolutely have to get something printed immediately and there's an update, perhaps wait till after the print completes to do the update. + +Others will argue that 'if it ain't broke, don't fix it'. + +You have to decide what camp you want to be apart off. + +#### How-To + +##### Update Klipper repo first + +It's always best to update the Klipper repository that lives on the host before compiling. This ensures that your `klipper.bin` will be as 'fresh' as possible. + +- In `Fluidd`, you can do this from `Settings` > `Software Updates`. +- In `Mainsail`, you can do this from `Machine` > `Update Manager`. + +##### Compile `klipper.bin` + +🗒️ The `compilation settings` you see in the image below apply only the the `SV06/Plus` boards, but the steps for compilation apply to any board. + +1. `ssh` into the Klipper host (i.e., RPi, OrangePi, etc.). +2. `cd ~/klipper` +3. `make menuconfig` +4. Set things up to look as follows: + ![make-menuconfig](https://github.com/bassamanator/Sovol-SV06-firmware/assets/61985779/22298d47-2604-4231-ad10-7d6793be7904) +5. `make clean` + - Clears `~/klipper/out/` +6. `make` + - Compiles `klipper.bin` and puts it in `~/klipper/out/` From 18552711c5e71db50d2445fed0de0bbc12c17db9 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 24 Nov 2023 18:56:57 -0500 Subject: [PATCH 4/4] Adjust printer.cfg: axis_twist_compensation section. --- printer.cfg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/printer.cfg b/printer.cfg index 8a51bbb..4096966 100644 --- a/printer.cfg +++ b/printer.cfg @@ -164,6 +164,11 @@ fade_start: 1 fade_end: 10 fade_target: 0 +[axis_twist_compensation] +calibrate_start_x: 27 +calibrate_end_x: 195 +calibrate_y: 115 + ##################################################################### # Fans #####################################################################