From 73f15169b6db0e771655100ccdf39e2d4c2d5590 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Mon, 27 Mar 2023 18:33:48 -0400 Subject: [PATCH 1/9] README: minor change. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d2e5cce..a9d639d 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*. +If you wanted to use the One-Stop-Shop Klipper Configuration for any other 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 From 862c45b88fe0c1201119c0e1f6ab8de178703416 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Sat, 1 Apr 2023 22:48:49 -0400 Subject: [PATCH 2/9] Update README.md Added firmware location to Flash Firmware section. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a9d639d..b31e092 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,8 @@ I work on this repository all the time and a lot of new features are coming. Wat 💡 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`. +💡 The firmware is located in the `misc` folder. + ### Prepare the microSD Card for Flashing - Size: `8GB`. According to Sovol, the largest size that you can use is `16GB`. From 98a1cd7fe66fe25427223c064736ddc501df1368 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 2 Apr 2023 18:31:58 -0400 Subject: [PATCH 3/9] Purge_line macro adjusted to print at the front of the bed; printer agnostic. Print_end adjusted to use safer speed. --- cfgs/misc-macros.cfg | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 053e748..934314d 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -75,17 +75,32 @@ gcode: {% endif %} [gcode_macro PURGE_LINE] -# https://github.com/JoeCat1207/V0.1-Purge-line-SuperSlicer/blob/main/Purgeline.txt -# https://github.com/VoronDesign/Voron-Switchwire/blob/200cdae033c59ef81f67c4235469da7ca66d53a1/Firmware/skr_mini_e3_v2_config.cfg gcode: {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %} ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - G0 Y0 X0 F4000 ; go to tongue of print bed - G1 Z0.4 F500.0 ; move bed to nozzle + + # Get Boundaries + {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} + {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %} + {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %} + {% set extrudeAmount = 26.6 %} + {% set movementLength = 100 %} + {% set movementSpeed = 15 * 60 %} + + # Set safe speeds + {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} + {% set maxVelocityAdjusted = (0.9 * maxVelocity * 60)|int %} + G92 E0.0 ; reset extruder + G90 ; Absolute positioning + G0 X0 Y0 F{maxVelocityAdjusted} ; move to purge position + G1 Z0.4 F500.0 ; move to purge height + M83 ; Relative extrusion mode G1 E{PRE_PURGE_PRIME_LENGTH} F500 ; pre-purge prime LENGTH SHOULD MATCH YOUR PRINT_END RETRACT - G1 Y140 E35.0 F1200.0 ; intro line 1 + G1 X{movementLength} E{extrudeAmount} F{movementSpeed} ; intro line 1 + #G1 E-.5 F2100 # Retract G92 E0.0 ; reset extruder + M82 ; Absolute extrusion mode G1 Z5.0 ; move nozzle to prevent scratch [gcode_macro CANCEL_PRINT] @@ -125,11 +140,18 @@ gcode: ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 CONDITIONAL_BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %} + M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-{PRE_PURGE_PRIME_LENGTH} F400 ; retract filament G91 ; relative positioning + # Set safe speeds + {% set zVelocity = printer.configfile.settings.printer.max_z_velocity|default(15)|int %} + {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} + {% set zVelocityAdjusted = (0.95 * zVelocity * 60)|int %} + {% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %} + # Get Boundaries {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %} @@ -155,8 +177,8 @@ gcode: {% set z_safe = max_z - printer.toolhead.position.z %} {% endif %} - G0 Z{z_safe} F2000 ; move nozzle up - G0 X{x_safe} Y{y_safe} F9000 ; move nozzle to remove stringing + G0 Z{z_safe} F{zVelocityAdjusted} ; move nozzle up + G0 X{x_safe} Y{y_safe} F{maxVelocityAdjusted} ; move nozzle to remove stringing TURN_OFF_HEATERS M107 ; turn off fan G90 ; absolute positioning From 8346c79f351f85ced239f35a93f27c41e83600f9 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 2 Apr 2023 19:00:47 -0400 Subject: [PATCH 4/9] Adjusted start position for purge_line. --- 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 934314d..e9a3d16 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -84,20 +84,22 @@ gcode: {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %} {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %} {% set extrudeAmount = 26.6 %} - {% set movementLength = 100 %} + {% set movementLength = 100.0 %} {% set movementSpeed = 15 * 60 %} + {% set xStart = 0.5 %} + {% set yStart = 0.5 %} # Set safe speeds {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} - {% set maxVelocityAdjusted = (0.9 * maxVelocity * 60)|int %} + {% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %} G92 E0.0 ; reset extruder G90 ; Absolute positioning - G0 X0 Y0 F{maxVelocityAdjusted} ; move to purge position + G0 X{xStart} Y{yStart} F{maxVelocityAdjusted} ; move to purge position G1 Z0.4 F500.0 ; move to purge height M83 ; Relative extrusion mode G1 E{PRE_PURGE_PRIME_LENGTH} F500 ; pre-purge prime LENGTH SHOULD MATCH YOUR PRINT_END RETRACT - G1 X{movementLength} E{extrudeAmount} F{movementSpeed} ; intro line 1 + G1 X{xStart + movementLength} E{extrudeAmount} F{movementSpeed} ; intro line 1 #G1 E-.5 F2100 # Retract G92 E0.0 ; reset extruder M82 ; Absolute extrusion mode From 5b5ce8df576d11e73d2d08698b782876dc0322da Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 2 Apr 2023 19:11:43 -0400 Subject: [PATCH 5/9] Adjusted readme. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3fe0575..8ab65a3 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # 🚨 *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*. -If you wanted to use the One-Stop-Shop Klipper Configuration for any other 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. @@ -23,7 +23,7 @@ I am creating these files for my personal use and cannot be held responsible for ## To do: - [x] Replace M109/M190 with `TEMPERATURE_WAIT`. -- [ ] Get the Ellis `TEST_SPEED` macro working. +- [ ] ~~Get the Ellis `TEST_SPEED` macro working.~~ Does not seem safely doable on this printer. - [x] Add information about directory structure. - [x] Create FAQ section. - [x] Get filament sensor working with hotend PCB. From 371e0d604af5c8af5d284f4b78d979658b3b0afc Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Mon, 3 Apr 2023 08:09:36 -0400 Subject: [PATCH 6/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ab65a3..351c6c7 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ I work on this repository all the time and a lot of new features are coming. Wat ## 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 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. - 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. - 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 not work for you. From c1427d94183e20612a5218e7861f336ad4204066 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Mon, 3 Apr 2023 08:28:35 -0400 Subject: [PATCH 7/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 351c6c7..750884f 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ I work on this repository all the time and a lot of new features are coming. Wat - 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 a data USB cable. - 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. +- 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. - 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 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. - 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). From 758a3f8b77e2f784c0b213dc4383930b4e40520e Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Mon, 3 Apr 2023 12:51:49 -0400 Subject: [PATCH 8/9] Update README.md Added instructions for adjusting slicer start/end gcode. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 750884f..72a7360 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,10 @@ You can choose *either* of the 2 following methods. 5. `BED_MESH_CALIBRATE` 6. `SAVE_CONFIG` (once completed) +## 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). + ## Directory Structure This repository contains many files and folders. Some are *necessary* for this Klipper configuration to work, others are not. From 4b90c7abc584ff8f11788745032f59c875aac8d7 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 6 Apr 2023 06:22:01 -0400 Subject: [PATCH 9/9] Added G90 to steps after homing. --- README.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9d437a6..f7165b9 100644 --- a/README.md +++ b/README.md @@ -103,21 +103,23 @@ You can choose *either* of the 2 following methods. 💡 I recommend no filament be loaded for any of these steps. -1. Do a `G28`; home all. - 1. Check to see if `X` and `Y` max positions (`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. +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 agaisnt 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. The range is 250 to 261 from what I've seen, could be even higher for you. Adjust `position_max`, if necessary. I can go all the way to 258 over and over again, however, I would not print anything higher than 255 probably. + 1. Figure out your `Z` `position_max` by baby stepping your way up to the beam. The range is 250 to 261 from what I've seen, could be even higher for you. Adjust `position_max`, if necessary. I can go all the way to 258, however, I would not print anything higher than 257. 3. Pid tune the bed, but first move the printhead to the center. Ideally, all Pid tuning should occur at the temperatures that you print most at. 1. `G28` - 2. `G1 X111 Y111 Z40 F6000` - 3. `PID_CALIBRATE HEATER=heater_bed TARGET=70` - 4. `SAVE_CONFIG` (once completed) + 2. `G90` + 3. `G1 X111 Y111 Z40 F6000` + 4. `PID_CALIBRATE HEATER=heater_bed TARGET=70` + 5. `SAVE_CONFIG` (once completed) 4. Pid tune the extruder while part cooling fan runs at 25%. 1. `G28` - 2. `G1 X111 Y111 Z10 F6000` - 3. `M106 S64` - 4. `PID_CALIBRATE HEATER=extruder TARGET=245` - 5. `SAVE_CONFIG` (once completed) + 2. `G90` + 3. `G1 X111 Y111 Z10 F6000` + 4. `M106 S64` + 5. `PID_CALIBRATE HEATER=extruder TARGET=245` + 6. `SAVE_CONFIG` (once completed) 5. Adjust `z_offset`. Make sure your nozzle if very clean. Do the [Paper test](https://www.klipper3d.org/Bed_Level.html?h=probe_calibrate#the-paper-test). 1. `SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60` 2. `SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180`