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 f528278..f3114c2 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,11 @@ This branch contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer with the **BTT SKR-Mini-E3-V3.0** motherboard. -If you were looking for my OSS Klipper Configuration for the **Sovol SV06** with *completely stock hardware*, please refer to the [master](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) branch. +For the Sovol SV06 with stock hardware, please refer to the [master](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) 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. +For the Sovol SV06 Plus, please refer to the [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) branch. + +For all other 3D printers, 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. @@ -57,7 +59,7 @@ 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/skr-mini-e3-v3.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. +2. The parent folder in the `ZIP` is `Sovol-SV06-firmware-skr-mini-e3-v3`. This is relevant in the next step. 3. Extract **only** the *contents* of the parent folder into `~/printer_data/config`. #### Once you've cloned or downloaded the configuration, please follow instructions found in [Initial Steps](https://github.com/bassamanator/Sovol-SV06-firmware#initial-steps). diff --git a/cfgs/adxl-rpi-pico-2x.cfg b/cfgs/adxl-rpi-pico-2x.cfg new file mode 100644 index 0000000..363a301 --- /dev/null +++ b/cfgs/adxl-rpi-pico-2x.cfg @@ -0,0 +1,43 @@ +##################################################################### +# 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 +# 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 +# +# 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] +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 +gcode: + ACCELEROMETER_QUERY CHIP=head + ACCELEROMETER_QUERY CHIP=bed diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 6872a33..e987a76 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,28 +127,38 @@ 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 %} - {% set bedtempAlmost = (bedtemp - 2)|int %} - {% set hotendtempStepOne = 150|int %} - {% set hotendtempStepTwo = 170|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, 0)|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 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 diff --git a/printer.cfg b/printer.cfg index 04313c0..fc1f611 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]