From 9ed8bf2ced1a6bb84021e99dd34f55ae9f32697c Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 16 Feb 2023 18:07:35 -0500 Subject: [PATCH 01/57] Adjusted pressure_advance. --- printer.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printer.cfg b/printer.cfg index 72fd64b..d863592 100644 --- a/printer.cfg +++ b/printer.cfg @@ -107,7 +107,7 @@ sensor_pin: PC5 min_temp: 0 max_temp: 300 max_extrude_only_distance: 150.0 -pressure_advance: 0.027 +pressure_advance: 0.044 [tmc2209 extruder] uart_pin: PC14 From 2b33f079b3072588105af29d29b2009f111cbf68 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 16 Feb 2023 18:55:08 -0500 Subject: [PATCH 02/57] RP2040 adxl345 working. Input shaper values adjusted. --- cfgs/adxl-rp2040.cfg | 19 +++++++++++-------- printer.cfg | 10 +++++----- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/cfgs/adxl-rp2040.cfg b/cfgs/adxl-rp2040.cfg index bf02a8e..a97f16b 100644 --- a/cfgs/adxl-rp2040.cfg +++ b/cfgs/adxl-rp2040.cfg @@ -3,20 +3,23 @@ # https://www.klipper3d.org/Measuring_Resonances.html#adxl345 ##################################################################### -[mcu rp2040] +[mcu RP2040] baud: 115200 # 250000 restart_method: command # Obtain definition by "ls -l /dev/serial/by-id/" serial: /dev/serial/by-id/usb-Klipper_rp2040_E66138935F154C28-if00 [adxl345] -spi_software_miso_pin: rp2040:gpio8 -cs_pin: rp2040:gpio9 -# spi_bus: spi0b -spi_software_sclk_pin: rp2040:gpio10 -spi_software_mosi_pin: rp2040:gpio11 -axes_map: x,y,z +axes_map: x,z,y # Installed with vertical ADXL # For Diamond in X, y, z + + # RP2040 +cs_pin: RP2040:gpio1 #RP2040:gpio1 +spi_bus: spi0a # spi0a [resonance_tester] accel_chip: adxl345 -probe_points: 111.5, 111.5, 20 \ No newline at end of file +probe_points: 111.5, 111.5, 20 + +[gcode_macro ADX] +gcode: + ACCELEROMETER_QUERY # check ADXL345 diff --git a/printer.cfg b/printer.cfg index d863592..2905860 100644 --- a/printer.cfg +++ b/printer.cfg @@ -14,7 +14,7 @@ [include ./cfgs/beeper.cfg] # NOTE Uncomment the ONE of the following lines if you're using an adxl345 -# [include ./cfgs/adxl-rp2040.cfg] +[include ./cfgs/adxl-rp2040.cfg] # [include ./cfgs/adxl-direct.cfg] [mcu] @@ -168,10 +168,10 @@ encoder_pins: ^PB14, ^PB10 click_pin: ^!PB2 [input_shaper] -shaper_freq_x = 56.0 -shaper_type_x: mzv -shaper_freq_y = 59.0 -shaper_type_y: 3hump_ei +shaper_freq_x = 102.2 +shaper_type_x: 3hump_ei # mzv +shaper_freq_y = 41.8 # 59.0 +shaper_type_y: mzv # 3hump_ei [bed_screws] screw1: 26.5, 31 From 74d4e13e1d1c5f53254f9346af2c742ff5884bb8 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 16 Feb 2023 20:17:20 -0500 Subject: [PATCH 03/57] Adjusted README.md for personal branch. --- README.md | 101 ++---------------------------------------------------- 1 file changed, 3 insertions(+), 98 deletions(-) diff --git a/README.md b/README.md index 17b9b0b..d7e3656 100644 --- a/README.md +++ b/README.md @@ -1,98 +1,3 @@ -# Sovol-SV06-firmware - -This repository contains firmware for the SV06 3D printer from Sovol. You should not use this firmware on any other printer. - -I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. - -⚠️ The instructions found on this page apply only to the `master` branch. - -⚠️⚡☢️ USE AT YOUR OWN RISK! YOU HAVE BEEN WARNED! ☢️⚡⚠️ - -# Highlights - -- Minimum configuration settings for Mainsail/Fluiddpi to work. -- Mechanical gantry calibration/`G34` macro. -- SuperSlicer config bundle that contains the printer configuration, as well as what are considered by many to be the best print settings available for an FDM printer. Find the differences between the different print setting profiles [here](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles/tree/master/SuperSlicer). -- Bed model and texture to use in SuperSlicer/PrusaSlicer. -- Macros - - Misc macros: `PRINT_START`, `CANCEL_PRINT`, `PRINT_END`, `PAUSE`, `RESUME`. - - Parking macros (parks the printhead at various locations): `PARKFRONT`, `PARKFRONTLOW`, `PARKREAR`, `PARKCENTER`, `PARKBED`. - - Load/unload filament macros. - - Purge line macro. - -To do: -- Get the Ellis `TEST_SPEED.cfg` working. -# Installation Steps - -💡 **Requirement**: klipper must be installed on the host Raspberry Pi for everything to work after the flash. Easiest is to use a Fluiddpi or MailsailOS image. - -## Flash Firmware - -1. Copy `klipper.bin` to a MicroSD card and rename to `anyNewFilename.bin`. -2. Make sure the printer is off. -3. Insert MicroSD into printer. -4. Turn on the printer and wait a minute (usually takes 10 seconds). -5. Turn off printer and remove MicroSD. - -You may find this [video](https://youtu.be/p6l253OJa34) useful. - -⚠️ **Caveat**: flashing will only work if current firmware filename (`anyNewFilename.bin` in this example) is different from previous flashing procedure. The `.bin` is also important. - -## Clone the Repository - -There are many ways to get started, the simplest being to clone this repo to the appropriate folder. - -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 git@github.com:bassamanator/Sovol-SV06-firmware.git .` - -## Initial Steps - -⚠️⚡☢️ **Your finger should be on the power switch for most of these steps** ☢️⚡⚠️ - -⚠️⚡☢️ **Power off if there is a collision/problem** ☢️⚡⚠️ - -💡 I would recommend searching for the word `NOTE` in this repository. There are about 6 short points amongst the various files that you should be aware of if you're using this `printer.cfg`. - -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. -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. -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) -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) -5. Adjust `z_offset`. Make sure your nozzle if very clean. Paper test [reference](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` - 3. Proceed to next steps after both temperatures have been reached. - 4. `G28` - 5. `PROBE_CALIBRATE` - 6. `SAVE_CONFIG` (once completed) -6. Create a bed mesh. - 1. `SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60` - 2. `SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180` - 3. Proceed to next steps after both temperatures have been reached. - 4. `G28` - 5. `BED_MESH_CALIBRATE` - 6. `SAVE_CONFIG` (once completed) - -## Sources - -- https://www.klipper3d.org -- 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/Pr20100/SOVOL-SV06-Klipper-profile -- https://www.printables.com/model/378915-sovol-sv06-buildplate-texture-and-model-for-prusas -- https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles +#Sovol SV06 Klipper Firmware +## This branch contains my personal settings. +## Please refer to the [master branch](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) to download the firmware. \ No newline at end of file From ad1e85c4b3adfa9773e8fc3cc7a6b89090352536 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 16 Feb 2023 20:40:56 -0500 Subject: [PATCH 04/57] Input shapre x adjusted. --- printer.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/printer.cfg b/printer.cfg index 70e44fa..7e2b688 100644 --- a/printer.cfg +++ b/printer.cfg @@ -168,8 +168,8 @@ encoder_pins: ^PB14, ^PB10 click_pin: ^!PB2 [input_shaper] -shaper_freq_x = 102.2 -shaper_type_x: 3hump_ei # mzv +shaper_freq_x = 84.2 +shaper_type_x: 2hump_ei # mzv shaper_freq_y = 41.8 # 59.0 shaper_type_y: mzv # 3hump_ei From 20588bc181fb2105afaa5127373bb8f3fe5d20cc Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 16 Feb 2023 21:53:49 -0500 Subject: [PATCH 05/57] RP2040-zero working, adxl-rp2040.cfg adjusted. --- cfgs/adxl-rp2040.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cfgs/adxl-rp2040.cfg b/cfgs/adxl-rp2040.cfg index 54243f4..5362615 100644 --- a/cfgs/adxl-rp2040.cfg +++ b/cfgs/adxl-rp2040.cfg @@ -1,5 +1,6 @@ ##################################################################### -# Here's how to set up your RP2040-zero +# Find my instructions here: +# https://github.com/bassamanator/rp2040-zero-adxl345-klipper # ADXL345 related Settings # https://www.klipper3d.org/Measuring_Resonances.html#adxl345 ##################################################################### From 15276c01ab5f161fcdf99181dafa2d64e2050575 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 19 Feb 2023 01:31:17 -0500 Subject: [PATCH 06/57] New z_offset and mesh after disassemble. --- printer.cfg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/printer.cfg b/printer.cfg index 7e2b688..7ddc040 100644 --- a/printer.cfg +++ b/printer.cfg @@ -225,7 +225,7 @@ enable_force_move: True #*# pid_kd = 945.503 #*# #*# [probe] -#*# z_offset = 1.500 +#*# z_offset = 1.515 #*# #*# [bed_mesh best] #*# version = 1 @@ -249,11 +249,11 @@ enable_force_move: True #*# [bed_mesh default-v1] #*# version = 1 #*# points = -#*# -0.192500, -0.107500, -0.040000, -0.010625, -0.013750 -#*# -0.198125, -0.115000, -0.028750, 0.000000, -0.027500 -#*# -0.226875, -0.118125, -0.051875, -0.023750, -0.050000 -#*# -0.238750, -0.152500, -0.085000, -0.079375, -0.109375 -#*# -0.210625, -0.126875, -0.075625, -0.085625, -0.113750 +#*# -0.224375, -0.111875, -0.013125, 0.017500, -0.013125 +#*# -0.231875, -0.125000, -0.015000, 0.016875, -0.020000 +#*# -0.261250, -0.136875, -0.037500, -0.000625, -0.030000 +#*# -0.274375, -0.155000, -0.066250, -0.048750, -0.081250 +#*# -0.241875, -0.129375, -0.056250, -0.049375, -0.081250 #*# min_x = 27.0 #*# max_x = 222.0 #*# min_y = 5.0 @@ -268,11 +268,11 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.224375, -0.111875, -0.013125, 0.017500, -0.013125 -#*# -0.231875, -0.125000, -0.015000, 0.016875, -0.020000 -#*# -0.261250, -0.136875, -0.037500, -0.000625, -0.030000 -#*# -0.274375, -0.155000, -0.066250, -0.048750, -0.081250 -#*# -0.241875, -0.129375, -0.056250, -0.049375, -0.081250 +#*# -0.158750, -0.064375, 0.022500, 0.069375, 0.076875 +#*# -0.214375, -0.114375, -0.010625, 0.030625, 0.016875 +#*# -0.254375, -0.135625, -0.041875, -0.006250, -0.025000 +#*# -0.255000, -0.143750, -0.062500, -0.041250, -0.059375 +#*# -0.193125, -0.098750, -0.033750, -0.019375, -0.035625 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 From 8ad625a00fe41cb7f4f556f675424f86be497b56 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 19 Feb 2023 02:37:59 -0500 Subject: [PATCH 07/57] Adjusted README.md. --- README.md | 6 ++++-- cfgs/macros.cfg | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d7e3656..19eb854 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ -#Sovol SV06 Klipper Firmware +# 🚨 *One-Stop-Shop* Sovol SV06 Klipper Configuration 🏎️ + ## This branch contains my personal settings. -## Please refer to the [master branch](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) to download the firmware. \ No newline at end of file + +## Please refer to the [master](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) branch to download the recommended Klipper configuration. \ No newline at end of file diff --git a/cfgs/macros.cfg b/cfgs/macros.cfg index a9211eb..7962d60 100644 --- a/cfgs/macros.cfg +++ b/cfgs/macros.cfg @@ -64,7 +64,7 @@ gcode: [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script - please customize for your slicer of choice gcode: - BEEP I=2 DUR=30 FREQ=8500 + 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 From 6af7d81daf1e7b554c8c5d441084b7396c0d083a Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 21 Feb 2023 20:59:59 -0500 Subject: [PATCH 08/57] New z_offset and mesh after new part cooler. Prev z_offset 1.515 was good. --- printer.cfg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/printer.cfg b/printer.cfg index 7ddc040..c7e4b05 100644 --- a/printer.cfg +++ b/printer.cfg @@ -225,7 +225,7 @@ enable_force_move: True #*# pid_kd = 945.503 #*# #*# [probe] -#*# z_offset = 1.515 +#*# z_offset = 1.480 #*# #*# [bed_mesh best] #*# version = 1 @@ -249,11 +249,11 @@ enable_force_move: True #*# [bed_mesh default-v1] #*# version = 1 #*# points = -#*# -0.224375, -0.111875, -0.013125, 0.017500, -0.013125 -#*# -0.231875, -0.125000, -0.015000, 0.016875, -0.020000 -#*# -0.261250, -0.136875, -0.037500, -0.000625, -0.030000 -#*# -0.274375, -0.155000, -0.066250, -0.048750, -0.081250 -#*# -0.241875, -0.129375, -0.056250, -0.049375, -0.081250 +#*# -0.224375, -0.111875, -0.013125, 0.017500, -0.013125 +#*# -0.231875, -0.125000, -0.015000, 0.016875, -0.020000 +#*# -0.261250, -0.136875, -0.037500, -0.000625, -0.030000 +#*# -0.274375, -0.155000, -0.066250, -0.048750, -0.081250 +#*# -0.241875, -0.129375, -0.056250, -0.049375, -0.081250 #*# min_x = 27.0 #*# max_x = 222.0 #*# min_y = 5.0 @@ -268,11 +268,11 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.158750, -0.064375, 0.022500, 0.069375, 0.076875 -#*# -0.214375, -0.114375, -0.010625, 0.030625, 0.016875 -#*# -0.254375, -0.135625, -0.041875, -0.006250, -0.025000 -#*# -0.255000, -0.143750, -0.062500, -0.041250, -0.059375 -#*# -0.193125, -0.098750, -0.033750, -0.019375, -0.035625 +#*# -0.158750, -0.064375, 0.022500, 0.069375, 0.076875 +#*# -0.214375, -0.114375, -0.010625, 0.030625, 0.016875 +#*# -0.254375, -0.135625, -0.041875, -0.006250, -0.025000 +#*# -0.255000, -0.143750, -0.062500, -0.041250, -0.059375 +#*# -0.193125, -0.098750, -0.033750, -0.019375, -0.035625 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 From 44670bf489503a750a6e5f13d10f29b72d5ffece Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 2 Mar 2023 16:08:45 -0500 Subject: [PATCH 09/57] New bed installed; new pid values. --- printer.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/printer.cfg b/printer.cfg index c7e4b05..6e0d449 100644 --- a/printer.cfg +++ b/printer.cfg @@ -220,9 +220,9 @@ enable_force_move: True #*# #*# [heater_bed] #*# control = pid -#*# pid_kp = 71.224 -#*# pid_ki = 1.341 -#*# pid_kd = 945.503 +#*# pid_kp = 67.629 +#*# pid_ki = 1.288 +#*# pid_kd = 887.637 #*# #*# [probe] #*# z_offset = 1.480 From c2a8de51a9fe466f4a46c1831d167a424dd38c51 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 2 Mar 2023 17:27:01 -0500 Subject: [PATCH 10/57] New z_offset and mesh. --- printer.cfg | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/printer.cfg b/printer.cfg index 6e0d449..7f8987e 100644 --- a/printer.cfg +++ b/printer.cfg @@ -225,35 +225,35 @@ enable_force_move: True #*# pid_kd = 887.637 #*# #*# [probe] -#*# z_offset = 1.480 +#*# z_offset = 1.640 #*# -#*# [bed_mesh best] +#*# [bed_mesh newbed] #*# version = 1 #*# points = -#*# -0.017708, -0.023125, -0.023542, -0.037500, -0.088750 -#*# -0.034167, -0.051875, -0.035833, -0.037708, -0.091875 -#*# -0.072500, -0.066875, -0.056042, -0.050208, -0.093333 -#*# -0.075417, -0.074167, -0.051458, -0.054375, -0.095625 -#*# -0.030833, -0.014583, -0.000625, -0.013333, -0.051667 -#*# min_x = 27.0 -#*# max_x = 222.0 -#*# min_y = 5.0 -#*# max_y = 203.0 +#*# -0.240625, -0.114375, -0.018750, 0.004375, 0.092500 +#*# -0.280625, -0.120000, -0.005000, 0.025000, -0.011250 +#*# -0.330625, -0.151875, -0.035000, -0.006875, 0.011250 +#*# -0.350625, -0.145000, -0.030000, 0.001875, 0.073125 +#*# -0.353125, -0.110000, 0.031250, 0.056250, 0.006250 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 #*# mesh_y_pps = 2 #*# algo = bicubic #*# tension = 0.2 +#*# min_x = 27.0 +#*# max_x = 222.0 +#*# min_y = 5.0 +#*# max_y = 203.0 #*# -#*# [bed_mesh default-v1] +#*# [bed_mesh oldbed] #*# version = 1 #*# points = -#*# -0.224375, -0.111875, -0.013125, 0.017500, -0.013125 -#*# -0.231875, -0.125000, -0.015000, 0.016875, -0.020000 -#*# -0.261250, -0.136875, -0.037500, -0.000625, -0.030000 -#*# -0.274375, -0.155000, -0.066250, -0.048750, -0.081250 -#*# -0.241875, -0.129375, -0.056250, -0.049375, -0.081250 +#*# -0.158750, -0.064375, 0.022500, 0.069375, 0.076875 +#*# -0.214375, -0.114375, -0.010625, 0.030625, 0.016875 +#*# -0.254375, -0.135625, -0.041875, -0.006250, -0.025000 +#*# -0.255000, -0.143750, -0.062500, -0.041250, -0.059375 +#*# -0.193125, -0.098750, -0.033750, -0.019375, -0.035625 #*# min_x = 27.0 #*# max_x = 222.0 #*# min_y = 5.0 @@ -268,11 +268,11 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.158750, -0.064375, 0.022500, 0.069375, 0.076875 -#*# -0.214375, -0.114375, -0.010625, 0.030625, 0.016875 -#*# -0.254375, -0.135625, -0.041875, -0.006250, -0.025000 -#*# -0.255000, -0.143750, -0.062500, -0.041250, -0.059375 -#*# -0.193125, -0.098750, -0.033750, -0.019375, -0.035625 +#*# -0.233750, -0.100625, -0.006875, 0.023125, 0.116875 +#*# -0.260000, -0.106250, 0.005625, 0.040625, 0.005625 +#*# -0.308750, -0.133750, -0.023750, 0.004375, 0.025625 +#*# -0.323750, -0.128125, -0.015000, 0.015625, 0.090625 +#*# -0.321875, -0.086250, 0.053750, 0.081875, 0.034375 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 From 11f11de7db7cfeb65817c2360cb81b71aea1ea78 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 3 Mar 2023 22:06:29 -0500 Subject: [PATCH 11/57] Added temperature wait macro. --- cfgs/macros.cfg | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cfgs/macros.cfg b/cfgs/macros.cfg index 7962d60..f762c09 100644 --- a/cfgs/macros.cfg +++ b/cfgs/macros.cfg @@ -13,6 +13,28 @@ gcode: {action_raise_error('Pre purge prime length not found')} {% endif %} +[gcode_macro M109] +rename_existing: M99109 +gcode: + #Parameters + {% set s = params.S|float %} + + M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set hotend temp + {% if s != 0 %} + TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s} MAXIMUM={s+1} ; Wait for hotend temp (within 1 degree) + {% endif %} + +[gcode_macro M190] +rename_existing: M99190 +gcode: + #Parameters + {% set s = params.S|float %} + + M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set bed temp + {% if s != 0 %} + TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s} MAXIMUM={s+1} ; Wait for bed temp (within 1 degree) + {% 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 From bcea3555cfcd8cb4f23d83fdae3c8a51d7dfcfd5 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 3 Mar 2023 22:16:39 -0500 Subject: [PATCH 12/57] New z_offset and mesh. --- printer.cfg | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/printer.cfg b/printer.cfg index 7f8987e..99cef71 100644 --- a/printer.cfg +++ b/printer.cfg @@ -225,7 +225,7 @@ enable_force_move: True #*# pid_kd = 887.637 #*# #*# [probe] -#*# z_offset = 1.640 +#*# z_offset = 1.655 #*# #*# [bed_mesh newbed] #*# version = 1 @@ -268,11 +268,30 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.233750, -0.100625, -0.006875, 0.023125, 0.116875 -#*# -0.260000, -0.106250, 0.005625, 0.040625, 0.005625 -#*# -0.308750, -0.133750, -0.023750, 0.004375, 0.025625 -#*# -0.323750, -0.128125, -0.015000, 0.015625, 0.090625 -#*# -0.321875, -0.086250, 0.053750, 0.081875, 0.034375 +#*# -0.165625, -0.108125, -0.055000, -0.035625, -0.055000 +#*# -0.182500, -0.125625, -0.056250, -0.045625, -0.089375 +#*# -0.202500, -0.114375, -0.050625, -0.040625, -0.086250 +#*# -0.203125, -0.109375, -0.033750, -0.038750, -0.078750 +#*# -0.161250, -0.062500, 0.011875, 0.015000, -0.007500 +#*# x_count = 5 +#*# y_count = 5 +#*# mesh_x_pps = 2 +#*# mesh_y_pps = 2 +#*# algo = bicubic +#*# tension = 0.2 +#*# min_x = 27.0 +#*# max_x = 222.0 +#*# min_y = 5.0 +#*# max_y = 203.0 +#*# +#*# [bed_mesh oldbed-again] +#*# version = 1 +#*# points = +#*# -0.231875, -0.156875, -0.092500, -0.093125, -0.143125 +#*# -0.221875, -0.158750, -0.082500, -0.071250, -0.131250 +#*# -0.237500, -0.144375, -0.074375, -0.062500, -0.113125 +#*# -0.240625, -0.141250, -0.059375, -0.060625, -0.110625 +#*# -0.208750, -0.101875, -0.026875, -0.033125, -0.067500 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 From 6f274b73924b3c4278fd3bb881756bedc9f2fb88 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 3 Mar 2023 22:31:54 -0500 Subject: [PATCH 13/57] Adjusted z position min. --- printer.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printer.cfg b/printer.cfg index 99cef71..e2402dd 100644 --- a/printer.cfg +++ b/printer.cfg @@ -80,7 +80,7 @@ enable_pin: !PC3 microsteps: 32 rotation_distance: 4 endstop_pin: probe:z_virtual_endstop -position_min: -4 +position_min: -3 position_max: 258 # NOTE You can adjust this if you have more room homing_speed: 5 From ae24ae66d4fd9c2f3dbe6248b7029a3e8ea67682 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 3 Mar 2023 22:57:22 -0500 Subject: [PATCH 14/57] New z_offset and mesh. --- printer.cfg | 59 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/printer.cfg b/printer.cfg index e2402dd..1d9ec0f 100644 --- a/printer.cfg +++ b/printer.cfg @@ -225,7 +225,7 @@ enable_force_move: True #*# pid_kd = 887.637 #*# #*# [probe] -#*# z_offset = 1.655 +#*# z_offset = 1.710 #*# #*# [bed_mesh newbed] #*# version = 1 @@ -265,25 +265,6 @@ enable_force_move: True #*# algo = bicubic #*# tension = 0.2 #*# -#*# [bed_mesh default] -#*# version = 1 -#*# points = -#*# -0.165625, -0.108125, -0.055000, -0.035625, -0.055000 -#*# -0.182500, -0.125625, -0.056250, -0.045625, -0.089375 -#*# -0.202500, -0.114375, -0.050625, -0.040625, -0.086250 -#*# -0.203125, -0.109375, -0.033750, -0.038750, -0.078750 -#*# -0.161250, -0.062500, 0.011875, 0.015000, -0.007500 -#*# x_count = 5 -#*# y_count = 5 -#*# mesh_x_pps = 2 -#*# mesh_y_pps = 2 -#*# algo = bicubic -#*# tension = 0.2 -#*# min_x = 27.0 -#*# max_x = 222.0 -#*# min_y = 5.0 -#*# max_y = 203.0 -#*# #*# [bed_mesh oldbed-again] #*# version = 1 #*# points = @@ -302,3 +283,41 @@ enable_force_move: True #*# max_x = 222.0 #*# min_y = 5.0 #*# max_y = 203.0 +#*# +#*# [bed_mesh default-v1] +#*# version = 1 +#*# points = +#*# -0.165625, -0.108125, -0.055000, -0.035625, -0.055000 +#*# -0.182500, -0.125625, -0.056250, -0.045625, -0.089375 +#*# -0.202500, -0.114375, -0.050625, -0.040625, -0.086250 +#*# -0.203125, -0.109375, -0.033750, -0.038750, -0.078750 +#*# -0.161250, -0.062500, 0.011875, 0.015000, -0.007500 +#*# min_x = 27.0 +#*# max_x = 222.0 +#*# min_y = 5.0 +#*# max_y = 203.0 +#*# x_count = 5 +#*# y_count = 5 +#*# mesh_x_pps = 2 +#*# mesh_y_pps = 2 +#*# algo = bicubic +#*# tension = 0.2 +#*# +#*# [bed_mesh default] +#*# version = 1 +#*# points = +#*# -0.219375, -0.138125, -0.072500, -0.067500, -0.108750 +#*# -0.208125, -0.140625, -0.065625, -0.053125, -0.111250 +#*# -0.220000, -0.124375, -0.058750, -0.051250, -0.100625 +#*# -0.224375, -0.121250, -0.046250, -0.049375, -0.097500 +#*# -0.184375, -0.072500, -0.006875, -0.008125, -0.043125 +#*# x_count = 5 +#*# y_count = 5 +#*# mesh_x_pps = 2 +#*# mesh_y_pps = 2 +#*# algo = bicubic +#*# tension = 0.2 +#*# min_x = 27.0 +#*# max_x = 222.0 +#*# min_y = 5.0 +#*# max_y = 203.0 From 9263f3a912658a7474e7f866ee87bd41fe778e1c Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 8 Mar 2023 03:05:33 -0500 Subject: [PATCH 15/57] Implemented TEMPERATURE_WAIT in macros. NOTE: users should pull these changes. --- README.md | 9 +++++---- cfgs/macros.cfg | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5851b0a..70a8bc6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 🚨 *One-Stop-Shop* Sovol SV06 Klipper Configuration -This repository contains the Klipper configuration and firmware for the Sovol SV06 3D printer. +This repository contains the Klipper configuration and firmware for the Sovol SV06 3D printer with completely *stock hardware*. I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. @@ -19,14 +19,15 @@ I am creating these files for my personal use and cannot be held responsible for - Load/unload filament macros. - Purge line macro. -To do: +## To do: -- [ ] Replace M109/M190 with `TEMPERATURE_WAIT`. +- [x] Replace M109/M190 with `TEMPERATURE_WAIT`. - [ ] Get the Ellis `TEST_SPEED` macro working. - [x] Add information about directory structure. - [ ] Create FAQ section. +- [x] Get filament sensor working with hotend PCB. - [ ] Finalize filament sensor config and merge into `master`. -- [ ] Create topic in Discussion section detailing how users should keep track of their own Klipper config using `git`. +- [ ] Create topic in Discussion section detailing how users should keep this repository in sync with their own Klipper config using `git`. ## Stay Up-to-Date diff --git a/cfgs/macros.cfg b/cfgs/macros.cfg index 7962d60..f762c09 100644 --- a/cfgs/macros.cfg +++ b/cfgs/macros.cfg @@ -13,6 +13,28 @@ gcode: {action_raise_error('Pre purge prime length not found')} {% endif %} +[gcode_macro M109] +rename_existing: M99109 +gcode: + #Parameters + {% set s = params.S|float %} + + M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set hotend temp + {% if s != 0 %} + TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s} MAXIMUM={s+1} ; Wait for hotend temp (within 1 degree) + {% endif %} + +[gcode_macro M190] +rename_existing: M99190 +gcode: + #Parameters + {% set s = params.S|float %} + + M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set bed temp + {% if s != 0 %} + TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s} MAXIMUM={s+1} ; Wait for bed temp (within 1 degree) + {% 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 From 648346616e9648e497a391a7e2189864b60e5e96 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 8 Mar 2023 03:41:15 -0500 Subject: [PATCH 16/57] New z_offset. --- printer.cfg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/printer.cfg b/printer.cfg index 1d9ec0f..144fd24 100644 --- a/printer.cfg +++ b/printer.cfg @@ -225,7 +225,7 @@ enable_force_move: True #*# pid_kd = 887.637 #*# #*# [probe] -#*# z_offset = 1.710 +#*# z_offset = 1.690 #*# #*# [bed_mesh newbed] #*# version = 1 @@ -287,11 +287,11 @@ enable_force_move: True #*# [bed_mesh default-v1] #*# version = 1 #*# points = -#*# -0.165625, -0.108125, -0.055000, -0.035625, -0.055000 -#*# -0.182500, -0.125625, -0.056250, -0.045625, -0.089375 -#*# -0.202500, -0.114375, -0.050625, -0.040625, -0.086250 -#*# -0.203125, -0.109375, -0.033750, -0.038750, -0.078750 -#*# -0.161250, -0.062500, 0.011875, 0.015000, -0.007500 +#*# -0.165625, -0.108125, -0.055000, -0.035625, -0.055000 +#*# -0.182500, -0.125625, -0.056250, -0.045625, -0.089375 +#*# -0.202500, -0.114375, -0.050625, -0.040625, -0.086250 +#*# -0.203125, -0.109375, -0.033750, -0.038750, -0.078750 +#*# -0.161250, -0.062500, 0.011875, 0.015000, -0.007500 #*# min_x = 27.0 #*# max_x = 222.0 #*# min_y = 5.0 @@ -306,11 +306,11 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.219375, -0.138125, -0.072500, -0.067500, -0.108750 -#*# -0.208125, -0.140625, -0.065625, -0.053125, -0.111250 -#*# -0.220000, -0.124375, -0.058750, -0.051250, -0.100625 -#*# -0.224375, -0.121250, -0.046250, -0.049375, -0.097500 -#*# -0.184375, -0.072500, -0.006875, -0.008125, -0.043125 +#*# -0.219375, -0.138125, -0.072500, -0.067500, -0.108750 +#*# -0.208125, -0.140625, -0.065625, -0.053125, -0.111250 +#*# -0.220000, -0.124375, -0.058750, -0.051250, -0.100625 +#*# -0.224375, -0.121250, -0.046250, -0.049375, -0.097500 +#*# -0.184375, -0.072500, -0.006875, -0.008125, -0.043125 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 From c3e4b85ca2226c9e4ebd70fe3caa1394467ef98c Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 8 Mar 2023 11:57:52 -0500 Subject: [PATCH 17/57] New z_offset and mesh. --- printer.cfg | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/printer.cfg b/printer.cfg index 144fd24..a133a68 100644 --- a/printer.cfg +++ b/printer.cfg @@ -265,33 +265,14 @@ enable_force_move: True #*# algo = bicubic #*# tension = 0.2 #*# -#*# [bed_mesh oldbed-again] -#*# version = 1 -#*# points = -#*# -0.231875, -0.156875, -0.092500, -0.093125, -0.143125 -#*# -0.221875, -0.158750, -0.082500, -0.071250, -0.131250 -#*# -0.237500, -0.144375, -0.074375, -0.062500, -0.113125 -#*# -0.240625, -0.141250, -0.059375, -0.060625, -0.110625 -#*# -0.208750, -0.101875, -0.026875, -0.033125, -0.067500 -#*# x_count = 5 -#*# y_count = 5 -#*# mesh_x_pps = 2 -#*# mesh_y_pps = 2 -#*# algo = bicubic -#*# tension = 0.2 -#*# min_x = 27.0 -#*# max_x = 222.0 -#*# min_y = 5.0 -#*# max_y = 203.0 -#*# #*# [bed_mesh default-v1] #*# version = 1 #*# points = -#*# -0.165625, -0.108125, -0.055000, -0.035625, -0.055000 -#*# -0.182500, -0.125625, -0.056250, -0.045625, -0.089375 -#*# -0.202500, -0.114375, -0.050625, -0.040625, -0.086250 -#*# -0.203125, -0.109375, -0.033750, -0.038750, -0.078750 -#*# -0.161250, -0.062500, 0.011875, 0.015000, -0.007500 +#*# -0.219375, -0.138125, -0.072500, -0.067500, -0.108750 +#*# -0.208125, -0.140625, -0.065625, -0.053125, -0.111250 +#*# -0.220000, -0.124375, -0.058750, -0.051250, -0.100625 +#*# -0.224375, -0.121250, -0.046250, -0.049375, -0.097500 +#*# -0.184375, -0.072500, -0.006875, -0.008125, -0.043125 #*# min_x = 27.0 #*# max_x = 222.0 #*# min_y = 5.0 @@ -306,11 +287,11 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.219375, -0.138125, -0.072500, -0.067500, -0.108750 -#*# -0.208125, -0.140625, -0.065625, -0.053125, -0.111250 -#*# -0.220000, -0.124375, -0.058750, -0.051250, -0.100625 -#*# -0.224375, -0.121250, -0.046250, -0.049375, -0.097500 -#*# -0.184375, -0.072500, -0.006875, -0.008125, -0.043125 +#*# -0.181250, -0.127500, -0.082500, -0.086875, -0.124375 +#*# -0.182500, -0.123750, -0.063750, -0.069375, -0.132500 +#*# -0.190000, -0.106250, -0.056250, -0.067500, -0.128125 +#*# -0.185625, -0.100000, -0.042500, -0.063750, -0.128125 +#*# -0.133125, -0.045625, 0.000000, -0.019375, -0.079375 #*# x_count = 5 #*# y_count = 5 #*# mesh_x_pps = 2 From e453f7459774120de3574159cf202b57076991b2 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 8 Mar 2023 12:47:24 -0500 Subject: [PATCH 18/57] New input shaper. --- printer.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/printer.cfg b/printer.cfg index a133a68..70a2b25 100644 --- a/printer.cfg +++ b/printer.cfg @@ -168,10 +168,10 @@ encoder_pins: ^PB14, ^PB10 click_pin: ^!PB2 [input_shaper] -shaper_freq_x = 84.2 -shaper_type_x: 2hump_ei # mzv -shaper_freq_y = 41.8 # 59.0 -shaper_type_y: mzv # 3hump_ei +shaper_freq_x = 82.2 # 84.2 +shaper_type_x: 2hump_ei +shaper_freq_y = 40.6 # 41.8 +shaper_type_y: mzv [bed_screws] screw1: 26.5, 31 From 557545a17f2b46c346a2dbf68b740e1906cfe504 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 8 Mar 2023 14:10:49 -0500 Subject: [PATCH 19/57] Input shaper section comments. --- printer.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/printer.cfg b/printer.cfg index 70a2b25..7da0352 100644 --- a/printer.cfg +++ b/printer.cfg @@ -107,7 +107,7 @@ sensor_pin: PC5 min_temp: 0 max_temp: 300 max_extrude_only_distance: 150.0 -pressure_advance: 0.044 +pressure_advance: 0.0465 # 0.044 [tmc2209 extruder] uart_pin: PC14 @@ -168,9 +168,9 @@ encoder_pins: ^PB14, ^PB10 click_pin: ^!PB2 [input_shaper] -shaper_freq_x = 82.2 # 84.2 +shaper_freq_x = 82.2 # 84.2; 4020 shaper_type_x: 2hump_ei -shaper_freq_y = 40.6 # 41.8 +shaper_freq_y = 40.6 # 41.8; 4020 shaper_type_y: mzv [bed_screws] From de56c25dcadd12220e2273c8e62dfa2b784d872a Mon Sep 17 00:00:00 2001 From: Marcelo Bello Date: Thu, 9 Mar 2023 11:02:15 -0300 Subject: [PATCH 20/57] Change git clone style to use https / avoid permission error On a fresh raspberrypi, users may find it easier to just do: git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git . --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70a8bc6..f95c532 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ You can choose *either* of the 2 following methods. 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 git@github.com:bassamanator/Sovol-SV06-firmware.git .` +3. `git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .` ### Download the ZIP From 6492c67e31a70fe5a592c6f90881c3506b35db20 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 10 Mar 2023 04:46:19 -0500 Subject: [PATCH 21/57] Renamed macros.cfg to misc-macros.cfg. --- cfgs/{macros.cfg => misc-macros.cfg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename cfgs/{macros.cfg => misc-macros.cfg} (100%) diff --git a/cfgs/macros.cfg b/cfgs/misc-macros.cfg similarity index 100% rename from cfgs/macros.cfg rename to cfgs/misc-macros.cfg From 6c63082072383cbb21c507c143ae6b00bf965096 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 10 Mar 2023 04:52:04 -0500 Subject: [PATCH 22/57] Moved many sections from printer.cfg to misc-macros.cfg. --- cfgs/misc-macros.cfg | 13 +++++++++++++ printer.cfg | 23 +++-------------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index f762c09..643707d 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -1,3 +1,16 @@ +[force_move] +enable_force_move: True + +[temperature_sensor raspberry_pi] +sensor_type: temperature_host + +[virtual_sdcard] +path: /home/pi/printer_data/gcodes + +# NOTE Cancel objects feature is enabled. If you're using a low powered device, comment out [exclude_object]. +# Also see [file_manager] section in moonraker.conf. +[exclude_object] + [pause_resume] [display_status] diff --git a/printer.cfg b/printer.cfg index 3a0387a..e7d0049 100644 --- a/printer.cfg +++ b/printer.cfg @@ -4,7 +4,7 @@ # # See https://www.klipper3d.org/Config_Reference.html for configuration reference. -[include ./cfgs/macros.cfg] +[include ./cfgs/misc-macros.cfg] [include ./cfgs/PARKING.cfg] [include ./cfgs/MECHANICAL_GANTRY_CALIBRATION.cfg] [include ./cfgs/beeper.cfg] @@ -128,9 +128,6 @@ pid_kd: 1343.571 min_temp: 0 max_temp: 110 -[fan] -pin: PA0 - [probe] pin: PB1 x_offset: 27 @@ -157,12 +154,6 @@ fade_start: 1 fade_end: 10 fade_target: 0 -[virtual_sdcard] -path: /home/pi/printer_data/gcodes - -[temperature_sensor raspberry_pi] -sensor_type: temperature_host - [display] lcd_type: st7920 cs_pin: PB12 @@ -196,13 +187,5 @@ speed: 50 horizontal_move_z: 10 screw_thread: CCW-M4 -# NOTE this is the pin for the filament switch, if you have one -# [filament_switch_sensor fil_sensor] -# switch_pin: PA4 # "Pulled-high" - -# NOTE Cancel objects feature is enabled. If you're using a low powered device, comment out [exclude_object]. -# Also see [file_manager] section in moonraker.conf. -[exclude_object] - -[force_move] -enable_force_move: True \ No newline at end of file +[fan] +pin: PA0 From 7f05e62e94705f33dfe77933246608b89d20cf4b Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 10 Mar 2023 05:13:50 -0500 Subject: [PATCH 23/57] Removed pressure_advance. --- printer.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/printer.cfg b/printer.cfg index e7d0049..22b8629 100644 --- a/printer.cfg +++ b/printer.cfg @@ -107,7 +107,6 @@ pid_ki: 1.326 min_temp: 0 max_temp: 300 max_extrude_only_distance: 150.0 -pressure_advance: 0.027 [tmc2209 extruder] uart_pin: PC14 From d9fb25bcd22b666bb7e021d51ef62af8c775aae7 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 10 Mar 2023 05:21:37 -0500 Subject: [PATCH 24/57] Minor change to Directory Structure section. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f95c532..bb089ef 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ This repository contains many files and folders. Some are *necessary* for this K │   ├── adxl-direct.cfg │   ├── adxl-rp2040.cfg │   ├── beeper.cfg -│   ├── macros.cfg +│   ├── misc-macros.cfg │   ├── MECHANICAL_GANTRY_CALIBRATION.cfg │   ├── PARKING.cfg │   └── TEST_SPEED.cfg [☠️Not ready for use☠️] From 110c84f4514cef9536c74ee23b4c3023b5344b04 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 10 Mar 2023 05:39:51 -0500 Subject: [PATCH 25/57] Added headings for sections in printer.cfg. --- printer.cfg | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/printer.cfg b/printer.cfg index 89726cb..5485d17 100644 --- a/printer.cfg +++ b/printer.cfg @@ -26,6 +26,10 @@ max_accel: 3000 max_z_velocity: 15 max_z_accel: 45 +##################################################################### +# X/Y/Z Stepper Settings +##################################################################### + [stepper_x] step_pin: PC2 dir_pin: !PB9 @@ -90,6 +94,10 @@ sense_resistor: 0.150 uart_address: 3 diag_pin: PA7 +##################################################################### +# Extruder +##################################################################### + [extruder] step_pin: PB4 dir_pin: !PB3 @@ -114,6 +122,10 @@ interpolate: False sense_resistor: 0.150 uart_address: 3 +##################################################################### +# Bed Heater +##################################################################### + [heater_bed] heater_pin: PA2 sensor_type: EPCOS 100K B57560G104F @@ -121,6 +133,10 @@ sensor_pin: PC4 min_temp: 0 max_temp: 110 +##################################################################### +# Probe Related +##################################################################### + [probe] pin: PB1 x_offset: 27 @@ -147,6 +163,10 @@ fade_start: 1 fade_end: 10 fade_target: 0 +##################################################################### +# Misc +##################################################################### + [display] lcd_type: st7920 cs_pin: PB12 From e3762db8b244680fac6ac736758f500965906d0e Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 10 Mar 2023 07:59:26 -0500 Subject: [PATCH 26/57] Minor cleanup in misc-macros.cfg. --- cfgs/misc-macros.cfg | 5 ----- 1 file changed, 5 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 643707d..caa2fef 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -72,10 +72,6 @@ gcode: BASE_CANCEL_PRINT [gcode_macro PRINT_START] -# Use PRINT_START for the slicer starting script - please customize for your slicer of choice -#gcode: -# G28 ; home all axes -# G1 Z20 F3000 ; move nozzle away from bed gcode: # Parameters {% set bedtemp = params.BED|int %} @@ -97,7 +93,6 @@ gcode: G1 Z20 F3000 ; move nozzle away from bed [gcode_macro PRINT_END] -# Use PRINT_END for the slicer ending script - please customize for your slicer of choice gcode: 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 %} From e972231cd1ea8ca0ccab58d7f1a857d6e5e2c087 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sat, 11 Mar 2023 19:47:18 -0500 Subject: [PATCH 27/57] Added not about e-steps. --- printer.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/printer.cfg b/printer.cfg index 22b8629..ef6d60f 100644 --- a/printer.cfg +++ b/printer.cfg @@ -94,7 +94,7 @@ step_pin: PB4 dir_pin: !PB3 enable_pin: !PC3 microsteps: 32 -rotation_distance: 4.65 +rotation_distance: 4.65 # NOTE Calibrate e-steps and adjust https://www.klipper3d.org/Rotation_Distance.html nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: PA1 @@ -153,6 +153,9 @@ fade_start: 1 fade_end: 10 fade_target: 0 +[fan] +pin: PA0 + [display] lcd_type: st7920 cs_pin: PB12 @@ -185,6 +188,3 @@ screw5_name: back left speed: 50 horizontal_move_z: 10 screw_thread: CCW-M4 - -[fan] -pin: PA0 From 3c84c049c88a5fd6e57a5eb4cf334d9fb70180ec Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sat, 11 Mar 2023 23:19:47 -0500 Subject: [PATCH 28/57] Rearranged beeper section. --- cfgs/beeper.cfg | 7 ------- printer.cfg | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cfgs/beeper.cfg b/cfgs/beeper.cfg index 7904e88..2454d26 100644 --- a/cfgs/beeper.cfg +++ b/cfgs/beeper.cfg @@ -1,10 +1,3 @@ -[output_pin beeper] -pin: PC6 -value: 0 -shutdown_value: 0 -pwm: True -cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) - [gcode_macro BEEP] description: BEEP I=3 DUR=200 FREQ=2000: Beep 3 times, for 200ms each, at 2kHz frequency. gcode: diff --git a/printer.cfg b/printer.cfg index 0845d1f..fc3ecfe 100644 --- a/printer.cfg +++ b/printer.cfg @@ -213,6 +213,13 @@ speed: 50 horizontal_move_z: 10 screw_thread: CCW-M4 +[output_pin beeper] +pin: PC6 +value: 0 +shutdown_value: 0 +pwm: True +cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) + #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# From 69a5cbc45c4e5fc98242570829fa5a24fe60c0f1 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 01:32:40 -0500 Subject: [PATCH 29/57] Merging filament sensor related code. --- cfgs/misc-macros.cfg | 36 ++++++++++++++++++++++++++---------- printer.cfg | 9 +++++++++ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 643707d..9fa3d76 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -14,10 +14,28 @@ path: /home/pi/printer_data/gcodes [pause_resume] [display_status] +[delayed_gcode DISABLEFILAMENTSENSOR] +initial_duration: 1 +gcode: + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + [gcode_macro _globals] variable_pre_purge_prime_length: 1.4 +variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected 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 } + +[gcode_macro ADJUST_FILAMENT_SENSOR_STATUS] +gcode: + # Parameters + {% set NEWSTATUS = params.ENABLE|default(-1)|int %} + + {% set FILAMENT_SENSOR_ENABLED=printer["gcode_macro _globals"].filament_sensor_enabled|default(-1)|int %} + + {% if FILAMENT_SENSOR_ENABLED == 1 and NEWSTATUS != -1 %} + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=NEWSTATUS + {% endif %} [gcode_macro CHECK_PRE_PURGE_PRIME_LENGTH] gcode: @@ -72,16 +90,14 @@ gcode: BASE_CANCEL_PRINT [gcode_macro PRINT_START] -# Use PRINT_START for the slicer starting script - please customize for your slicer of choice -#gcode: -# G28 ; home all axes -# G1 Z20 F3000 ; move nozzle away from bed -gcode: +gcode: # Parameters {% set bedtemp = params.BED|int %} {% set hotendtemp = params.HOTEND|int %} {% set chambertemp = params.CHAMBER|default(0)|int %} + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + G28 X Y # M140 S{bedtemp} ; set & don't wait for bed temp @@ -97,9 +113,9 @@ gcode: G1 Z20 F3000 ; move nozzle away from bed [gcode_macro PRINT_END] -# Use PRINT_END for the slicer ending script - please customize for your slicer of choice gcode: - BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 + 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 @@ -166,7 +182,7 @@ gcode: SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 ; disable filament sensor + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max @@ -192,8 +208,8 @@ gcode: {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 ; enable filament sensor - #INITIAL_RGB ; reset LCD color + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up diff --git a/printer.cfg b/printer.cfg index fc3ecfe..976e116 100644 --- a/printer.cfg +++ b/printer.cfg @@ -220,6 +220,15 @@ shutdown_value: 0 pwm: True cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) +[filament_switch_sensor filament_sensor] +switch_pin: !PA4 # "Pulled-high" +pause_on_runout: True +insert_gcode: + M117 Insert Detected +runout_gcode: + M117 Runout Detected + BEEP i=3 dur=300 freq=400 + #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# From 5ccabd1a3d425ec0575b98dac3515432a4917c20 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 01:53:44 -0500 Subject: [PATCH 30/57] Added conditional beeping. --- cfgs/beeper.cfg | 47 -------------------------------------------- cfgs/misc-macros.cfg | 36 ++++++++++++++++++++++++++++++--- printer.cfg | 3 +-- 3 files changed, 34 insertions(+), 52 deletions(-) delete mode 100644 cfgs/beeper.cfg diff --git a/cfgs/beeper.cfg b/cfgs/beeper.cfg deleted file mode 100644 index 2454d26..0000000 --- a/cfgs/beeper.cfg +++ /dev/null @@ -1,47 +0,0 @@ -[gcode_macro BEEP] -description: BEEP I=3 DUR=200 FREQ=2000: Beep 3 times, for 200ms each, at 2kHz frequency. -gcode: - # Parameters - {% set i = params.I|default(1)|int %} ; Iterations (number of times to beep). - {% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms. - {% set freq = params.FREQ|default(2000)|int %} ; Frequency in Hz. Default 2kHz. - - {% for iteration in range(i|int) %} - SET_PIN PIN=beeper VALUE=0.8 CYCLE_TIME={ 1.0/freq if freq > 0 else 1 } - G4 P{dur} - SET_PIN PIN=beeper VALUE=0 - G4 P{dur} - {% endfor %} - -# [gcode_macro M300] -# gcode: -# {% set S = params.S|default(1000)|int %} -# {% set P = params.P|default(100)|int %} - -# SET_PIN PIN=beeper VALUE=0.5 CYCLE_TIME={ 1.0/S if S > 0 else 1 } -# G4 P{P} -# SET_PIN PIN=beeper VALUE=0 - -# [gcode_macro SONG_SINGLE_BEEP] -# gcode: -# M300 S830.61 P137 - -# [gcode_macro TOGGLE_BEEPER] -# description: Toggle the printer beeper on and off. -# gcode: -# {% set beeper_state = printer.save_variables.variables.beeper_state|lower %} - -# {% if printer['gcode_macro _USER_VARIABLE'].debug == 1 %} -# {action_respond_info('==== TOGGLE_BEEPER ====')} -# {action_respond_info("beeper_state: %s" % (beeper_state))} -# {action_respond_info('===============')} -# {% endif %} - -# {% if beeper_state == "off" %} -# {action_respond_info('beeper is off, turning it on')} -# SAVE_VARIABLE VARIABLE=beeper_state VALUE='"on"' -# {% else %} -# {action_respond_info('beeper is on= turning it off')} -# SAVE_VARIABLE VARIABLE=beeper_state VALUE='"off"' -# {% endif %} -# SONG_SINGLE_BEEP \ No newline at end of file diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 9fa3d76..7b45e4a 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -20,11 +20,26 @@ gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 [gcode_macro _globals] -variable_pre_purge_prime_length: 1.4 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 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 } + +[gcode_macro CONDITIONAL_BEEP] +gcode: + # Parameters + {% set i = params.I|default(1)|int %} ; Iterations (number of times to beep). + {% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms. + {% set freq = params.FREQ|default(2000)|int %} ; Frequency in Hz. Default 2kHz. + + {% set BEEPING_ENABLED=printer["gcode_macro _globals"].beeping_enabled|default(-1)|int %} + + {% if BEEPING_ENABLED == 1 %} + BEEP I=i DUR=dur FREQ=freq + {% endif %} [gcode_macro ADJUST_FILAMENT_SENSOR_STATUS] gcode: @@ -115,7 +130,7 @@ gcode: [gcode_macro PRINT_END] gcode: ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 - BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print + 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 @@ -231,4 +246,19 @@ gcode: gcode: {% if "xyz" not in printer.toolhead.homed_axes %} G28 - {% endif %} \ No newline at end of file + {% endif %} + +[gcode_macro BEEP] +description: BEEP I=3 DUR=200 FREQ=2000: Beep 3 times, for 200ms each, at 2kHz frequency. +gcode: + # Parameters + {% set i = params.I|default(1)|int %} ; Iterations (number of times to beep). + {% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms. + {% set freq = params.FREQ|default(2000)|int %} ; Frequency in Hz. Default 2kHz. + + {% for iteration in range(i|int) %} + SET_PIN PIN=beeper VALUE=0.8 CYCLE_TIME={ 1.0/freq if freq > 0 else 1 } + G4 P{dur} + SET_PIN PIN=beeper VALUE=0 + G4 P{dur} + {% endfor %} \ No newline at end of file diff --git a/printer.cfg b/printer.cfg index 976e116..ca71ee7 100644 --- a/printer.cfg +++ b/printer.cfg @@ -8,7 +8,6 @@ [include ./cfgs/TEST_SPEED.cfg] [include ./cfgs/PARKING.cfg] [include ./cfgs/MECHANICAL_GANTRY_CALIBRATION.cfg] -[include ./cfgs/beeper.cfg] # NOTE Uncomment the ONE of the following lines if you're using an adxl345 # [include ./cfgs/adxl-rp2040.cfg] @@ -227,7 +226,7 @@ insert_gcode: M117 Insert Detected runout_gcode: M117 Runout Detected - BEEP i=3 dur=300 freq=400 + CONDITIONAL_BEEP i=3 dur=300 freq=400 #*# <---------------------- SAVE_CONFIG ----------------------> #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. From f70f23e2909c72b5cd9e978c549f8099f86eee6d Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 10:44:23 -0400 Subject: [PATCH 31/57] ADJUST_FILAMENT_SENSOR_STATUS and conditional_beep fixed. --- 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 7b45e4a..7e790f8 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -38,7 +38,7 @@ gcode: {% set BEEPING_ENABLED=printer["gcode_macro _globals"].beeping_enabled|default(-1)|int %} {% if BEEPING_ENABLED == 1 %} - BEEP I=i DUR=dur FREQ=freq + BEEP I={i} DUR={dur} FREQ={freq} {% endif %} [gcode_macro ADJUST_FILAMENT_SENSOR_STATUS] @@ -49,7 +49,7 @@ gcode: {% set FILAMENT_SENSOR_ENABLED=printer["gcode_macro _globals"].filament_sensor_enabled|default(-1)|int %} {% if FILAMENT_SENSOR_ENABLED == 1 and NEWSTATUS != -1 %} - SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=NEWSTATUS + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE={NEWSTATUS} {% endif %} [gcode_macro CHECK_PRE_PURGE_PRIME_LENGTH] From 36ba332e818846f599e59815afc92c79c785376f Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 11:15:01 -0400 Subject: [PATCH 32/57] Added SET_FILAMENT_SENSOR to print_start. --- cfgs/misc-macros.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 7e790f8..c410d09 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -112,6 +112,7 @@ gcode: {% set chambertemp = params.CHAMBER|default(0)|int %} ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 G28 X Y # From 9e05774aa1a38be4b12c57569623d5eb403b53ff Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 11:23:04 -0400 Subject: [PATCH 33/57] Reversed filament sensor pin. --- printer.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printer.cfg b/printer.cfg index ca71ee7..999ab48 100644 --- a/printer.cfg +++ b/printer.cfg @@ -220,7 +220,7 @@ pwm: True cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) [filament_switch_sensor filament_sensor] -switch_pin: !PA4 # "Pulled-high" +switch_pin: PA4 # "Pulled-high" pause_on_runout: True insert_gcode: M117 Insert Detected From 0b5909ab53b848c343b5550db74d1b9017bdcbb3 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 12:19:59 -0400 Subject: [PATCH 34/57] Added ADJUST_FILAMENT_SENSOR_STATUS use back. --- cfgs/misc-macros.cfg | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 6a6e13b..c7a8d3e 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -20,7 +20,7 @@ gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 [gcode_macro _globals] -variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected +variable_filament_sensor_enabled: 1 # 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 gcode: @@ -112,7 +112,7 @@ gcode: {% set chambertemp = params.CHAMBER|default(0)|int %} ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 + # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 G28 X Y # @@ -131,7 +131,7 @@ gcode: [gcode_macro PRINT_END] gcode: ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 - SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + # SET_FILAMENT_SENSOR SENSOR=filament_sensor 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 @@ -200,7 +200,7 @@ gcode: SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 - SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max @@ -227,7 +227,7 @@ gcode: {% if printer['pause_resume'].is_paused|int == 1 %} ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 + # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} From 150e1b74251c865803a76ea91df90c63e5bd2194 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 14:35:13 -0400 Subject: [PATCH 35/57] Removed CHECK_PRE_PURGE_PRIME_LENGTH macro. --- cfgs/misc-macros.cfg | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index c7a8d3e..680ec20 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -52,13 +52,6 @@ gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE={NEWSTATUS} {% endif %} -[gcode_macro CHECK_PRE_PURGE_PRIME_LENGTH] -gcode: - {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length %} - {% if not PRE_PURGE_PRIME_LENGTH %} - {action_raise_error('Pre purge prime length not found')} - {% endif %} - [gcode_macro M109] rename_existing: M99109 gcode: @@ -85,8 +78,8 @@ gcode: # 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 %} - CHECK_PRE_PURGE_PRIME_LENGTH + {% 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 G92 E0.0 ; reset extruder @@ -112,7 +105,6 @@ gcode: {% set chambertemp = params.CHAMBER|default(0)|int %} ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 G28 X Y # @@ -131,7 +123,6 @@ gcode: [gcode_macro PRINT_END] gcode: ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 - # SET_FILAMENT_SENSOR SENSOR=filament_sensor 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 @@ -200,7 +191,7 @@ gcode: SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max @@ -227,7 +218,6 @@ gcode: {% if printer['pause_resume'].is_paused|int == 1 %} ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} From 9770e25b4ac38a8b88ca0bcc8dc8c1da6a9413d5 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 20:35:04 -0400 Subject: [PATCH 36/57] Adjusted .gitignore and workspace settings. --- .gitignore | 1 + .vscode/settings.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a46f989..c90eda7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ printer-*_*.cfg .moonraker.conf.bkp +.directory diff --git a/.vscode/settings.json b/.vscode/settings.json index 06c7957..384e9d9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,6 @@ "editor.insertSpaces": true, "editor.detectIndentation": false, "git.mergeEditor": false, - "spellright.language": ["en-US-10-1."], - "spellright.documentTypes": ["markdown", "latex", "plaintext"] + "spellright.language": ["en-GB-10-1."], + "spellright.documentTypes": ["markdown", "plaintext"] } From b2f110df0ae0cef55da80009fb0dacd849b76895 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 12 Mar 2023 20:36:15 -0400 Subject: [PATCH 37/57] Adjusted .gitignore and workspace settings. --- .gitignore | 1 + .vscode/settings.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a46f989..c90eda7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ printer-*_*.cfg .moonraker.conf.bkp +.directory diff --git a/.vscode/settings.json b/.vscode/settings.json index 06c7957..384e9d9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,6 @@ "editor.insertSpaces": true, "editor.detectIndentation": false, "git.mergeEditor": false, - "spellright.language": ["en-US-10-1."], - "spellright.documentTypes": ["markdown", "latex", "plaintext"] + "spellright.language": ["en-GB-10-1."], + "spellright.documentTypes": ["markdown", "plaintext"] } From c20f18280ca8b6881dc31d3a099deb06ca5336e7 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 01:26:12 -0400 Subject: [PATCH 38/57] Changed extruder microsteps to 64. --- printer.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printer.cfg b/printer.cfg index ca71ee7..01aeb32 100644 --- a/printer.cfg +++ b/printer.cfg @@ -101,7 +101,7 @@ diag_pin: PA7 step_pin: PB4 dir_pin: !PB3 enable_pin: !PC3 -microsteps: 32 +microsteps: 64 rotation_distance: 4.65 # NOTE Calibrate e-steps and adjust https://www.klipper3d.org/Rotation_Distance.html nozzle_diameter: 0.400 filament_diameter: 1.750 From 07b36315124dec5f9b188cc01fe7636b5c3cac56 Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Tue, 14 Mar 2023 01:58:42 -0400 Subject: [PATCH 39/57] Update README.md Added Links section. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index bb089ef..084b6e7 100644 --- a/README.md +++ b/README.md @@ -162,6 +162,11 @@ If you found my work useful, please consider buying me a [ 0 else 1 } + G4 P{dur} + SET_PIN PIN=beeper VALUE=0 + G4 P{dur} + {% endfor %} \ No newline at end of file diff --git a/printer.cfg b/printer.cfg index ef6d60f..5f12b5e 100644 --- a/printer.cfg +++ b/printer.cfg @@ -7,7 +7,6 @@ [include ./cfgs/misc-macros.cfg] [include ./cfgs/PARKING.cfg] [include ./cfgs/MECHANICAL_GANTRY_CALIBRATION.cfg] -[include ./cfgs/beeper.cfg] # NOTE Uncomment the ONE of the following lines if you're using an adxl345 # [include ./cfgs/adxl-rp2040.cfg] @@ -25,6 +24,10 @@ max_accel: 3000 max_z_velocity: 15 max_z_accel: 45 +##################################################################### +# X/Y/Z Stepper Settings +##################################################################### + [stepper_x] step_pin: PC2 dir_pin: !PB9 @@ -89,11 +92,15 @@ sense_resistor: 0.150 uart_address: 3 diag_pin: PA7 +##################################################################### +# Extruder +##################################################################### + [extruder] step_pin: PB4 dir_pin: !PB3 enable_pin: !PC3 -microsteps: 32 +microsteps: 64 rotation_distance: 4.65 # NOTE Calibrate e-steps and adjust https://www.klipper3d.org/Rotation_Distance.html nozzle_diameter: 0.400 filament_diameter: 1.750 @@ -116,6 +123,10 @@ interpolate: False sense_resistor: 0.150 uart_address: 3 +##################################################################### +# Bed Heater +##################################################################### + [heater_bed] heater_pin: PA2 sensor_type: EPCOS 100K B57560G104F @@ -127,6 +138,10 @@ pid_kd: 1343.571 min_temp: 0 max_temp: 110 +##################################################################### +# Probe Related +##################################################################### + [probe] pin: PB1 x_offset: 27 @@ -153,9 +168,17 @@ fade_start: 1 fade_end: 10 fade_target: 0 +##################################################################### +# Fans +##################################################################### + [fan] pin: PA0 +##################################################################### +# Misc +##################################################################### + [display] lcd_type: st7920 cs_pin: PB12 @@ -188,3 +211,10 @@ screw5_name: back left speed: 50 horizontal_move_z: 10 screw_thread: CCW-M4 + +[output_pin beeper] +pin: PC6 +value: 0 +shutdown_value: 0 +pwm: True +cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) From c967be1023514b4156ef544ac8db302534f508bb Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 18:45:30 -0400 Subject: [PATCH 41/57] More changes pulled from personal. --- cfgs/misc-macros.cfg | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 664b32f..235368a 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -15,15 +15,36 @@ path: /home/pi/printer_data/gcodes [display_status] [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 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 } -[gcode_macro CHECK_PRE_PURGE_PRIME_LENGTH] +[gcode_macro CONDITIONAL_BEEP] gcode: - {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length %} - {% if not PRE_PURGE_PRIME_LENGTH %} - {action_raise_error('Pre purge prime length not found')} + # Parameters + {% set i = params.I|default(1)|int %} ; Iterations (number of times to beep). + {% set dur = params.DUR|default(100)|int %} ; Duration/wait of each beep in ms. Default 100ms. + {% set freq = params.FREQ|default(2000)|int %} ; Frequency in Hz. Default 2kHz. + + {% set BEEPING_ENABLED=printer["gcode_macro _globals"].beeping_enabled|default(-1)|int %} + + {% if BEEPING_ENABLED == 1 %} + BEEP I={i} DUR={dur} FREQ={freq} + {% endif %} + +[gcode_macro ADJUST_FILAMENT_SENSOR_STATUS] +gcode: + # Parameters + {% set NEWSTATUS = params.ENABLE|default(-1)|int %} + + {% set FILAMENT_SENSOR_ENABLED=printer["gcode_macro _globals"].filament_sensor_enabled|default(-1)|int %} + + {% if FILAMENT_SENSOR_ENABLED == 1 and NEWSTATUS != -1 %} + SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE={NEWSTATUS} {% endif %} [gcode_macro M109] @@ -52,8 +73,8 @@ gcode: # 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 %} - CHECK_PRE_PURGE_PRIME_LENGTH + {% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %} + G0 Y0 X0 F4000 ; go to tongue of print bed G1 Z0.4 F500.0 ; move bed to nozzle G92 E0.0 ; reset extruder From 9239a54e8b88cab8716ff6718aafa98db8e44a20 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 18:55:07 -0400 Subject: [PATCH 42/57] More changes pulled from personal. --- cfgs/misc-macros.cfg | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 235368a..b1afe99 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -14,6 +14,11 @@ path: /home/pi/printer_data/gcodes [pause_resume] [display_status] +# [delayed_gcode DISABLEFILAMENTSENSOR] +# initial_duration: 1 +# gcode: +# SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 + [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 @@ -74,7 +79,7 @@ gcode: # 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 G92 E0.0 ; reset extruder @@ -93,12 +98,14 @@ gcode: BASE_CANCEL_PRINT [gcode_macro PRINT_START] -gcode: +gcode: # Parameters {% set bedtemp = params.BED|int %} {% set hotendtemp = params.HOTEND|int %} {% set chambertemp = params.CHAMBER|default(0)|int %} + # ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + G28 X Y # M140 S{bedtemp} ; set & don't wait for bed temp @@ -115,7 +122,8 @@ gcode: [gcode_macro PRINT_END] gcode: - BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print + # 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 @@ -182,7 +190,8 @@ gcode: SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 ; disable filament sensor + # ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 + SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max @@ -208,8 +217,8 @@ gcode: {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} - # SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 ; enable filament sensor - #INITIAL_RGB ; reset LCD color + # ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} M109 S{etemp|int} ; wait for hotend to heat back up From 545817dffc969050660f55e174239a26b9cc5787 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 19:26:01 -0400 Subject: [PATCH 43/57] SuperSlicer config bundle updated. --- misc/SuperSlicer_config_bundle.ini | 250 ++++++++++++++++++++++++----- 1 file changed, 212 insertions(+), 38 deletions(-) diff --git a/misc/SuperSlicer_config_bundle.ini b/misc/SuperSlicer_config_bundle.ini index 2a310c0..b318c70 100644 --- a/misc/SuperSlicer_config_bundle.ini +++ b/misc/SuperSlicer_config_bundle.ini @@ -1,6 +1,6 @@ -# generated by SuperSlicer 2.4 on 2023-02-15 at 02:16:55 UTC +# generated by SuperSlicer 2.4 on 2023-03-14 at 23:18:59 UTC -[print:_Ellis_Decorative_45_Degree_11mm3-SOVOL] +[print:_Ellis_Decorative_45_Degree_15mm3-SOVOL] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -78,7 +78,7 @@ first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% first_layer_flow_ratio = 100% -first_layer_height = 0.25 +first_layer_height = 0.26 first_layer_infill_speed = 60 first_layer_min_speed = 0 first_layer_size_compensation = -0.1 @@ -132,7 +132,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 200 -max_volumetric_speed = 11 +max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -172,7 +172,7 @@ print_custom_variables = wall_thickness_lines = 0 print_extrusion_multiplier = 100% print_retract_length = -1 print_retract_lift = -1 -print_settings_id = Ellis - Decorative 45 Degree (11mm3/s) +print_settings_id = Ellis - Decorative 45 Degree (15mm3/s) print_temperature = 0 raft_contact_distance = 0.1 raft_expansion = 1.5 @@ -267,7 +267,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_Decorative_Standard_11mm3-SOVOL] +[print:_Ellis_Decorative_Standard_15mm3-SOVOL] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -345,7 +345,7 @@ first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% first_layer_flow_ratio = 100% -first_layer_height = 0.25 +first_layer_height = 0.26 first_layer_infill_speed = 60 first_layer_min_speed = 0 first_layer_size_compensation = -0.1 @@ -399,7 +399,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 200 -max_volumetric_speed = 11 +max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -439,7 +439,7 @@ print_custom_variables = wall_thickness_lines = 0 print_extrusion_multiplier = 100% print_retract_length = -1 print_retract_lift = -1 -print_settings_id = Ellis - Decorative Standard (11mm3/s) +print_settings_id = Ellis - Decorative Standard (15mm3/s) print_temperature = 0 raft_contact_distance = 0.1 raft_expansion = 1.5 @@ -534,7 +534,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_PIF_45_Degree_11mm3-SOVOL] +[print:_Ellis_PIF_45_Degree_15mm3-SOVOL] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -612,7 +612,7 @@ first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% first_layer_flow_ratio = 100% -first_layer_height = 0.25 +first_layer_height = 0.26 first_layer_infill_speed = 60 first_layer_min_speed = 0 first_layer_size_compensation = -0.1 @@ -666,7 +666,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 200 -max_volumetric_speed = 11 +max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -706,7 +706,7 @@ print_custom_variables = wall_thickness_lines = 0 print_extrusion_multiplier = 100% print_retract_length = -1 print_retract_lift = -1 -print_settings_id = Ellis - PIF 45 Degree (11mm3/s) +print_settings_id = Ellis - PIF 45 Degree (15mm3/s) print_temperature = 0 raft_contact_distance = 0.1 raft_expansion = 1.5 @@ -801,7 +801,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_PIF_Standard_11mm3-SOVOL] +[print:_Ellis_PIF_Standard_15mm3-SOVOL] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -879,7 +879,7 @@ first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% first_layer_flow_ratio = 100% -first_layer_height = 0.25 +first_layer_height = 0.26 first_layer_infill_speed = 60 first_layer_min_speed = 0 first_layer_size_compensation = -0.1 @@ -933,7 +933,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 200 -max_volumetric_speed = 11 +max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -973,7 +973,7 @@ print_custom_variables = wall_thickness_lines = 0 print_extrusion_multiplier = 100% print_retract_length = -1 print_retract_lift = -1 -print_settings_id = Ellis - PIF Standard (11mm3/s) +print_settings_id = Ellis - PIF Standard (15mm3/s) print_temperature = 0 raft_contact_distance = 0.1 raft_expansion = 1.5 @@ -1495,7 +1495,7 @@ full_fan_speed_layer = 4 inherits = max_fan_speed = 100 max_speed_reduction = 90% -min_fan_speed = 50 +min_fan_speed = 100 min_print_speed = 15 slowdown_below_layer_time = 15 start_filament_gcode = "" @@ -1591,7 +1591,7 @@ temperature = 250 top_fan_speed = -1 [filament:Eryone PETG - Blue] -bed_temperature = 60 +bed_temperature = 70 bridge_fan_speed = 100 bridge_internal_fan_speed = -1 chamber_temperature = 30 @@ -1602,15 +1602,15 @@ compatible_prints_condition = disable_fan_first_layers = 2 end_filament_gcode = "" external_perimeter_fan_speed = -1 -extrusion_multiplier = 1 +extrusion_multiplier = 1.02 fan_always_on = 1 fan_below_layer_time = 20 -filament_colour = #2400FF +filament_colour = #0F0EF0 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 filament_cooling_moves = 4 filament_cooling_zone_pause = 0 -filament_cost = 20 +filament_cost = 29.36 filament_custom_variables = "" filament_density = 1.45 filament_deretract_speed = nil @@ -1623,7 +1623,7 @@ filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 filament_max_overlap = 100% -filament_max_speed = 120 +filament_max_speed = 0 filament_max_volumetric_speed = 12 filament_max_wipe_tower_speed = 0 filament_melt_zone_pause = 0 @@ -1644,7 +1644,7 @@ filament_settings_id = "" filament_shrink = 100% filament_skinnydip_distance = 31 filament_soluble = 0 -filament_spool_weight = 0 +filament_spool_weight = 1000 filament_toolchange_delay = 0 filament_toolchange_part_fan_speed = 50 filament_toolchange_temp = 200 @@ -1663,13 +1663,13 @@ filament_wipe_inside_end = nil filament_wipe_inside_start = nil filament_wipe_only_crossing = nil filament_wipe_speed = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 250 +first_layer_bed_temperature = 70 +first_layer_temperature = 240 full_fan_speed_layer = 4 inherits = max_fan_speed = 100 max_speed_reduction = 90% -min_fan_speed = 50 +min_fan_speed = 100 min_print_speed = 15 slowdown_below_layer_time = 15 start_filament_gcode = "" @@ -1751,17 +1751,17 @@ filament_wipe_inside_start = nil filament_wipe_only_crossing = nil filament_wipe_speed = nil first_layer_bed_temperature = 70 -first_layer_temperature = 245 +first_layer_temperature = 220 full_fan_speed_layer = 4 inherits = max_fan_speed = 100 max_speed_reduction = 90% -min_fan_speed = 45 +min_fan_speed = 100 min_print_speed = 15 slowdown_below_layer_time = 15 start_filament_gcode = "" support_material_interface_fan_speed = -1 -temperature = 235 +temperature = 220 top_fan_speed = -1 [filament:Eryone PETG - Galaxy Red] @@ -1851,6 +1851,93 @@ support_material_interface_fan_speed = -1 temperature = 235 top_fan_speed = -1 +[filament:Eryone PLA - Matte Dual - Pink-Blue] +bed_temperature = 60 +bridge_fan_speed = 100 +bridge_internal_fan_speed = -1 +chamber_temperature = 0 +compatible_printers = +compatible_printers_condition = +compatible_prints = +compatible_prints_condition = +disable_fan_first_layers = 1 +end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" +external_perimeter_fan_speed = -1 +extrusion_multiplier = 1.02 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_colour = #927BB6 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 0 +filament_cooling_zone_pause = 0 +filament_cost = 26.91 +filament_custom_variables = "" +filament_density = 1.23 +filament_deretract_speed = 30 +filament_diameter = 1.75 +filament_dip_extraction_speed = 70 +filament_dip_insertion_speed = 33 +filament_enable_toolchange_part_fan = 0 +filament_enable_toolchange_temp = 0 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_overlap = 100% +filament_max_speed = 0 +filament_max_volumetric_speed = 0 +filament_max_wipe_tower_speed = 0 +filament_melt_zone_pause = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_notes = ";Full spool weight: 1280g" +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = nil +filament_retract_lift = nil +filament_retract_lift_above = nil +filament_retract_lift_below = nil +filament_retract_restart_extra = nil +filament_retract_speed = 30 +filament_seam_gap = nil +filament_settings_id = "ABS - KVP" +filament_shrink = 100% +filament_skinnydip_distance = 31 +filament_soluble = 0 +filament_spool_weight = 1000 +filament_toolchange_delay = 0 +filament_toolchange_part_fan_speed = 50 +filament_toolchange_temp = 200 +filament_type = PLA +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_use_fast_skinnydip = 0 +filament_use_skinnydip = 0 +filament_vendor = (Unknown) +filament_wipe = nil +filament_wipe_advanced_pigment = 0.5 +filament_wipe_extra_perimeter = nil +filament_wipe_inside_depth = nil +filament_wipe_inside_end = nil +filament_wipe_inside_start = nil +filament_wipe_only_crossing = nil +filament_wipe_speed = nil +first_layer_bed_temperature = 60 +first_layer_temperature = 210 +full_fan_speed_layer = 4 +inherits = +max_fan_speed = 100 +max_speed_reduction = 90% +min_fan_speed = 100 +min_print_speed = 10 +slowdown_below_layer_time = 15 +start_filament_gcode = "; Filament gcode\n" +support_material_interface_fan_speed = -1 +temperature = 210 +top_fan_speed = -1 + [filament:Nuolei TPU - Light Blue] bed_temperature = 70 bridge_fan_speed = 80 @@ -2278,7 +2365,7 @@ full_fan_speed_layer = 4 inherits = max_fan_speed = 100 max_speed_reduction = 90% -min_fan_speed = 100 +min_fan_speed = 70 min_print_speed = 10 slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" @@ -2373,9 +2460,96 @@ support_material_interface_fan_speed = -1 temperature = 210 top_fan_speed = -1 +[filament:eSun PLA+ Silver] +bed_temperature = 60 +bridge_fan_speed = 100 +bridge_internal_fan_speed = -1 +chamber_temperature = 0 +compatible_printers = +compatible_printers_condition = +compatible_prints = +compatible_prints_condition = +disable_fan_first_layers = 1 +end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" +external_perimeter_fan_speed = -1 +extrusion_multiplier = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_colour = #0E5FED +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 0 +filament_cooling_zone_pause = 0 +filament_cost = 30 +filament_custom_variables = "" +filament_density = 1.23 +filament_deretract_speed = nil +filament_diameter = 1.75 +filament_dip_extraction_speed = 70 +filament_dip_insertion_speed = 33 +filament_enable_toolchange_part_fan = 0 +filament_enable_toolchange_temp = 0 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_overlap = 100% +filament_max_speed = 0 +filament_max_volumetric_speed = 0 +filament_max_wipe_tower_speed = 0 +filament_melt_zone_pause = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_notes = ";Full spool weight: 1280g" +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = nil +filament_retract_lift = nil +filament_retract_lift_above = nil +filament_retract_lift_below = nil +filament_retract_restart_extra = nil +filament_retract_speed = nil +filament_seam_gap = nil +filament_settings_id = "ABS - KVP" +filament_shrink = 100% +filament_skinnydip_distance = 31 +filament_soluble = 0 +filament_spool_weight = 1000 +filament_toolchange_delay = 0 +filament_toolchange_part_fan_speed = 50 +filament_toolchange_temp = 200 +filament_type = PLA +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_use_fast_skinnydip = 0 +filament_use_skinnydip = 0 +filament_vendor = (Unknown) +filament_wipe = nil +filament_wipe_advanced_pigment = 0.5 +filament_wipe_extra_perimeter = nil +filament_wipe_inside_depth = nil +filament_wipe_inside_end = nil +filament_wipe_inside_start = nil +filament_wipe_only_crossing = nil +filament_wipe_speed = nil +first_layer_bed_temperature = 60 +first_layer_temperature = 210 +full_fan_speed_layer = 4 +inherits = +max_fan_speed = 100 +max_speed_reduction = 90% +min_fan_speed = 100 +min_print_speed = 10 +slowdown_below_layer_time = 15 +start_filament_gcode = "; Filament gcode\n" +support_material_interface_fan_speed = -1 +temperature = 210 +top_fan_speed = -1 + [printer:Sovol Sv06] -bed_custom_model = /home/bassam/3dprinter/voron01-related/Ellis-SuperSlicer-Profiles/misc/SV06BuildPlate.stl -bed_custom_texture = /home/bassam/3dprinter/voron01-related/Ellis-SuperSlicer-Profiles/misc/Texture_SV06.svg +bed_custom_model = /home/bassam/3dprinter/voron/voron-0-parts/Ellis-SuperSlicer-Profiles/misc/sv06/SV06BuildPlate.stl +bed_custom_texture = /home/bassam/3dprinter/voron/voron-0-parts/Ellis-SuperSlicer-Profiles/misc/sv06/sv06-buildplate-better.png bed_shape = 0x0,223x0,223x223,0x223 before_layer_gcode = between_objects_gcode = @@ -2384,7 +2558,7 @@ cooling_tube_length = 5 cooling_tube_retraction = 91.5 default_filament_profile = "Prusament PLA" default_print_profile = 0.15mm QUALITY @MK3 -deretract_speed = 60 +deretract_speed = 50 end_gcode = PRINT_END extra_loading_move = -2 extruder_colour = #FFE3CA @@ -2452,7 +2626,7 @@ remaining_times_type = m73 retract_before_travel = 2 retract_before_wipe = 0% retract_layer_change = 1 -retract_length = 0.3 +retract_length = 0.4 retract_length_toolchange = 10 retract_lift = 0 retract_lift_above = 0.2 @@ -2461,7 +2635,7 @@ retract_lift_first_layer = 0 retract_lift_top = "All surfaces" retract_restart_extra = 0 retract_restart_extra_toolchange = 0 -retract_speed = 60 +retract_speed = 50 seam_gap = 15% silent_mode = 0 single_extruder_multi_material = 0 @@ -2499,8 +2673,8 @@ z_offset = 0 z_step = 0.005 [presets] -print = _Ellis_PIF_45_Degree_11mm3-SOVOL +print = _Ellis_PIF_Standard_15mm3-SOVOL sla_print = sla_material = printer = Sovol Sv06 -filament = eSun PLA+ Blue +filament = D3d PETG - Red From 0db62e01f3912f7df2509a906bf4e5ea6bbf2181 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 20:22:40 -0400 Subject: [PATCH 44/57] Added FAQ section. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 084b6e7..6295099 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,12 @@ This repository contains many files and folders. Some are *necessary* for this K If you found my work useful, please consider buying me a [Ko-fi](https://ko-fi.com/bassamanator). +## FAQ + +##### How do I disable the beeping at the end of a print? + +Edit the file `cfgs/misc-macros.cfg`: change the line that reads `variable_beeping_enabled: 1` to `variable_beeping_enabled: 0`. All beeping will be disabled except during gantry calibration. + ## Useful Resources - [Everything Sovol SV06](https://github.com/bassamanator/everything-sovol-sv06) From 95897311e69b727e2c6525af3bf3f0a74736c54c Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 21:08:16 -0400 Subject: [PATCH 45/57] Filament runout sensor code merged. --- README.md | 29 ++++++++++++++++++++++++++--- cfgs/misc-macros.cfg | 10 +++++----- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6295099..6b7028c 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,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. - 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. @@ -24,10 +25,11 @@ I am creating these files for my personal use and cannot be held responsible for - [x] Replace M109/M190 with `TEMPERATURE_WAIT`. - [ ] Get the Ellis `TEST_SPEED` macro working. - [x] Add information about directory structure. -- [ ] Create FAQ section. +- [x] Create FAQ section. - [x] Get filament sensor working with hotend PCB. -- [ ] Finalize filament sensor config and merge into `master`. +- [x] Finalize filament sensor config and merge into `master`. - [ ] Create topic in Discussion section detailing how users should keep this repository in sync with their own Klipper config using `git`. +- [ ] Explain `PAUSE`/`RESUME` extruder behaviour. ## Stay Up-to-Date @@ -160,7 +162,28 @@ If you found my work useful, please consider buying me a [ @@ -122,7 +122,7 @@ gcode: [gcode_macro PRINT_END] gcode: - # ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 + 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 @@ -190,7 +190,7 @@ gcode: SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro - # ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume BASE_PAUSE ; pause print @@ -217,7 +217,7 @@ gcode: {% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm) {% if printer['pause_resume'].is_paused|int == 1 %} - # ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 + ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value {% if etemp > 0 %} From fdfdcd6bb5c6dd88da07aeef38ad108b01741651 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 21:12:30 -0400 Subject: [PATCH 46/57] Updated FAQ section. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6b7028c..662797d 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,10 @@ Make the following changes according to your needs. | Disable sensor | `0` | | Enable sensor | `1` | +##### My filament runout sensor works, but I just started a print without any filament loaded. What gives? + +A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps. + ## Useful Resources - [Everything Sovol SV06](https://github.com/bassamanator/everything-sovol-sv06) From 77468d319fe923a6584f1de3cedbc6c49faa3a07 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 14 Mar 2023 23:51:14 -0400 Subject: [PATCH 47/57] Edited Sources section. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 662797d..eb8a20f 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,6 @@ A simple runout sensor can only detect a change in state. So, if you start a pri - 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/Pr20100/SOVOL-SV06-Klipper-profile - https://www.printables.com/model/378915-sovol-sv06-buildplate-texture-and-model-for-prusas - https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles From eaea54e330653a5824762c5d77b26d484e49fa47 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 15 Mar 2023 02:03:27 -0400 Subject: [PATCH 48/57] Added some fun gifs. --- README.md | 4 ++-- images/heart.gif | Bin 0 -> 7629 bytes images/party_blob.gif | Bin 0 -> 85253 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 images/heart.gif create mode 100644 images/party_blob.gif diff --git a/README.md b/README.md index eb8a20f..3f418d0 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,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. @@ -156,7 +156,7 @@ This repository contains many files and folders. Some are *necessary* for this K ## 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/images/heart.gif b/images/heart.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0f10b0029af8a1dab70a11df6b6bedac8cb2f32 GIT binary patch literal 7629 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 z zU@-eYx~0g1V Sk%<7{E6O#%!a_Fctp6`y{`H3d literal 0 HcmV?d00001 diff --git a/images/party_blob.gif b/images/party_blob.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8fee563d9dad8e3cd073cb0a7a22220848d6669 GIT binary patch literal 85253 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 Date: Wed, 15 Mar 2023 02:13:29 -0400 Subject: [PATCH 49/57] Minor change at the top. --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3f418d0..dc42113 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ This repository contains the Klipper configuration and firmware for the Sovol SV06 3D printer with completely *stock hardware*. -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. YOU HAVE BEEN WARNED.** ☠️❗ +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 @@ -156,7 +154,7 @@ This repository contains many files and folders. Some are *necessary* for this K ## 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 From 140ff8cb30e78c327f5de93c2548ebbe21dfb247 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 16 Mar 2023 15:55:18 -0400 Subject: [PATCH 50/57] Added KAMP to to-do list. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dc42113..edd1e52 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ I am creating these files for my personal use and cannot be held responsible for - [x] Finalize filament sensor config and merge into `master`. - [ ] Create topic in Discussion section detailing how users should keep this repository in sync with their own Klipper config using `git`. - [ ] Explain `PAUSE`/`RESUME` extruder behaviour. +- [ ] Integrate KAMP (Klipper Adaptive Meshing and Purging). ## Stay Up-to-Date From 3551f307aeac3ba4cacda4c7286c61a2ede77362 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Mon, 20 Mar 2023 01:04:36 -0400 Subject: [PATCH 51/57] Added beeping on colour/filament change. --- cfgs/misc-macros.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 73ce691..053e748 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -178,6 +178,9 @@ gcode: [gcode_macro M600] gcode: + CONDITIONAL_BEEP i=1 dur=300 + CONDITIONAL_BEEP i=1 dur=100 + CONDITIONAL_BEEP i=1 dur=100 PAUSE ; Pause [gcode_macro PAUSE] From 7571e95a5a0969800d6e3c45c5d5c7ebe64e5728 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Mon, 20 Mar 2023 01:12:05 -0400 Subject: [PATCH 52/57] Updated FAQ. --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index edd1e52..ed80f86 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ I am creating these files for my personal use and cannot be held responsible for - [ ] Create topic in Discussion section detailing how users should keep this repository in sync with their own Klipper config using `git`. - [ ] Explain `PAUSE`/`RESUME` extruder behaviour. - [ ] Integrate KAMP (Klipper Adaptive Meshing and Purging). +- [x] Add `BEEP` when filament needs changing/`M600`. ## Stay Up-to-Date @@ -159,6 +160,14 @@ This repository contains many files and folders. Some are *necessary* for this K ## FAQ +##### When does beeping occur? + +The printer will beep upon: +- Filament runout. +- Filament change/`M600`. +- Upon `PRINT_END`. +- `MECHANICAL_GANTRY_CALIBRATION`/`G34`. + ##### How do I disable the beeping at the end of a print? Make the following changes according to your needs. All beeping will be disabled except during gantry calibration. From 1e13d86eca87b77c35ab899d77073c43da1af707 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 21 Mar 2023 02:34:54 -0400 Subject: [PATCH 53/57] Updated FAQ to include SuperSlicer related questions. --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ed80f86..3234f33 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,14 @@ This repository contains many files and folders. Some are *necessary* for this K ## FAQ +##### How do I import a SuperSlicer configuration bundle (`SuperSlicer_config_bundle.ini`) into SuperSlicer? + +Please see [this discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/13). + +##### How do I print using SuperSlicer? + +Please see [this discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/14). + ##### When does beeping occur? The printer will beep upon: @@ -168,9 +176,9 @@ The printer will beep upon: - Upon `PRINT_END`. - `MECHANICAL_GANTRY_CALIBRATION`/`G34`. -##### How do I disable the beeping at the end of a print? +##### 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` | | - | - | From 37be3998d8621ffd36ade7ef366e2574b4d73f76 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 22 Mar 2023 14:43:39 -0400 Subject: [PATCH 54/57] Updated flash firmware section. Added marlin.bin and updated klipper.bin to latest. --- README.md | 23 +++++++++++++----- ....bin => klipper-v0.11.0-148-g52f4e20c.bin} | Bin 24244 -> 24244 bytes misc/marlin-SV06V2.0.0A_2.24.bin | Bin 0 -> 233988 bytes 3 files changed, 17 insertions(+), 6 deletions(-) rename misc/{klipper.bin => klipper-v0.11.0-148-g52f4e20c.bin} (99%) create mode 100644 misc/marlin-SV06V2.0.0A_2.24.bin diff --git a/README.md b/README.md index 3234f33..28965b5 100644 --- a/README.md +++ b/README.md @@ -50,17 +50,28 @@ I work on this repository all the time and a lot of new features are coming. Wat ## 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.* -1. Copy `klipper.bin` to a MicroSD card and rename to `anyNewFilename.bin`. -2. Make sure the printer is off. -3. Insert MicroSD into printer. +💡 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`. + +### Prepare the microSD Card for Flashing + +- Size: `8GB`. Accordinig to Sovol, the largest size that you can use is `16GB`. +- File system: `FAT32`. +- Must not contain any files *except* the firmware file. + +### Flashing Procedure + +1. Disconnect any USB cables that might be connected to the motherboard. +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 printer and remove MicroSD. +5. Turn off the printer and remove the microSD. You may find this [video](https://youtu.be/p6l253OJa34) useful. -⚠️ **Caveat**: Flashing will only work if current firmware filename (`anyNewFilename.bin` in this example) 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 diff --git a/misc/klipper.bin b/misc/klipper-v0.11.0-148-g52f4e20c.bin similarity index 99% rename from misc/klipper.bin rename to misc/klipper-v0.11.0-148-g52f4e20c.bin index 87c01e2e3e658ad8ca0da5fcc73ae013017e8598..b0bf091455bbecd0ddd0152348383392ceb7c69f 100755 GIT binary patch delta 33 rcmV++0N($!y#chn0k8#H5<$G2Zjx{v^Kh0=UjGZGAwf{+YRlHM7h0VJ5?~Ng diff --git a/misc/marlin-SV06V2.0.0A_2.24.bin b/misc/marlin-SV06V2.0.0A_2.24.bin new file mode 100644 index 0000000000000000000000000000000000000000..fd450efe132bf83c46746abc355d562b68e12516 GIT binary patch literal 233988 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 z zR6j0%yq*`}VyJTzcnLG!TD0D}XfQE*NRs@Ao7d|OQ_BY97)rp~zR)4U7G0R;IFEmm z;~#ORFvD>c|5=VR@zJ$)@P#XPQ*YDNuaZK}@i*i$I*!Nx)mBEOjx7}h)F)2E8)|d8 zU&HkrZ+>eIc8c`Md|x)WoV*q@WWd3Mzdx(i0*{vVkR`CPV-zHf&5&#|{FyarQduwq z^e4lI|5i)D)S2#0V9h$mf`4AQ!*`%;5rWL0x`pftQz3_1d(0 z2NO5+=Uu7O_VPII;XVR;LHb8yuhgE4+7ASCwc0IO?G|cjoni4U?cmYs|4%#bkVQS+ zfUlm&DDU|=oeSDF+NP2A(YCEa+y1qE1&IF{;%PhKbKQ_B&aIzYLqg5~bCH-EyjAPB zinf+HbLP~L>+XvZ*MG%s^jAo>wRtl#{248^HO!28ia=_-A1igif&dXdR;nKdY-D!+ zSs~;d$WLzp?f{Kk*GHzTh~DaTS07IH_T*(UQ>m_+3EWc6v@wC1kTW;KGB6kZL+e(} zCkrcHOm_F;d$+U22wQL0kh6u_d}BjljM20j8#T+567proJJ1^6F=-@?ar3eH)>)d zY)*7MDa|lrOet>M4_E}y#{cOYhRy}W4LV07xI)MOmM3tQ=5b=mMwreWof|rTDZlH% z#2*#vcRiRmtWdw}!Ndy+^}8NS98{>^^yR=FqCMC7~$g$k9{(f_?gN$b0gHtf1hF`+@bF&y5u*h55dRb zn|PY5FHX6)b*tgepTpF$*lTq!QlHYX*u8?mOkl8Wz221_!y0O-2$I78#?Cm^=FA%c zt=Cm1;Mq;Rf3mS_!GE%lYRIS#$BlLw!|Xv$Va79#JnUtEQ&VlBJF^Maks^6kzg=X( zVW#Y(e~S3SqhU88h0l8Q?-kifQNwht23jWF>xU9LwKO<#GJ)>rkV&!E)7BF^=RJlV zusGL2^+Ba{e9(_+PIGwl2@|MSfz`Gs*uSwG-g^SSz9wz6JB{Js_m|yB*PXUU1)XyD zunBuOVE&9w$wz7@pc7bL%L5+1RJE)92_u)?o&3 z;gJ6^M1=hg%6B;AYjF~QKIg-loF~=7f*Dv{>&uh2!KTTw+i)^w7xh)*c4_`5%P^Ka z#JfbO#2Yv^u0$ z1FY~-57mcv*qpbrJ zl>c{itp8RW5B$eE=pIcfsowg3S4Yja>R9j}>!7wnQVo4?FAgw&?5+K30wfCeOJk$`#FwKI8dLtPuE%J*UAY+2PY-T}v@whQv-f z(8vi*_nyEmwcpp&H0j>PyJ*@oNISFqY?B`Tc{i2n@Lyh9COv-lfjenxn`-eAhfU(| z6n?-UZCUBrA8%2wvRZ8UB73>k_R?qk-Gre4VGK3QnN|T{MW=VEbP5gF{O8%8J zPw8e)MwF4~E9tOq&qf{Ee!7{F-&DScrzo{s94CAF$|R<&%=dPj@L$G%h&Gm-@0mqU z15Fh7DSY6UR;NT{n}XWOk#3SjqBuXNoj@zc*8)yIz!RbDMUTsOAqHIt-RC!slV=kU_Dp&$`b>-XurC zcT*{~jq=gUPeB&>d{`D44Qesk%gjiN&Rdx+&(7+LE`T?%p5vl=VOJBC?X#QT4z+sv zVg}T*t7$>A)qSWxAiLAPUB2mzI_SPs<)QY9J-$;uBY6JUa2@VT^;hCYAs)W+nrs3; zc<%{`=;&VK3{vTPQS;HB3e2IZ=|JD0bB;c^FU`C1eKx*-YWVw-^Xe?>=TBu8o%6QX zt=_igCp_~`T4gS4PRu3+u3=o5PwwV9GwP>Fe>uO-B9&dy0Uic5S0iJl?%rJJGC;l;KlSM8GJkVICuEpK<6TCOI-YB5&Z z+>SD7a;?tZ)RjpJ%(t3mUkfW-ViA~7th1k z=k)Ro{ZSigwdwR-1Bo|>W=J`hy|3Z}i3q}&(O#017G1V7x0mFy(c?-0eroB+@m3t= z+G!nzn!Qc0MZ4l7<3-mC`RGU5ysJjcy^aMv)x#r8SIEpXM5lruQ4>DRm&M=7i_ra( zhTeykkIbDFW84E?k&e9_e&CQ!%tC%A#<(GNtv1HqlShm-7~$>q)Cd>X7tblCBRrM- z8agSKj&iA#8ewTD;LzDiF+St95iZq6n2v7+#*4~`(=d{y9jQFC5vM;SccO2rT+-gA zF*S?nxUbr~e6RiF@^3~}XE&q7Yv~L*ToN7KOpFQiq=kQvr`KOAy>)|2`i&=X5;}z; zol}XyA3gG~<3q=W`hmJH-FF4QZbaYj9qxO&H$z)jqv^WR)&_m*v#>TCgr_TPWTmCX z>R;EI`_k(ky4Fr#SqE=>s2!fJ4>b|h#y54A_Eohy=)NR+=o)SMY4yauH zoH`fhO6eMD^SLkGg>tEu0r3%&mM6`duC;a4Rc)Pb7N)9Y(E7hBrQ@V3kh-)Hfw>!_?SMa`p6fIx};oYfGg{KD8MB|{jBgOT@PCQ7Q3igLTtDqLQ`FzYR-O(ng zd=3M@%?25s7#Pn5YMBIY`C|Fh(&l45fi(hJaT!{>52M#XH?Rfk?t|zVjqZJo*jRKL zPRH0r9q{3FfU7vRqj|FTy=LyhPD{mwjZNI;K$FmTpb=|eO;h6;>1-pVm$hg`c(@E1 zWxRkeYo{q64B-2|N?5;OO z_0Ah&Wb%|c7WQ4np3?11@KMcUU%#^kb_{xUj-YZ)?wVW68R+vD22NSvdoV|emE9k*Y@LrVP$om;Tke10JL1 zui64W;C~}OQA%(q*&{Q~a?}bHLp}tLs)sVy0@VIuEWGM zK+i%T?n{JI(i;5ny|4xm23|lIyB4enVhtYaIcg5b454G^oCuz{1acBmGdi?0aN3w2 zu@at2r2Ismv<${1a0yYLql|E$y8oUCbp_V^F8&u z`eNWb2NJgr6@wdMFRxn-4`S8Y;erPWaV1YnDD{X|C#U?N_6P7c667;Y@Ih;`fcA}1 z3S>}LXx=}B4m}F4>sLuNArGkutMWfagUEI*#rJ#q4;k66#R%={Uxm;jgnrpS4WZi+ z+S-5Ez;@k+(3bw8L{eRV&<6D5=l$~$T8Gf4{<#R@Rc2swk;fDM=#NO3E zRb(coJ7$9ZR;ks9Y3xr&ACETPh?rcJj@Ck~j_(icR_;a{eJtkyf09IKTE2w1X$G7b zhTg96n;23!5_i3KnQyc_xj$3R$LN>UT_=r(Z;;Sp>#)gh4v^qv|8;fO!G2x}>#uEK zmBjme2#p;GNY8Xrc;7xP3b z?gzP387p7cKUTi4e}Z>HE!j1pW}=tKqx+rGQClYNoPq7foA0Mw6#U95j)2G6+=Kfh z2;-(Ypu8|=asbKzvjMjQeh9b^@C@KJKop=%ApAdoZF z!;?_l!SfvQQJqhQY#x|WlP=|UOo0``9AtPGbRsTLGgr`AS11XU$AK}XQ`aD-r-PGg za1OQHZI!=#mB_#A6TCt-JbdJxeauYQweFY{JRjmQL++tOJl#GXSZ^OH#%%+Xf88{c zUpJ{Gzpk+5DGwXPjVitm;?~;Ij;y*gc)JOee?~p*DI!?>e~w$ACw(i%6z2MEaw%@a zu;E?|mbb~p12*|L122P)(J`X51nvEt&I9K748kws78lwt&OvvEtop3FNBfAs7*c1e=oO<1IiB{@I`FeayeiU*I1HPn>bMi)6g~C2oV@#RB=aL!*(0ktg+y@{R&FkHQU1 zI+s3{S)GA9d`v-35d0bP?V814oc#L^+MhqV2tOeo_a9*{DBfia;~CB)nh1W>4{MxA zz1j)x&?pzDQaRi0kPq}ZgC%x~BZY&8ZX!0w#68klwE0kl*V|cNjp;X&L&#pByel+QUOMAH8eCE>{m4AQL&oYeA_m z4KOo53#n6V(H!VKO2wOyE)S*3dA`peraMyQd@?{wX}+qINm?l%$EjZ!J^PL>?cck% z<5r^GeNpH(hVAm2Ay!~TvWu(EKwBOh)-R{lHRa#2N;1r_a9$qhqqY_76Oi4&Lsw&6 z((soE&p{Zc(H=9>eL~C*no!awD!DENK4uF@M?c56G+MwQ;q@=I{%YGVCW?Ry|XY4y(ra1tm|gt|)s zH)?IriPNSSPEO;e%^XS`9T+da-~V--+L>P(pwiTM`Q4Yy;Y!U~ZV$d4Vo~}St$nGn zRKm@Oxm}g;zd)6|66nw*NlnyiEx1{|Q@Rr=BHmWi<0OyzywrsE?`UmxsgosQF9qJn zxW5HERN#9^D^-6m9Q(NzyEU)~v6EE#?@*sb8s&gHkmi;j3Z&km$$8%SwRG&QxCu&4 zj8+?vJ45?7sdF@H(-N((n}b-QPC^+@l<|wCyQ3B{i6J^#pAFFw`Z8HHrwVaj4wZr* zSkmXRWAdKS0t4q?p2gIRvtf~6Q`mcoXkyUU zS7NTW0QO8K{BQ82^Zziy6bGIIybm}JxD&7x@FgGt_zblBD8TYZ&NLA~_cSM-kKwtU z(t4!re3>(ak@pqAn}Ab*PXM<8ZbIJja9Z7@))JgG%8b4nVeG_iliO9Hm6W`z`EoF2 zwvYf#{8ylpupEFBF^7+aGNIiI^;dW3Yab6;S~Dsw0az1Svn$g=c>#0h7syNV)3t1b zZxMHK3%9u0A!qeDaAuByS7S;S@B!9wIr>S2%-RJ$i!USf@8!BzFzL0qxFalgN`+zu zWCBb8-ITqaZtc9Wg7Qt++j0Sf9NmyEmctu}duz)%j^ubJNjve}3`k+q5Bm3a6b;XI zpieKZ7{=5k{c}6)!|^}q(|gDJ7EufKBp!6l-Mo z%qMX1T!)CUq-~+HOulc4Zy$7%OZ@pb$3h}9%8=EyZ_%UM^JSlR$}qOBQVgOXKdchF4%lVF-Ck2;i#3}N-%o`A(uwbWGk?i_o99p+kV*fzRSC6>0z8R?S*J zJBRGZb7TlMX0jgsLL}`saXRO8&K|>j(YYtY?cRx{s!8r_@i!;3c@t27X97hdcpeg}QV)NQ>A_@Ew)stl0A|LX%P!%?BrO z&~shXD*vTlXc)z#95_))d#HFVcGtTKYBTJT$CN58A3-EgtXRQq|nypz(93+SsK_!|IF8nPSD z1ArF+6z{1F%lYXJ`z%gUn6+;x_f=R=wW#0(fLCGMQ+P|v?wtUy2=MsYK5$$i&@oN% z6=-<+y21x-TIjG+`f_U3+2sy(oOfKU)i(~j?pMKabqr6>K>a{^3Zr+g`n%vPk^!atlxETC6ZP^u%df7Anm2m$XoWqSw|l<@+hF zWs3B^p6VpsU1uk!;9jqCce{O>B zXRn0ck6gGC{%fQQVd`H_bsUVVB$`*B7bHSnt;=WeTVW$`;fw}x*-z)z5$A5?8Go7? zzt@v@dXMMb2-WN~^!EEX_ygs!Z|8FtUt=h2CFV-z^0HM<-`3DHevEu9DM0QJ{IC<_ zi+FrD_PiIdmJR_ZPY*BDmZk9MKip@6zUDA($&5XoXCvqp)x~J~m;uNWy8*@Erpw`t znpuzB?)!s_KqGdkY$*xpX70!Rl18sH0Ilxj$8dgoCEX*0l|FhVfPVWdfYt|1c5BuQ zTWF8xY4AGmXxj*V2==&bkW*W;!73)wXd?fyDhDyH^~mthHXMhl_a zFA{Y~ISY=g53tA9L0fc}qQoCi$aWgTxQ<6R$1efbM`THeJ8q4qA#crk19*r# zFd!M=P7X*1YGMexPj2WYi*|H=rDxH(Hk>b#=g-O`ltH;V0lB4QpU1}{=6N7!3 zH4XA+Q1mm&=U38mFXdXFP9~pk%9pnftU!w{_ML{ci=PE}EmgM<;r$fcpkr0H)&<1f z3fZ3}?toK7>9Q~al6xSyuMFCBir;&$9aqXV_a{P(MgR}@{f-b<#Ku(nhD z>of52qH~|CtrewVtGF3+d`4w}n`$C3DAX3xQ;PN6<-00;Wr7d8^(syPX6<+R8DYCP zVNRL9tY!USipy$38Wh&L4nyj{CRe&<0Cdy4KGKObZS*hl|J zcGZdtaFZw1zJ5MPN{k=T)Rw{2-MU;YsK0Q28 zHs@nS4wTimc9cpdl+4mq_&4!R-*wd&ea*h#`^L(*4;+?Cst+PGZ{Qky9l+PO_y0}F z#LA|$;AaEYpk1Q{-hNqnOUWeXd{((@05@`Kb^mvtn)p35n9K~pUofnDXJTXIS5=|q zK#;~xfc&R#&)+%*o>73|C&ggsj)6@KPh>kN)+qT_s^g-u1 zQFisc;(#w1G^&@NQ!=?(gx0@o>ZISjt9?5P>*=&1t4mFsRWqu&mZib%%1hv`jj_s7 zl!Fm6c#V)x;Ej-YN2_Im{N5{cZO}5PKI(_S3HZfVPmq7sM{vTL<}Jk>jT;^flw<*KxiwrI9GZxn$ZFTAmUvt1GJ)u;1aPBAg;NMHuj_LW@z{ zqP$dktvBn>4}hMOcuQ)mSp5X6pA5LX@Fi{Czv=9z-AYHP@tq&^5KiB1H9UCENG8`7 zUT=Ko0fZ*i{;n~nWqFUzvIV(vf)42Unwsoh2foc|5q=K3(%STM9;2~EnORCpTHbSv zqj?LEQ&=%ZehPBJ8_J7><~UM{9kzw$dcEf;yS!%>H@23RzDfHcb?#*&_Ho)L89?Xl z1olZn{GJc-T!D8#;4&R2@SAj=DGy5NixqT+@}#GcM)z4tYrtnMDLfNwfZ15jE< z=aPZ6rzXxt=zDoM&r5N4AJvJ-qB6Edhv&I|(ve$7YeJovO&a%i$dRNl3wRF*j67}f ze+}i!4?@F9Yt*4eHb%7~*_xbzbzMz8NGHEc+egUS3X1<%<2h~5k`$e(_)XpK4$)EG zSG^a0c>8K`3c&A)SXwG%6Hc_!l)bgshY&X5j`SD%Zsw;2AFWA$da~TxpZ>H-K7hD# zerL^##YZA9I%xbkE&kWa`=A1kH&=^1j=}}RZPg~+-$Bbejavr43d{jzVxQyX8wWVt zP(&W>Py9Z)sfHD43IC&&@Lvk0UUqp|e<0{aDUK^SA5E?u&Kc5jHY%ccFUr40F$zDa zEfp>PpVV6XJoX+&AdlvY{fYaND~G?>t9?Y~bznEJmblz%q>b}L8t64-Va#}xdliHC>u-A=Yxt5fNt?fo6ji@aERvp89c z`$~)3r(Q!T@Mcjo$46=LpK9?tR3GkO9zu{@Zni^T}bWPJWHnW#AeT=kc0UFKppVIU`@1jn& z`dCXwaJ>AxBmOG-ZVqQa<6~ynl=zYIMQ zwA%lGb1>#QoP_xS^7N8j4)JhkRE-n2XV>?oPnjMu@oDh-lRKNP-4@cHFls68K0V(X z*K6UM`waY7@xVNWw7tTaehWAVfK(GO2RV3P6ys(u$lK_@3-MH@oFF&AE^ols6R|@% zaS!|id4{?LI*y|uDpRUz7W5!GaU;%RO@J?RYR@3{iSp@=3GiUAl{N)(GB>SyXYK2& zwn^+pgjc_Vdl}Q4*~W25-?nYjrftoe8q+th_XU;l{C+@CnTY2^JneYe`IsW`M*%VA z8a%JT(}kytPhZJ4)vok3r9Z;{{GFArH|_BLz`x!?1^$g zUw3>W^h;mGC&=H&$tn}fjK6q!g8adt690C4ORluV6kY^Q@jG}og%=}qlNMTn&~z;{ z8=>nE$|%Cgwb(@Yd#L^YQ1&J8O%+|=H%;263*CY4B;6=<1qzf+S_&a;3S|*wQ(FNI zn^r}wfReH(KFVXYCJqQ!y~1)|_`3rOyk-0y!TX+6xY;YjO=MvhUXZD^CK)g9JO@gypiFYe-+Nzi0#HX z4dHH_lM(L5xevnKI7cDejdSQ#IO`bBnjV}dGn_@Qubuz!cDHjX{|v*q#Y;HIUGk%=60cQc+EA)m-?`93QD$LDIm@$>!NeDeEP6F4)g0>BqTCCn3vLq=0XCAz5$nxGs8TFM8S$(PlXCzd zWhi5;GuxcqQ^v@v$|yt`UdU!)9Y7gZJV^)*6b(2fT!A!`oQ(r!XJEa}TRdWw;uW~_v)A z(yd7GGfR=BSX{RNJ{dQRg~}qx-JMdYU2Lq>V@eI;N)VT(+=RF`m0IUR7Wa`d7jc6T z7l)7sIsvGzOjcKmG6QiLhznA#MciIB-Zcr3zJPe-DS*7jYMI1JdQO>$xDdqsE|(+j zX;w=ki`%4>B2LCl&S`lZ;u=^j7vG>SdO#V4xL>8uT*Kh6Mw;XD2&B26mEDi!U#=7) z?smj|CJ#njEh~E=i@RAFh`9NPJ0#~I?j~0D2dwN_N(SO)Aa1w3-Ia=PtC(Jq-opXm zaa&j|zpNolN|nAy@rIaKk#tpxk*ux)R#%}Ci4@z#moxBmy?>$Fd8{og}v6*NtedBr9 zQg3?L%*lFT)*=Icm&^r($lykldEVyWvTwxq9h2DnXJyyOE0Al0r`}Wt|837oi_O%8 ze6!^hlevH(Ipm5Sx!>~V=J>OCm)I*&%a*YGrScNwvwDI}i{NkeEP)1ucH|!+FP_8& z+*ejxwzns55?Ww0`+`T=7o^MABTogmerP`3>zQZ4JLX~opCr$%K!+Q1Q zn%zV_h03>|B|iuw(}Fxt3Lf`pFMZ96_0%SkWCHYIKnHmV$KM$AcWE4;HbAqy)P7S~ z?PsJhfZiq4o-M{rWhLjqoi>~QEYC5i$PW!?C4Iu6pGpOOsD_o4!%AwEav0QdHVY*d z3#uD$?7(R*%d&}KkCW2K#XjauVQaJQ!NJC$$$VJ^{m>UPW_ zy7P|;dY3zflp~P87sK3Zqx{pQHbC0?0S0sTdM z=FEEtCm_6zVg4;EEmxx176ItJ408i3%_y}1ss;2`R@xd?S|906Km~b)Yd3rwVi&QJ z9IT{ZiDunhfZo7Lk{MJHUjlS7pwn4N*Rztk#ODCLQF;E1reK&esi3%x=G{A3-G;Fe zA7XjG7c~Vd5qn=7?O?kR+n<&E1&jR>u^fNcmQ+x}ziXpe_cT)UVYLiowY|7NfX5j3#*;F$&KA)rfh=AH#zd8GCsZs51q2spcTY?rC$)fd9BZ1?WDs zXC=#fT%CfL_5PTzSgE(Ln9tP;#MJp?{=-V0%1UijCm?2t=OtGO{2Tl!-ejd3S>89) zk%*b~f7vadSotwQc`3h4t-fn%&K$ar!}`^=q_JzBt50ay;B-;wqUS zI04J(fzj*kDB*L!5_@1|XKax0FSm7XG z7kgkqfQ1PA0Q;#27L5BwReck%?|Wb&fc>HF0qpA@SSVl@)Yky}vw!f8wn(i5%-jR(3)qe7a=@xGp#qE&^qy!sWsZg)4!Z1~(UO z3EVw!^>7cvJqGtA+%~vp;a-M&9nKE-Hrye&_u)Q)>u&d0e8XzkoK_$|-wlfa>@Hak zSZWU}9Iz$en^)XX;DhB4IZ?*9aP$Tghm;{|RGQHmi_jstmoXatTXHBgE}^Yu+{5DT zz8At*=pGi~Fobz;x5OB9^5JeRssx-|c!5^jXTf)1$GsrEaeNN{BwQC zBnRwN-7ml%W;kAyjmI_#6@`~tV)?aR=t+2`0s7~_tCyx}(CqZOhp^qRN!B6UOYR4p zpTwSXy_{lxQ!qz)-Ca^LV2^lF)|B47CNS7ZrRj2#j}u2ltP%(gyKrDoVSo)kZLCw1 zt{J=zzt-XYITd>4N&4e1Sg+N?k_VUbic>QRx?3}$y>j61PNXY@F1O6zaaN>vJJL0H z2io8XIHFfuEgSYET3aot)+dwPWnBIXtpR^Xwf+ON^K|4Y<<%cL#T{~oXV4QaE#{iaG!0``jsb=%^3jb86>zmki~>mSBW ze}`=QOAB)RlKQLLFa>Q`kKOJ+66q^Ra^8(%)O%lfPBQ zBF_=&pIfEa-zuBXvo3K6Yn2BWekqV!_}CV(liKNFAz<5h6U{X4;*)H=oPtHba6=QD zZNBm1u>JRVkwq`)Fd8qck1^jyvH8a33~!6&KUHG?t8G@`bfmaXi8Nxa6=_vEiT-*< z4D+{5u^0l_QKfGu@xOhH_iB2x{s4~X+`rG0t(Ys_v=8vD?!#+>y65N($LWkvDh2&z zgw6QN9Hmty;FVEmOEYd^7CVcPBU{=*F@w-z zXV`bFgofS`pcz&7bDrLI`m#GjJ#jkJb2(!#PkTc%YSKCIkLw>fM|KgL-k>?Z=^Vv< ziMUT$TnMwX*n2m{MY||&@@~zja`1{jhnUydI`OKD%m1o_%Zxn7<-gX(rHwF=^nlg# zF|(W4@CMbf=p50}y?0aiH-sG-iT zudi9SXxZ)S*Wb1N-uvpght0{nUL9$S;RkunxgNx?G+eK(N89$7FS*vj-zEOePOmxg z1=ni)E|gua`o@Rp1G zw*_eDW4JkR+V$b~fDgAB^QsqEm)5RZw|rgQDjT;DrR?_-Za*sLTs8RhH73T5sN=YF z$wgw()`_$Q?cuG#Q^kX)|onExZru*v)}&nee*_`iEQTvGwh1a4LM9SGbeG2Chy zZp-|*Edp)@47UY1Z&#q*R-uj2YL(Nkn|tH@TUM@Ivhub&@8QOxjAab7Cl!}#G=4n@ z%;*&R2r#3O83oLS!EXR&Mev^hW`mjkqpJ|gu|Kur3i{E!7=G}Pb0MKZ z@->MKG%8667<2JBV*c%?><4@?eJ@;5CBoFx4P| z%ikxvL%ONiEJBtqy-?=WC_ytI_C&m)Wx#;9sT~Xj6_Q=6#u~dGN5(Jy$ zLEyMe<;Q|&-vF+yQL;}4jmbJfZh_LDMf%xDGt{4c7Q&hS^yz;~PyDQqD1vNPD*vUY z!5+#&hdow1ah0X=|M8UAiKmQY-%=qvz_sX1o!|)T`*z#DU~XR7-^aWDdnUv&Im@pH)M652Q$lS8EdVK5Tr)C)1KO=^@iG z@Wih*O~p>t1Po{5o^qIzBqV`j5Z;r4W02{JBgHbp6mQiurt%X!NtK#ybuIm>FIX2_ zf2@wT+*D0+3+;RAK_*ARb z)F|W`^rn%pK{MOB7GY?lF9mNf_<&(seNwn761v5IQFr2tR!vRi%Ox%=z%<0P$eL{> zd1->~K%b7mN)TYGu^Oz0m@Vkrz~@Xju=-(BF0YVIPt(zVB}ko5QXUvx`=Nh*9pZ`) zZQZhEEXm3RL87d;Y5g9P1@e1)Ao*vT4ZQ+4B2TFFHCjUpxzJ*?f>xrI4``T**i>E- zj|n;(hqj`)KSb?TO+z%K#KEJ4b6POd4U)=VlE`L3D(@0!n}Q($lFE0A<)$^Pgbs14 zson>Z%Ax1LjMxsOr_#R^4Sb%=ZLvXbZ7T1SG+XLf=rhDqx>iVlQ@N`Z=pkc$RI5xm zpzq>J`jn^g%N6bbaZXc;TS>Nn$u~>|*CO#IjDRM1s^djz5Wev_30gwRi7RQLYD5b$ zS-UFLodp@;T<9mb(^X>n+C}Y3vH(Xu|9mvHFST1AVE>rNaS!f!&+$aUuMS;aKNC^R zkBJ%^bUSo?9)HH616{PyX12_p*H-c=&RGxI60ZNb_Y zaKhVJLlEny0Pj@%E*G^8&=v&jV!Sp}9nxOGmj|;p8Y9|Fng-%j)OklB?GO<%@z)*~ z^o7ADU4s#60viJ`{=by>*fpCFH#N!aQ3sWJOZ>4*)$0Xq4?cS4FUAIMx(1#v_UHj@H^dj^(d3_QXkUPLy&2e+Fo`9bndR2~l-xQ+? z6LO3v<{MM7D(n(yRrt=6YC}Yl2pAyotZ8fcqA*A_@FFFV_sdd;TEH z@va9_YMq+Q`Nk-evVpwP?ltVOhb5x>$%ytR*HYe13oq?lWX-WW2xvUpMj>@^Lqnr|F#9#tF4PZl5z zHYfnt_g9{P%)~l4@T=qN^Sq$WL#{F9LpA{GPjFgWcgh&0ieE9c6Qk22uuwIP`3XX1 zc|Cktiib?e@LJ+eDlx_KFH7C!#_^4KZ4SYm`Fvv%zBh_}?^v`!A!ID)8~Xwl#9%`` z-FdpKR8L=_vzp4Pmwdl_2}VxGp+Q+SJ*^tA1R9R~(g#WxU z8#4fM-&_j+r8*Vk_c&zGQy}ZD+ZNbBdWKT@BSPR-oqvt_NYHK50Gh(@S0UJe)kW9P z4oUMAeh+f5HMI-b2*0XoXdDVuHqEZr1P#`k6n+Qtc!hpgDXtTB+Y$iTtfpAjn6UQk zp?N}Sr%6^j`L|+jYMUf?i$uHyzWg?I4aPjJW=6?izs{6ddvh)JjUAd{f%%WLX@&;o zt;ZOEght&>bq|+lwmdX1tW2}z;cI=PU9Eb5qHny{mVS+KPwn-b`I$Yk`vy-i?vAEn zMdGsOv|S5Y?iomxV9v-!(_u#f&MLredQ-)bpJRqJS(?g^{2Z6wWT`S7`MFQ*W=nh{ zm%dS0Ubs=Xs}S;Mn0=$bZSpTU0a8|FD618`TN?!{XF<3{-Y6{M$`QI%p3+S9XrOIC zV+b;iPd?*VUok%wT7A-+#egZ}kY=7tI$hSvfsP~g7rU~x+Z>~FVveuEJPq`$GKZ!u zFv{*9#TEGNQTow|_t84@````?G@Ww2F3g%zi84mY8&F0Wa0oQTHKg)Q(27HAG_5-u z#Q2tF$o;)?$~6^fJ8^%p7!=Z4k8Aw$sO|ka}jVigP zi1GNsZOHSWlmQJ2(-3<%^iNF0xOhs6lx$)PZqmk`NJR+-#pp^gUjQAm7jH;MKCirn zWZ_10M>y$C|-$=5bYgV#q9D*I#M}wuRDCP`oMpryiYYHlWE;6QG&W zEud@hp6MalH)&JyV;Hy4WO5U*e^-9*T#Y5!>T*>h&F`)oE!D8XaZ1=wf7^K{$Km`T zntd8Lwp6%jtNb$_W?aCC$ z(Iwta60{rO;yo4M!R-{uhNeh?xbvp9w-9{= ztu6KWpifdj$A&+#))dx2xl8zjdaj_Rtv^N^bnSVxCVE33Q?D&(Hr;q4tLlbM`mWa$ zE_=I^Ea{|~L--I+YB@n$r9|knNb-M$L(*(Z#ElPE7>o9JLg3PSvu|01?_Yg6{tf)X z?idDLT5*ujBN=(^`5*5j*sp^AT+*&a|F>>%HDF)34*f~{1D(T2rjBSPTI(21it+Q+ z^p&Oc)aTekyZ6=Q_=d12Q~0BbwjjLWiIX{|+pEI17D9?w+Zgb83jdK3{&YwKX$el@ z-&F#(hGGveU>qD!24RJ%M(8a?yX}Zjyyv7a1(L8gLC!j|@rY2eCxvhJ&`jIoIgL~= zDg#W>4OGfb59OpbeI8?pAe*t{+DcRS>!A6T=<8X4ZB)Wu>D53jRwPlshwbdusJas+ z3v0#6QibKl#oHGbLxw&Dy1TfR0@Fm)oB~cdE`7qJL{q*sWVaUQDs^!1D^$lfQjSTJ<_kNq0;xj=ntZ=Lku>Su;rFFD{#o#q%*Xn& z`f|+fT=Nz8QEy0>I-;NS(4|Oetw?u4E$qAIK*$CTx2HfgKUT{)((Dg)LK>i4gv%RTfm(GRpHknAO`AGEg6SU{Rm?0==R zK?4Qklw5q>Mtf2QxZ7=*@fAXqWD_a?NrJ3~8IV$8qGLjf?9k;z9oKi-OgMMtO>_pE zKyP2t<>-!M?&z3%2urYOMENYFT8~r|w^pvMo`Sc~qpG2K2-eoQEkh5yWgl#* zhCWVOn{G#ZL}!8NT^GGobJ_Y1T$kZK;KB(nApLlb-W4vM6$6&lT0@}w8!gC zg!BfjLQS@N@V#743BT5+$+&A$jy1S(i8ZKkmo>04)gISE+BsJ!wRoZW@KVWiZKLd- zkJX3c>uqKDIyZQgraBi_dEMjGeWpc_7{@83f#}~^!hjvK8CAB@!`Y8Q?;TNSjR?;) zk*1WEuE5A&+OD_gyW;ds6VA2`0wsq%05fFO)D-9u(P4h?lV*Z41`id^7Be76p2FYg zaiV=?yeFfM(3iV(`rxjpFz5KA<7WxF$a183N@|}#8kerLg?7b-?(bRYMl(dXDPhilif_(3-|c7@EM_nPXZ4^FPxDi=-dl6Cd2Pig12O2 z{CuLA?Lk|t2z{U!?5|h@n}`>vq$PwXw5k~Xu|qK^KSOZ2801mv|L(Or4&ws*_Iq{k zyY=yqT=Wo(opEqAaJRvcd^FAH-O!~#^741${H95ZE7w8)tHA`VUi=T7BWo9yxIRf*ar|h7ko~VyInQZk=23P64{-(FX6CHXByR& z;;)x}0JUOTc`#sw3THP|r7+mdELDnPhRz7;%NxYR@*wye(!@`WV=L`6ob71_hbnvQ z(YT4j8X(3%>N|xGL#oJ1vRH>#ES8FHXfA|{Io#24+%z~t zDF-v`Bqu4k2jV6qncwK~>2eHUqiBbhq$R0+$?lIHsrstv(2{B}NbU&5fWC@UDXdqx zbe)-N^y$fxz`I8IXxz}6Q9o%-MNZxBJzCg9B&|j``K1RxzELm~YMrafgR##!)s>c2 zur{{}bk+O~cqtF+(?)u*V!x(Sir2l=bNA$W(~!E)aIaH^-wQlDph0VEQ1G$aF)EID zwVe{lQsle90bnRhvM*z$zNi+ka|i5?>H>}}GVAyvG1w5p@4_kQeA|$^jl$5vbnA@) zC0)m12KyWq8ZH+i$J5^H z%m-c9S)R83=9*SHvz#c_!(Jou+$BuM$RJvEpSK3TmkGh9a+KW4Mwb^dFykE+`29A1 z&xU?hmomXo%J!XX*>-?*f~4^2GH$~ToD$-mEuBPK-Dq@{3jRrror* zJui~Jw*Hpf@nu3rwd`IE>moxr*}YkW51N7A9%K0XjcB1r=yo$_{DBKi=D%=K`HA4RVpJ_A1Ox8ywO4L=Q4uwpcIL0ro29^Yidu zfg`#RYN8{K^ui4ZVuWyz1n?aS(k#I-l9hkAnIRD?y=5e(|^Y~!>YUmU!27Hsc zw0sTPbr^&1eD)U1++_YC)yifw?qTf7`?-Q(o}Z?cKCVDlb~>;pP7Z52-4?b!!A9|X+&Mg zkk6)DqZGbKm}-h?pl`_ZLvnEg} z!!$$0CcIlg=Z(%p_Xq<$QJbP0wzxZfnT4(1x(b8|@=e2lT)~kKb^F z<_q-yW$^rkrX?69_j-Y5!!vS1`Vifb=P9PYN5wIjQA%WAs9wfV0G0I&FRU1Ktz z;L&X>6E=mzF0X;cy9C*$?ZU7^P0{r6tnCX+ToE{U(&&Gx$QGd6DDM}r&c`AQSbM2CL|0PKTR-l>EmacZb;BPp3K)P zu);ZXoRG!+>iCK56c=ry|3h~$9i%&5>HHMb_c8qn`;Ut=oOWr7&N!Sd-}|BD{_LRS zz85ZZk__G<6dL8o;9UJ_4&+9UlGwC56CJbLn&iXn9m{Dnpf0F4$78f|zv@o#;gl195; zIFU|kE2@mo%L*i!nZOQyLoUg-M zf?9?))3WNZ2ogzKE6F)0Aj_xvXW{g`)Wp-Wrz&x z`}W;r|N5{anD{69FLqVp>)ypEgAB>;n_T@(H7;tYk)C=J=>i<)@tw_SW{w)n1RZv_MbOEEIr<>AUk;mxE6QkYE<)R_gd={$cC_V2gtx)H1ot-F7jSIt zvP{73Sdeud=|nU214Xh=EJjNt^R+lx-Qpa^==*AfYuK4SncpcEvUq}B=gepEQxKlY z&h*K!Z!wU?k7j539ky(iVk6GjbTcslDMvdq*ow7YOvgEZ!EmZiWw4e0bdXVC=X%g3 z>|CGB$Mu}+lkpBk=X%gs{&RgYe~-(FmI3ew;NB&Pf5gK*L7Is(0NDY~G|`;`xvnJM z=FuWgm?_oFJt2aBt{-BeRDDwtf2Ti3UqBx8CgQ&iXBB-@GJjb};urX1qX4h-egGa= z(ap=z_|*lyFG>8ho*-sDLXVX}bl(EY0HV7SQU;>?qztEFk14EaM+l%83sPk>_w@9;e z_#qQU+@lj5+wG44`kHqNQeRSPVFx(FQ@3#CGTo>SM}AJo@%832SOGFk7hJips~(!Z zav^S)LHm2$X*h5BX#WE>_gU_noCMoB3D%VhlA-@kV-M6q7W3m=d z(#GWQ3iE}9!CkXB740k3WVhUAo^RB{j_0lBH`rRW1hRRw-Z$Gk;C+tFhLw-wR`U)Q ztW&iHWO2snsQpJpsE)T2&%3@gI4dA8;A9QH!|biLaE7G11J#oI9Wk2!Mp(IQ8y7kx zoe$Q&enHzSVAsloGx>S8s}K z)0l>W=i1>lnu_4R;T?jnJMLMzNRt!LR)(?hrBn!r6R#?xZrY4HpF2_;$Js8vZ>w9B z%-<%+)-|SGcG&HMuG0RfeLvcsEb6?WX5iePjQ9Imdm8S|lKAIgyE@2ptt-!%01VnB zoU?I0K1+5UkZ!cpfV4qxe2sPIG91weL@%^s9LB>H!d(YPdjPHf zm#W_X2yWsBfZYy9?;k7SKLqy}+-3%AfIiVT%T_KGmdv&$@pIKjaN9t2R}23F=Fwtt zHO{8$%B6L%98kP8iLX#sSl8kmjCS0~G}7=DWUTE8hTWitEvZvO3@2$9(#|ct|+$U!Y?yBaZ z`QPPHi#0fKDPr(gEGP51f?)*qtu;-Y|H^#VhamoHg zG{&A*G&t=i^9Mo2-`%!y@rorzQ<;!fA}pn~n6oPjjHZ1ELpOo_AcYqv@$KGyHx(~Q z;y2)wSr14ubVv~OymB$d;f~^k&*T1Hd*NT9BbL$aeG>l;&R?))h1Ap{E#CJgtTpj% z<*4;GA(f97Gn|eivK%tkDmm6Hn6P>N;99W zNT~`@)tg0}gc=Vl4anmfziuUs?&ty*JVPA#v+jd69e*WKvr@BFjrSuBdDq#uM2Zp*s*-D__R%*WkLxp#$MB z;10o&%vJzji&MZMNL>Z+2?xlgK}@A4Ee59p9_NW9{v)(#B*w+>3SP4K!}!$;zkX77 z;8zQNh2qy~r4zp#_@&3M?{M-L-5N3KP%-94Io9TdaNYKA(t%s?-bhO%>~kiL)3p%~ zE%9f+-x|PA0tFY@!DWP4&N||+^SJYHLjsv~@Y!U81F1yR6zOt#SYszzD~j8oO+>k% zrGRfZ@NH6S7Kfq!t;(~D39BcS(~C)m-s6gK3E}l`hSy%fhu5vh`@sJLUS9$)&EN1k z4Q>vP`#jr~WBGvp3tpkXD-?KDsx?apkIBlj437%s^parwHZgpb`SE!axEzP0`>8Cn zksfx%!3liXT0m{2XKi$>l~(=da2w@u?}Fv6S@YZH)1I|Oj0fa7F%%G@;vZwbw~9fQ zrun21?;-a4aWTNsKA-qzsr{&L$UZ&2$*6d*GAv5s+pr5n12a)JE{%f!hg`EXvXVl) zY_!rS_(iUbftsnhsr-YiRe4Sjhg`;L4u%@V(WzAJ_O&Jt5Cvlh(4 z@7}CmQqeCo->wm60~W?$xK%P~04oya0HzUjChEZuKm!0BAkbcZMIe}pl~W5?KjB(f z8VfCN!pNQgK5?2M!I-;S_D8Yt7sEZGB|4qjk-m}Mu$SVSqhM_`s?ypLRUW{}v<*@8$gqBCaJxvX>~J@e;vPjKqQj;zV!4MjLF{u^)QQJ{RDWV(Qp z_%FQK&;?vnOF5$X*IS{J-B>2{FQL`$CvP?5ZlG`$MnMvv?&*Ua&*13|?x0)~wf@aQ zlRXw=G7Q}59XM}o!2RJjIB%^J)a*Y_c-%Ij`-Ss!@LYlJLi|V0pP=uJ#+#lC=jfa0 z8)&Tx*Za;$QG3ThGUu`yZ-=#z4RE$;`27oh$KiJjeox2mGir%F8e<}xot4s{TRaRp zOQ9Lty0#?*7I>Rs{YHe29cs}~wCF3|OtfPw=t#kR&`W13()Icj9J@yWK2M{ss7;Ia z2Jq1yU209oAj_ahG~;XqeVw?&DBrq@8(88jK&@-z*N{vCG@gcJlT1R!RWb=-)p~2) z0oofT7&Fb6A$Or;(hF$__wx=F<4TOw{|vJfU^b6ob_c`kHg8s^Pnsc=q#3v!erblU zkLPD=AkFYOq!_+%g;pPNkxT*EU*sH_LL8Tbx504q&Qv8F_FFTelK4s`)PlDf&bKz| z(Y9C1I?#7Mhwmkw)0ffyQHUpgT1{GSjM7@{cX5>ge4=m`a=W5C8(LmP%q6@tVof*- z=~WuRDGVAahLu+X8VB7AG=^hD1JbI{VnUWig7M8S(tQ%@BAwBDS)I?1N&Fph(Ec%O zzNnAU?~Oyx`Bs15%C@g{3VL}cdR>97vR;<<>T>+fQw#BXm>P<2?T{f4P%|FTGzQI4 z0|8y91XyO(bgyYtXXv-jk15_uW9CyYv=}0PkqRAYj(8hcgHN-Rgv8fUT?g(vSXc!tKE!1}UL#Lx6Wz}Ubb5JQ=mksD zkW=WEWU>}n)tI;{|@|PaMV}l z;QRWg5Bg^Z-phMeYC!Xe?gjonnki5pl?lE+()jzx!l1>1uaCybzCJ1usE_il>Z7Bu z&w3tp5U=QyN~*MsgD+TsgFW>`Y4=1XM3rS9P-tDM0HYq zQG2Nu1dqOXGG-X>pVvF^Vm8OY4Gca}US44ivFdSVg@p;*zwCnhoNB`SIgbA{8w9+V z(wbZb*q7`~@q>$2jxRkn;FC=Juv4LvnZF(9bhC35qw{MJ9_JikIZ=HrQttOOAZ2h* zO1vLtk8loVDJu~k;?$(&Tas%MYiWggo|Vgcy33t_bA2XDJ4`V&Ytqs!Cy=rXDgW)M zL%AIuBTgAfutCyp@5j=m;f$|IOMng5#M-Ds0(1f<0{7e1eJ;UWr^X|^MEwNeJJdc1 zFI3wRUJ8xuQ6;hXeLd{BC9+)zwh~&}9b)&LFvd_27s|>0u~YjW^lQfQ^23-5wkP8) znDYl|-uDIE1a~Lg6L2)X;>tB?nE%lDAB*vo=v}xd1~p~lc0h3VR$p8ciC;$cD?&ZH zs26@EvR}b!1}H26b|_%!1or*@oc%8y_>#)Te)v87t7$$O*K|)4z|WC1sTCbrmi|4v zKVM1|;9IR+X1Zn8b&C5}WeRNQBw0tYdeRP!#l*JDGJK{rHyv88FK9*+V_ZSNCBTSxQVe|y{D+zTC7*^ zD2E+i;6?s(S0KtS^PXjQl;`jrakwj?Z)w9Dk;V|o-}Mgcl=64HqqTnGAdAuZy%T^T z_)>76fv+?Kfx?DHXv9Fm_{7W z2kXX^y;j!GnQe^03!+2iGBc#WOW(mlL8QfCoOK<&KWK((^Dece2L~UUVALbkGpfN@ zh|%*lMxjs=gs=YikbphtAo|ISZ>DiK9{x}`{a(;n<=~+!2?U?>1IVE-fgD3?pgD+t zko}6|e}(-Q-}%C(twbJ@&5K5<+dW)Hrle!oL|6=l1YmQYswvXuUTVuh&l!wlk!_ah z!|GbK5Hf3!rDk(Ohy3>erx_@Za3P%N4Nll=toqO~x~`~Xl#|QM!nbw=|KtckYYY|& z?a+!*v8&|Od9h^~=e0We?qAymp)KP0)q>ux;~^U7Z=cX((UxfQY+w|Ry|cLP!n}BV z*K@3`enne_qpd=KO$e|e3sKO~RLAkb9QXyWb^qB`-MIPo&w+AOGw~P-_JoRPD_r%} zGLg|&aT=0Lq!IjFxwX+)?}KpP7bHc3ZY(}zgofD5u3nI;q5VD>_i|Oxsrm_Ym=^=X z)ve@5^ZhVqXl!=hmvh{T@jEc5y8D6d!ZD-MvMT#yKa7X%G!6LsGV3zTg+qUJVEqUG zF40@Jh-uXSilI)x3pl0PBd1!7i&CsN;8yq{i678t+`gZ zx2{Fs-tX_<2jLU{%KP6#Ckw)jaQeL&n7MPc*BpcWXwa7{n$!P*x{Un`bs2_LP;q~S zn=>Qk`4^I!-RC4MEx;Ox{?I?sj%WR}Bdo}!p91apy$kwIq{9xMjO!0B&d`aM58ue2 z4!J;T!`i^LR)qefn-u!&LvP_jCNnXpShmEFaytb{t>a`s^FLq|EcR~CGjGt}z zw&K083x#hRa;!gA_ARTp0VPhH+pJ~rr86O=+f6$U$Y`5gS2!YM0Lk;lR`;_+;l4E0 zl2BdStc6TntY6|b<1eEt3ZtvplUv)nJQ3q5iT_rJW1}l?03?A2^w7>sX4pqNZ}HR4 z(V(4;{1cwj`0i7#zklo1%z9tS_eTmy$-2y8z=&5OtP5$q5K*V2q zN)K+_ADl#+7 zdp8!`LuKE)vEa@X3|7INCmXQ4WP!8g&v#=1c2BzBjfd}zuZ%BGs|&=9ks*K^=(B3U z;k8p|&^lwwtyurt@UFBiDD+qqW?`TVxjNX2bA!7%0>3>{1kRg@)?SvM9Es4tQKR79 z2V8ogEa#iBOj^in*4+vl&h(zP3uB7bNup=E`-$GEWB3mb#qzfvis6e7MzQ_%8|Yo% zXNMhf>+@)xG5F@*m?F1A0&C1=+iguIlXIMqyj*x3CEXUePB5PIjN zzB`I`bHUMG_d9$Vdz!R}at+>F4OpE|3$V=y`_+Q`H=H9A`KiDxq>^r34R~Y1JqU0k zy5e;<3c1z;D1++y6h4*TZ*MSYm=C?y7FdO{Ch5Yy<}y+%G`oCOX%Zlh9szyFI&h&T zVite5avJutWb5uSq82JD)27xDJ@EdopbX`3RW^l;4T<@O!kA0qsQe3)%W2+Kk%dfjt_2 zr5uo2*P$_f<-yfdMc^p@yn1R zj-^P!%?}5Omqh*!q@ey9hgyQXQJ7hI-e5;MR-sbRd4hY6x52*Jp)rg=Sg%e)D$;r@ zyA!d0a}A?R`icQ2dc&OgXIqVLbcOam>B>d>90WfW);hmzL+|q5lQsM&SYtVUxpz74 z(%kMfI3XwSXFUO#QCQc)us(B7xFPd047cZQ=x~JHYG{V{y|o*#SDyFk0lx*D^CaJ( z;rH(^_SZ8BKCO8(;h+AEbl@2*hMp5N(i&jvxK+dNl60xL9W(GH6`l?FlFi_+p^^J5 ztl3jb#7)k|*hs{CUaaNgmNKCTGPp9%*9}Np?@#-!KW&IV?Qz`eoB^Mkq2>DO+C#`w zea3Y|waDlx4vdH-=S^)9wKp2}2`~8V6DGhuVPD9$@3eocstD%7-2xUvz)7kM3%JL0L2}C!Epv@4>>$!zXF@B-XYcdUESR&4u8cbGyI7 z+pykz$-P((M!S9H&90*ph1;FbIvedocD$DP+l}b)Zu)zypZ;F+kMwuk-`3+%Xqgzi z^V519;Zd{ug8nAzKy(k?_fKo_8UI>*0&DU2Sc^|$Exw3zxsL+(QKH=xc*B3ue)_#( zXf52aL&FKy6r9IHQSVnc-~WL*{zXqYzk{Ns^^E2wmyQ!ssm541Nz<5ZEv(o&vvj0E z3b^=H@HpHWXxFERT!g7p(yOk!$IJc^LdmP_K z$hCfO$u>S2JXmkx)!S^R^h#B;VVsl8aN-W`(?*}o*3OWwfg9EF#3qg={4YtKz z=K75^m0^_OUJ0whK)K8`lKo<5rBcy7`ykaP$)C8m-0z*l!FSvxx!+RG`{{|h(PzS5 zO_~8WXd2!i_5;V$wEB1XWc9)rQ{eqV}5 z_yfGjy4{B);m~M1&BcSBkj`kc9^52yo7>&$i2%$2eQe~v;ptrQS2tOM@qH!WHpX}^3F5_QBGR5p3AH4P(2l>>f8t@k=+87+EKNVixVa%?-3Mt>Jh4bqepQ+{mZq09 z0ck=dYP~Q|7}5;CDop@OBa1IEokc7Dp)FqljC7!Ghfi%tEi_2x4scmqe@*5{%Z<{5 zLOWWgKQs-U@AUyj-vTp5a6XX=~9cyZ}vbi?KzonPGU zq5d>PQ*%a=V}@S$ENF$vu=wZxKAc)-V6FU~Nq|pr1{7pt9T<#tAfAoy*!I$@ah1jR zveiV(Y3T8^x6fR>>C(Q_{y|`*9%W*R-ri?FZT67kx zgeLO0_90aT3_eH72fTgJaTmvb>eZ!A>ga4cCG2a+t}>$@i`3sTv5Z>7!0LG$^_W>b zcS#SS9$Jf@X?u#zjW8h*C&*Ax;wkWNRcS8QMx#kkZ7h&iK%12PCPbZ0q{#e9c*RAKE!|JbB4LSu!EPmIl*KK6}G-&{#5 zPr_UY^wOx`gL5U;dh7?#Zw3C8zVK5SPDk*Iq>TEi^dENVp}iP-msoAjvw8M7%loVp z3HW)$N5JP;d?WkcfZJ}a^$KtbM*Xx${7-Yn_nrqX9>}B+g*ab~#^||2io%LnhL?Kc zv%tua2EZDn!E^=O{Jjt}3^BAH-2lpmZd0y+yP4W>8ml`3^``slrZISR{j`=6Z9P#S z=|dTBg~28|ag2owBhl=mP%@+|+GyvP+r|~lZF>OxrDq%}PB5^24UK8W| zai>_^4lj+&S0ypW6xhIneOvhFna%xi6oqg0B*qkv{Yg z?vuPRh?y+LAf}%`rUh@!e7&aNMEfbB(6;W9UU%A2V(QBWt2>1$C2cNE!I$kplYH=O zz-8}?fd9v}@+zG57HxJ?oeuhW4FQ2|$AbdDe!oNuZ7H=AHPELRWg?x59du_3+AE<2 zS{dovGH#UCK?;XX>ac69zQkor;<86NA)ld=W-`_NwQ6lPSc*+sW+(9HrJYmh#D1o2 z0yz4ItJTdCc=&1khU~1GZSP|#G#$6%e1!G+w`vp8WUAF@qkP;aB=C>oo=(DBWv}uC z$lX9^BW?@$`fz{Q`z5C&a(;7HF z-8wgk%h7&^+bpbAZWqmOx_bmIn*MQRuxXRXO-Zl)$dYAh6uH7lISZWELcg|l?Zlke zw)bG2JUM5)Gof9Z6Wkt+GGA;|y%q<>Wh|iyOLOGddFiNy>4z zdEHNWQ#wcI3~`3Er{)ZFW*tq#|A9H@+aN#bjq03}Gr*~9ACvO~QVv!1opWx0|-z;CVZoAV&x-%GE%67c&_eIoS6 ztlk~K50GDQ838$5-y7e|@h$cG_GI{u`V^$N6)9|TqpKf-7ywxaNTd8OS0y03k+u;2 z&Uy=CW+7&|a-VAwATQQW1*8hP7M_)tyKV#I)%wErMev`g@6$d5KGicF{{Nxw&EuP@ z(*N;$lQc=wEp1wwE|j!kX`2Ftf|f-|7edT1ys-(EmR#47Zg<7 zfCQ@)D8*3}#!*wiv9%y|fvD)rEwtoj|Gl4+G@>(~<@fsi@%w&Xd7a#Q&+?r8oaa2} zS)7gY5OX48KIXg5eKmY`HCo^^W*6~i%?ZqR-weMe5c@_v*EZgSFgLI<#kd_Y;t}IaV3d0$eAYJJ1s@JRM?%Bg_c9-4=RJ5n z&}c)*g`Lnd@720j!RJ8Z1Mv9?KKnu`ZsYmq)0!cr^HJlT{?8wJ=-4U5xUX?^=O=jH zgnSR;S&6c4!1J2MElBz4P6=$~Z+aXgmp@o$whKJbrdh|E7mH2<{hk8qbepB`~1`e|aeL*q;6k2$_tpXC8W} z@0pz(hk6ZaI&z)Ba_xivAo%CN|E`dc>M@o|^H2L=q91vct#=&@?OAyhF8GJU*0+Ma{{bc3=e-W^i$Yf;{@TDI zdJkW92DqX)7ylXJEc}1%pMn2;UmgDQ0@D!ZoVObPouLZ+KODLeX)lH+ospWcD{vv; zaN}Wfhvop``#AlWxm}QgY@)M39`uF(01Z=z9P%7_uTnZ7lQ9-DOBRG)#Qn0xlmw~_ z51x3U>AfGg!g1JibM9$3rM@*FH+}0q42m}oJ$WR*BCdfxXUs7=GbKUCP9&E%pealV zK7Xl|?pf9_NY4d^IZ8|_y-egMopYBWEm0WnY8^C6swxwH_7D)WEaj9nMxEx!z zBJGQdo^yc}c^Qxi&vzVkCL*^dy&iWGcr7k^9>eXB63<6~r}L1JAj%(U|1La0>&_9- z5J`TF@M6+soME!HPH!OybGSki=I7!k&cPj>)&K}+YWXHUdQN!QpDK~{%qiX zUS*r+D4lud0R#Eow-8tgY~2>>yL}!7=nDBKeXt37$XV^=N-|Gf^fU)%Ak}Jbk{J@@ z>yiLx0_+!D^gIv%XKFz_-j=Z3ZijA;@Hi&#ha35@?rUg8^q{S1+)$a1ph}gFmnwW`qBma-beidY9!YIw-F?)Jxq4$fZBP_VPtfCCfDqZ#tIiWh__N z6N%+>2Kj{HFjniwKrd0i5nqDyz|aw<;m|*-UEsrbCO%4ONpAai=$G|*ZuN~a6)|p8 z;>Z6PXNQTdBv_ckSgcPLR<;f|=|Htv>!-BSeRh)(EjG_5Er~PX=0*|c$|1Z=t%coq zXn_>3hTgSBq5|JN!3;>fWI+~4=SZ)eg}3$MtX63Wq`79yHvOO6}vygM0sV!(V(OEMUynWF1i4%%?dKhxj!@$3P5xO=DG44nBSAc8(BIsiDrSosM&{!z} zh3F!rv1lHtz`fM#X$OBu3E(X!92w66em)wXVoNsY)W7nd9|rf{Kb`U@?w{!0>(D^M zyWo(ThQzo!(l6oam|#^~h6qOjldU9AnJg^w5r@+$P&Y+mvM_7!5Mf^c_wqW>I2nzc z=-f({=N4J+7tj=6yBPPm{~NB12+#Ns;SOl`)i(TRu9<)5%J@A`#*Q31OB&3E=>t6C z#pYthBRN|@9{wkGPoo9p?Q+se?aGAuSePbpKcR+ zqPGd1xJ~#9w+Tck{{&-K@)hZ+RJZv&AABB6g}?+$Y8{PIh|VhjA1c7rmZ$4z7*D zP_|SdofjAZ zp8McG0nc~wU5=*{&&%=L3IEIRd;`z%ctQ?7e;l4K<5`C13wVyj^I60ngXc5&F2!>r zzDMKv1inY%`53;*2FoM(COf68@l8Ax58_#j=PLLUZ^hmCF2wT=JV)SpEBuG!c_W^~ z@cbh*=5SE#8HQ~&x(9*|Q9d7Ei`&eUE_ygmJ=*jEmIZ?C5sR1O_xOGLJ3h_DSyM4rCs1;85;h+OHSr`$ zH>3}-qBi?}W_J<9V@PG>{|@Cdf}u~xFZOW)Imfq>Y7SPH{_i|Qm4G& z4^?@!kI$(@ii4qbNCDk}(2+G1DSGg>9QcIS(~UQ|KD|!rm+2Qmm>)8UAv@xJ9+Jv5 zCm`p7@Nl6TF+U2~0W;oASkqR!y6p}9r|vl56U%{5faeQ%1+AZxP)E|KN_u+PO<}=M zNVapsFvk4_)5-czZa5z`F^EKC)YbHRP6yt>h|mgu2km7rLh`_KnJF}eB(OJ-VB((1 zM4YF>?|3DMv(KjhCG{fg|CJ-oZ6WTN1Xv$PMvOJ#SJ$QB8D{$ZRCwD1O@vB}kc|QP zxC{ro4}?XsHd?DtMk?QEJZUVK4V{+O=yD|p|wsLNkc+5e3?Sfj9zAU zZmKM7*8+#8K1mc_+FReZ`p$E1;#P#bE~jjXV_HPxx!bgB)6r_#o%^(f)@P$ zi?Ci;nG7k)CXz-xWfP@vA`VJ4ODk*><(uPK|LtH<7Woo3%h~r<_B|U`C=!}fXrFnw zyM@KPvMo+YGe10Q#AGw+Y};ZNW%HMA(;b{1je zGefL~kBp_P74xBODh{F5s6kRwGTx?$37eCfQt&oWOleBokp!J7;QA?0Y);&fBAoE? zmvMz}b?{pf-%9x;aRzC?#a)%q6OBWBSbt?Yi62HtDrw{ZK0Saxcc&aR5>8F}BZ+pZ zf?Ns7)sgHY#~m`#Id3-W4H>HwjRumZB---@Xy3Q9@p2KRR2es)=l%S1igGz%!2N8 zt?;q$QRjnaOHIRTGa>sgha`WgNso62-cP&7o4$AJX5`Pj`jxJ=%r#e-1~c6!THz~5yymm^{Q_~8 zcT`{=WC~+|wcJ0OZs$qEHS`$>g;AeTOg^+6bAgv@g~Q&6m7JMVNi%&SB&!}=cv=kD zwU7_Y$DE?tWS};*AH;{Vh3oN7+Q~Bo4*EV;Gk@6UVPlmCWGd?}lw+)mIP7QP77A-+ zFK5&WucGZTg?}McrtmW)NHT?QLSsxETbVYouy0t{*WrAG9S`wM;9bMGzR?TIB>6nv zR(Ov%`aL~?bnGmj4sha+_{?34{UHVX0$z{S&o$NIONsV7?SifnKi||1OuEi=gNfub zxFE^7z%`skpU{3lz4D|O^vg1^WxN(evb^c}%{h1OF3 z8~kPP@9>vAVHRX0k}wkQ#3;QJQpm{|t5P8c?WJy2LN88r6weNMTK4Bbuh9?K#m~m@ zm6a&dYm-&V|vsi@Bm=>IfUXoa6}BDki5{7GB6R)Foj!iD(W1dSdNUB0Q`qlb1A zuV*dN)w@ctE-gdryoRq4z)ZH`?p_9L;zb|vapt*(&B!WuiOtAYgrGq!hFDcry~o{iEDF6N53aAkY?7@JZI_m1aZ2| z6dIzbQ&{SiEcMSK@qVKo)vrS{n!Wl}@FIFaW7`jTJ`j6Qldn2{VQugy-1*)g#SiFg z!|A8w$JJ>X;_6bZc-rCU*+6$wgu4yUqKO_r@kQ9;Iuiz-r<0m=#au7XiLRN&891pK zCLVJp7pps`T|9GpJ~*db3e^{qvTWO;T(T&(unTlB-J)Dw@qE{vGq1@lYbXYHA^eQc zu__uJd^s#PAqHQrEB3m$g2mSDz0;tHF3B*b6B2el>4nPk6%tLQ+4VGH8IX5eFCQnm zN|9@Pv9YtEZfQ+Ac>N{zER$qis+V6PIk#Fehbx^}T)ojLu|qc4`dV*k+%L}fk%PKM zjULn?Da$e`ZG0IdhU4N#CU?%6QDo!KHS*lK3a+%g(E2ZTg6T!Lm*Gypp>!NShVc6t zB{efrI`WETxR1(&CAHjQWrv|bY`d#icKq&QZl-#56@qw?QQF8iE3I#M&S`!>wa=M+m z`upZdZ55NU46ZJzN$urxxT5!52IP@k6o+2=<(?5fzW1m?I6*Z-&lK+H0LQqy+;q@A z(g3Lt!{0iZBCUpgh=(nVQKR4QSYtbYvi=qG|B$=L!WDgrnty_MPxRA1IHJALSfQ~) zXJ#5R>Xv@b>ptSy$;Bvs))zSg5j9d?Bj7I514%o=I{Q6;+DC96kB-k5@FZOOPV-&U z^DGN>!z`Cuyf~{9=CjE@fvw3mKyG)DZn@o+ zWIFda;h=pPFuqJ70FGNuc+Y+rWR%9>yE1S!i$!|JIpIzFVixO1_O;zkJ7%UZHZY&X zIT0e=w$mHuvN+Hy#>#Sv#eKp)6IzWkh1|dl=%CINPKG##d1ejsON+)lh?w_c7p65| z8K`FQ-ax#{nOCxS0cgahI=q8;D_j#nJ6|=q+tx*Bld&q#o7MiBV>nRg0Zt}ka|IjZ~cp28MX`p=k3+q;u_*W-47F>1( zyguJVnvDv9$B=F9mQj@CS^UkAVkg}(IW;{9FFjQgSII2-S~y`^}69@OMa^yt)3 zqA)G8msBJQiS1Lt{rgJz0Pag&?#OwCYu|)*D2fN|C0lp@l}>GsehC>(1fj!8V%KKM5iGD|GDDiR;4>9pF^?OR0ZUP?i zbIIUbptBdMn z7!57^nZjG(mz~yelF?iK9zMzFEl0uzl*}t~!xo`Ur-b)H&ZZ_@z*4>d*?@eO^2wlO z|H=FU?9IE8E)UPQ!h@0S6w)n5I(=9~x{@&INY4~jBV867O)G<&T5l6HJnSGHMs-%=v)y=6r&-dJDEL zN%rV#ybsV>d-1+hzuG4COQdVWWooj%r~oCrK)nWQaW^z*7ecCSja7;-DP)5WU_ICY zSKhJ#v;~=Ik|D#C;*#2=hQ!XLdOP57MrkSOVAjD_2+2>8buqFF$#FQBPNSQnT+3$D z7d1aDAH8QV5*{k^7%~39NeRKMs*v(OrLv~IXcU0tN-3qNtVb9tC2R{1e z0h{SNd(>p=#9fl;=5?f3bY3p)i>WiPGjY%iHFVU1JckN;Qu%RS_hbh*LRB+*ei(NS z<7iQYD^Niki*c~-e%g=mJ2MM?rln25^a2m#w9ILb;%|tT9t*G zjx5U}2R|XJfz!{OC-1qsFs?%e?r&L1qBX9gv~5!1&#l_5Sgtkn zpX_zh`a2RQ|18Da6N?qIzvzyy@8Fw@>nGW+G)WD$orTkjW)xTqmS-!gj-3{F*p19) zTBoQ~L)x;T*rNFAvC6ovKF_YO4zuIA@HcLwQ&qU%rf?+{#eEe~?snSdFb|u+SZWe)xC>&Ov{5^BWRsc#O+ap#sRkWjFlGP4`{WKg8Ga zZ%W68J&obru{DO|E~q`;!83gn&RU;Jm4oq3W6BD@rH~P zSI6W;SBR@uusNCsGeSv#g9d%E7Xa!>ZmGDz$gzF4YXVbj)1{c%&J z>{>Z8N^l^J9o) z$yEh?o{xbss`3TMAQCl?>eqdcYp41UExrhFKJSn43{Q6^g7xG+uDoZ^ZjWV7bb#`aIi1*P~1uLMz~x=ReEFh6E$SD74r){nD9tSRR4h zCxFH&u`@$Q#l+rZEUjehbsWL9tJY(n5LX zc+@W+GCkvnzbFhEF?gQFf`Tk99cvipDmM&ql^TkPqFg%8FdR=w=@>&nN20J)9MS`6 zVBFw-`o#!VzoF3V5*be)b`DU_3&PXgl%~|6WH81UWF0u?1BWNa6%4MW(Y7==fyEkQ z=#R$g?I2wXgHX0FU|BlDoIP0DyPOYuz6}nI@&VGkp?=K5_@_P{gXd*%H^9*u&xvO( z#?Qc*T!(Mc;Xt|^b|XINZ+Ht&Ws8iB0%>R1(;vbd3M$(Owz4G&@{cKyrjrUD>1`KQ zL!vGn`e`?{_Iu((3BuCgDl*?aDUFdoIeb0B#A~ zZE)%q@R-}WDceChm61>=t9b|yor79GmMQv-J<7jxOt8{DZ>8WfXo+k z_&~3D0>ef7Jf=2ETZ^>kA;&t|xEVf9|B>0$+sHIjE} zgc?|!<=QE(yiQ}mJp#Ld*A@9dm&vkv+-gg@@Q*galNF$ki=Ku4a+K~Nzt#-fiw&8u zrM6$32mk4ymqE{kKLIvppgYQD22TP>przI+fqA?cknX-ll=+ict(B0~>$Vvj8sSW+ z&vTEr-}6ea-_zp7X^mo?lL)6V|7kt6!tIU9UQrnXp5X_SEkgk1D|z-8d1$L8(m~J^ zJs9_M1$zeLT>kspIpuF|=aiOBt^fI6P>9~X;T*323Ab;sE1j<@!1@?gvYJwlDp1?% zy;Kf5FI;-pHc(b&i-O9ekbfaZzuK7ee7Z1mAEkyJfc=#2dGrI1lBNsV{nV}!bGGfa z3!Eeycm%;_FfcZhUyyDyE-XXbNcs~8l(=u9IFwG^qMKe|n+?gT zA9G6msr-BX{tH^&5sgWwBABG z3A!~M;MJ#F^$PfNQkBU78_Tqwz9OD?U*RBGNhz!Vlh1SFkM2U)1&?Q6PmABWvrP*2 z{-k))ZJ*6^t?0uxxcA`>!yScFx2)TpAT0DtUgw+m9k4@>TSUnYiC_r!c^>e`V?0>> zNxcdg-K^2660_7J6+LdcN&6Sp59Mxk+gpG`>)8d*&+Q39XkUWx!#={%uYfEC*~nJP z?&t`Dmsy^7Yj-XB0@x;`37{bf&ph<-9>~JyqK9`u7M?Gx7v$0%#G5)|VHG$$t{r7Q zEgovhT{qI4GI^+TEo|q?U_U#z@#a=epVOlQUKYmf*&M)K;ceO@dj90)oZq{l$DJDl zy4`?P?;pO(Grul!9H`*^&sFKlaEEF-3j8irION~!RU+=ILDKy`NPu3K))B3OGZpsx z_@Szv$tESJN22F4FJUI1b#Nn(fd3>B`cAKKjKiKNIJpACx+BX48FVgfwR|D}*kB{}`vJNW8E`-ej zJXqE)%taq|;H;aCKKxXqKBWGW7jQ$1Sm}1-9&R}_1jAzS@L}l9?e@IJ>nw%nzclop z8~t|%l#xN;*QMSn8?vdg_p4m%xWXab9?!Q--<${h{{w3*lD>?AoiE-6y;ky>ThnzpT3C41`l`X1E;!AP19Y_KDjn#*o18E2{rTMSpPyUbb zNpEd}sY#r#YZB+Fm8BWbDU8yUYN<3FuY(LR$DK2Bt2wddm@{X(1a?ibXLLKC5@%ay zusc~BEJ2+X!>L=E#H&iVUZu>?%IocThbBMV z!A11#W(eMW(7=jw$RwPhXqAGE?Aya0TYKbrb@Vx|J&yP=bxpwEwN`1Z480;i;(}{m zggi>o-_+(jczHA}Dl;?&G#mAhD{W3Ssr3rP%@W78f;*yys8?!ZhVcD9(&_SOS0tUX zg|ukB5vCfP4$BeW0ldHist@$bKr*+_^XlG#euW+6_TBxfZj&B6)W52s&$D?iN&ziE z;IwY1atuMg>ut+mHyL|uS+0I?0oN?A9io@lqzlmC41OgUD?`}xeLLvNx_5wc6KpHw z#;aF_A@{yrxs?0Nxk4*NY1ZQ2hf4KUh%{^66;{>Zb_m}q!V#(bu%`idbp|-cxWcm? zBtJ;7e9&|A=qai488~Vel#l~Y3`T<;I*9VjNhYp05t@RU#o4+)DKfseO^A~o?X|~A{fhaCdi&6){TKTAD^w?_TtA0~ zW^Z?T-0$OF^Kz{A_Mv3OBE==wzvI7fA-OK4w%eIz0ZyPM*syztwlH#Qouk<;AvGWB;S#?gR_DSJi@J_%5T@%RPUmLX4}-shE39=Dnn?bvz{Lwj ze-Z9I3ozE!g+6lT*X7rK+^Yd?KT-zb0KU@yea-(KK1YILxv6;s-O9C?lV|7o~<-=KZA8+dvCn7 zxpLS^=qIDwnXQANvmbZ4yJ1r}Xf$Q$7sH+#kF^4~vdTxnr5uK?%-5%?PbH2cDBnA` zRmOGx3P*7Y{q-bH*2*84EV#!NcW!DNjMqWZFobqj1*zS?43ZUTSCH@%8jsYsR0pDy zDNKnbH7v;vMy`+fmgb@+=PG!`xoO;=Fj~HMe(Y=mkCg`V?L#q9r#x39UBXGqw)d(e z_vUd;#GBpiq?I!R7DzZyTQY>*B5}1-j(-Y{C;lw90tpov!nVB;N;;dLEg7a{)2Sb2 zY2cJc-Y*4!X-KhO%w%fkKb@6CC(nz`lp#o8#12S9#$}ubu1~(E1ff zFNy2a>0r0aqX|NH1V*=*lCgY0~?FpN0~RvZTj*{}~NGwqr2 zy))t~VZJG_L|83IWIJb!v+g7fI+hHfB76fVMGbhH9DW^|?6%_V@~{eef_c-cH90~r z^tc&;-yH|`$_am1T`x>AR$xaO79J!hz+bKcA2V-y9x+cMCSi;RS+Y+}c1_mdM7NYAn&0sYeM7AHzwnrISuy9=RB`9E zs~@O+5IJ^w(T2y9)F~8ZS2nXm8FiB-7qp8fQ>--D#F%M^x*j zpgPc=9;Z(ingV6ChpS1iB`hAcrxhp*B)UYMrbtcc)Eg=jk6&MFspkxd?FptyrrLZu z8%p)dv5(!sa?ltCu^d1>>w*@4!PR)J`MSC++jVBHNZSsZ7|m&V33fkAzEr;esTQzQ zkfu9-#BQw97#3KZUZq{bU?>bJU1he}b+CAv0=pY5b)sI0)TQ|n{WPR5XQ>sqHOOeK zHRs%0)k>?A{rq1Vr`0L)N1@*Dg{a;+h6qFrAQHDnIeP5!&>$fTJ;oK<&p+2VsVu7<{1hu=$Zw9mFuxNc!pSpQIIlmCLi zIpc-Rq1=3l>3WoPFf?(8Jv01=P{K~o+}c5X((j>mEHmg>`HKv>UBv|oeJZf2y){aV zoX^8?`V#caSoF+0=$VhhGW{5Q7w7M;Q6YR)*ibMw|80b1v6dKTNMMjk4T`Qv%**oY z^sgX%ML3dEA`2g5P^;Ke|wvhhBIzKzhu1vB8= zh|u|XcCyg)#=8*uf{#iv){w(;DmG+xQ7&72@`AE_db>VIv$ffG6Y1aP;)TzGW$2Ye z_|0LpTFufMF<%soG?T}}0=%U0%6twnw&NC*?H?7etpL7}`)56OhW>Y+DKy0kpJJ`6 z$0~83_xPE4we>aG!lAHSfA-8A^SHA{gl`TKpRW!QyWkJN6H>Z*iT;CLsf5;)%gZFy ziu_LOG0DMra5RgrV#REQH|gM~T<(P0U4_XB6*p%-utnW7LEd{Hxs*gI$Sndz_e$AcAa|R_+`t>&yR&T2Op^MjDz+I(K zHN*sc|IYQho1h)*A=%&J-xkw#;i786E{QX}4Xc8m{wOc|vp5L0I5Ty!=B%#M;=Cr= zn_P2RUEG^pKXS0qmyUb)r0&H0E^sKzp5^_Lv1-d~OC0LhWYIQ&6BGAGuus?^eZy$l zJB?X)U-NKfZu@fN2Y-l@u3yJ1d(fU9=$%P4W#W9o=_PLvS4yQQyMhzcL4LE$ROC=@ z84JFVuxDHNpRivkwDAQ}$dOCUA5b}P>iPjN2#&QS&y;F@WOpt!hfZ!)n~ynrTFrvGW3Qy*aZZt7LV5AWUxenVaj%kQwXn^F8na3Z}@UuXGJJe2wu z@$Y=R<>l#XjL+Dfw$%5HvnDLnTQ*IT_o|hL&&ji{^Q{xF^R4%az=NuTdKP2Tv>~JF zI^}|uGYWPNG)GV{;z73zd&*)l?1*0yBuuy{=I6s#LG0^IlY0CX-0pA!E{Z*af;l3e zK-d9&r39~;Ds=FdMe@7o+%(NJwXLJR&t8Ty=cCN2X_m*0nx)b$r%uKZ+xTDUn@9v!~^6rlE7AM>NH)vVkP{l?E0P$T57m|qIuy%Qh^ zHwBFNx5ProZ)uGCCRUcJm>>1!wj9PRQ86)Ed~}=V{%R73Wbw#E?8MtK%>wIZsu4+rIC$qN18)YyFr08hd6s-LI)2Hx4qM#YXOweK%ulN_N{x}z0gq!dT5%+PbqUq zSvm|k+zs@*t<(OyFyhzrRLM>2AU$|BG(otXMW;Z&f1@0>_3nYx5x+^f=ZeD1T@MzH zcNG^7VOrPJUyU)#&QKe$Y z6gd?}auSASFL%D{CYa*SZCzwh+4!+4>k>L4z+^+82s&t!YN4ds$u;*NpON2g9AO0ZmKxp$Agf(X<55Ftwy#h431%C zsSf@A_Bk#|_C`{z8uCQzyoqLs36P7_F5-ihfchpiscN}qtjhVY-&d!q1z({sN^CRP z+v3gO2|W#7FZA&aJnw?b1rK4|c3zqK46mGn?-XhO&#i%!td6%VFXqolq+6V+9q~?iQT!?Sq#Vc`3^|44)R@P?Pl5ZB z9{HH0ujFMp&hzeN#W_yt$>j#z*6Yu?mmBut>2_;O&sOHO>%loF1ur7yaQ=Ww-{+o= zvYrRsj6cgO>HJ-YZ^$d#4qf2XI)}{MX^ZF;#;j&MKy;3m;^eGx*qurtcR%@mgmgT# zZs<7cv?Hh++NCDPBC$LRtuD&Cxb9S&^!&SJN2{a_saEwR@aT?v9`aiVXKfi&lVk$z zL@mc^kzQkMgPzgpS+)(8Nv@QdY%5m3P^#IOqx-4H3feB{mwIb5PJ}vJX*KQ}3};CQNc+7dheWwBU>ELm#M?MqbCcu46YZYkmS}QoAK#Qk# zsDV?q$jxJ6-FS&Y^2K@2LZ1g*21+Pxn!Ar{pMh{XM-RfuH6G_pE;{1qR%ktLF&^Gc zBai0&5ZoA)+C!cP#k@T@8O|emsun9JkCQH_S3#PwyB$QW2zl-l4UD%n-C(f((k0mu z2G1wmx$icm_v{9*b7~LWw_WUDJLMW4oXK%L-!lsB&$L!53HA@J0oc~yDUt>@QJQ#H zYp)JrulJ6W!lrRoYp)^Y>kfl0J1e7Dc1i{x%58Co;u7Dr!S=mVUv02*C5K_doW~hH z?5PRzlkFxdDZlA^%;Le~zd%a}S7hLBBpKn`gLEqddzYpp=yHBO_-8TM{%0}8eru~< zn_*C$#C?fOmn|8}W6kLk5CVPB$xv@F5j4-F-V{C^I^2^v-1~)Jbv!R7mreo)A7Yd~ zkC;5D5hD{+5$baqr$#)Xe;mAT z;o`wA$V|Y_Q@mwKHfI>r4V|~OIktG>$`?|kn=xW##ZR|my}+C(P-j`V0!|-alORkD zhM7){4*{28{)~Bd7WO9GaD7J>-#y@dZzbZ>63Pw*tTOv#+1= z)q}4-_Emx}9lm}M$!-?SY_fs}oxgxZa0nlHX-0`93|$1Yi@a#wVam3>XkOj=VqKbT z4s2Lu*_O8Qy65V&R*mhs8C6DuH5IGQsSw}86=YjCnK##GTVBSBCjDxnjVp#GL&(9) zdY4PG8w|Fm>XtZ1*-~*6vA2CmkO6+rsm2!I@W;4hJyx3@WxsbgydkE&8X%KMq!%3GWRCybSVy30)zecP_9K(C~HA{ys@-T&!6nQUvvL5lo?)+}K`u&}y1 zr?@2kRAru;_U=-CVg#%8xXwdA>i5n9Py@A)bKe)ljGRyUPJ01^;BZBI+i?fnq6W0R z?OE1r?DX31ENhlf5{0T{P_b4-VT!H`zk%8GZ!qZ|y%+q%Vrv@4{bEHjxXlw$KedtU zfj8qOh|i}!(t;BK`h2iL!>^P##JlFT#@FC{GKS)YJ&tx*dvGgiXcwTnivj$h5NmS^ z@SCY{`EZc6gS5@FOe%&G{@R-Sj&I6tn2Z_X72SQsK6b1A6& zzqUa{H&WR1=OFPO#MRP0$Eh$UJkO--f=tg%#Ev@IELYX#T2)y2$;J-xGoSY?gPtdn zGG7$MXB(kwkH!*}ndA+wM;XCcGgJw@@&dF7gEO=y7i(Gt*2jFbfmFB*eBN>3MNqfN z5SPXm)omWeO&hBpoek%OVN(N`D!H(y7ZU1`o0DtX6=o&Uo(FF>;YdoM4E;;_Q{Get zf>YH;?F5UGwj4#;3CN)NtPT};Fmc*BuU^UZ=gvwg1&6gD$JzzHYH(dE+Yn;)V+;}u zl1(BW?{$^R7PYI{((L_Nh|0+s z&f#R%ClXJ}Bd8P2DcWmjt}Tkz88$J53Z}P(*Ws?cRf%)MEzw>*imwFWK&+3Y#95%1 zG8-eD(6pCu{qdNeyg9o-E1VtfPPl=5Z^pX~F3v2k%dw@|wq)lh_>NxBOM8h^ zkZT{nYcRv1`}pC?9G9*kd3t_Ba;?gWnge&=R7vtUNq8q0^ehfYpoKfz%CjEj^a=1K zSKdbTq>+t;Z%aL~H^rbD}fVO7VrCXi@Z=0q8 zx;>%QQ}5u0X)JncI(TlN>l|w*^pKsi0kjK?>l*W zy3PYC5jS**SvMowmTR5pND#VV-;uarsV(~t^1xMKvu#GMrO)v_H`JNk0BH^3;b5jY zbLM7?2D-l-_&*xRfTl(bbgnFPXdq{<5vG0|KZ)~;ABgFb5Pw7lX^?4RoZOF{QepeADX&2(;%A^euG+5F^2Y$ zw8@@g(_CmuGGgtyKXA8$8>wucY#Qp&M`^CwX(X9K)K}oc2iY5N6Dlv2o5mUKr%Ke? z8<5m$giuh2eFC!Rl>`32F#q#W|5eok{@(;B=D^oi0ga#x>+HY!bg*>)h^Et348%Ol z{9$9~cloq3c*OG-DUXB2dzZxnFAr>eNBmz2NKwu=f*Rpsh+teA_Ltwmc#^?*>fg$+ zhWW3H`SZ0B>?N{;vtQ$tv){lv&%Og~H{ko}*9X4)+8XhF*Uo|OpW9mT9p@bQ{=V%c zd>?iUe4lK465oxn^e5Un@cnu${omWZ!FNmS`@=RbzQ@Gi9catg!7B&H%JWX!Fnm88 zga20B75MH)dX@0hL6z|CLD(`hE9xZ8oSxgrH_PiV?oh8|p*X@z{9HTHsjm1&%IH*f zJj>yzU9m1gXK;jnoM=>__qVBpCjip|_eZ$paF4*Pg{}b&bT4a!RJNCLPKA&L8=4xS z%O8(^`8og|cZ{YFgT_`l_k<7b@>Y6!Gn_8emCK>ZI{c(!$FGybRsi8$4IKz zgIik@VLJ!o5d5D6XKT>XN?d3Jsn4f@oil<)xqi7{TJs|~DW+5i?g4mIwx?km_{*>o zBQpZwpu{JU3E#B z-awiD6f4vF|DjBvqfFx=trPZK6?}u%OXFE+IE_=%%?(#_ZO5x5HIFsa?0NCXb{0s{-g6B#$>=#Ip zY^%(H6&B;h&49cOdc|*Td;&2Zci`JPDd)P%>ni?iUT6VM3asy?9IpAXI;rWXlce*n z_VVMtb8eb?wR3mJBWB6?!B$nz!@zcPtz7X=7w!qdt65$c4*0mWYGR`msI{$e+e7TXf#o&fm4Bl+;Z;T}F$cOVRl?%|emWrU~TXB{f zHb3eNINPgnK0WPPgEOeXD%GzCoOoeka4O61xN9xO8y8=JGOrQ2Ca!o&U*#@d7lNIU zsphHmlIE$<@V|RL-dQs8_1s@@q_Cr$)#N*c@fhYoQTVdTAbgg}FKk^_c*vLTbs? zqSRed3l5rLuRx1?c;{)crips~&B|GzVNs7v>Fe7`eGezTxta=0}r6c>v)nSQyT+_WjjQBQDK-nzOxl=SCEuJ%?Zn>~QhA(_+)s zkY`vh&-@ie01pbh75BeaPg_=F#+IN;40sF=b!j!(pcM^>0 zfFTVg0fsCFaI+xZM^4^W-%LRqO?R5z+C)tT0n8@#|N zAiF)VuFUlhtSdX17Egs>`L}hY9%kmUH9tuc{(E3(FnjKNwRg;mn_ z`!%YFr5}a#18WrRsgd+avGjk4rXRll()2{jjjTcG{s-6^bjEq>;ET@b`|o3OcfW(^ zOG_LyS0ZcA4On~bW@}HtQveI~-#K5XyxMuTLsoD*uxC{d{@I%FE!KqGAn7^a3@0ON zLL*;d>{t<76PB^CQ?w>nSD5e3tH=1O$M|~*YroZYMnKsj^Ws`iS^Hb*vO$g&sjE$}cHJkDW?UZZ1bDXhdm* zcg4$4iZ@Y;J+V@h)hRKqNQ>}jZ!yd71J_-EG@L;y+H+dm#Na^xGvGk>4RAJ!MS$}t z;5^CTV4Yhw9B`EUFu+M5dvUfZ#~im5>)hmBDXczH!wDBjyVJZLyNlY@pGRvtPFt3+ zXAM?|!@W|}C?i&*+e3r@Z9ZQ*hY4T(5M#Zc%~M?kXOEw1fyUM2@Ee%du+LdtDu%<~ z!Vi|kg>S+%p3j03dmt3qGk+bAhrN-xktSp_s)a%*-goJEr1bBz^dBMpzmMlvV(ESC zrc5F9{9F2$So&8lNq+>?1C4ObnV8L0YckXHaLVJWrG_Xt;gx$O$Zw+_7L7idMK*gpc>7>KWd z?1a?3kj3x$Z{pKEG4At49-0vevncYu9-Y;3G0ei)@yg6+P@|Q5wqvX;ap3)uxxFJxZMI3O7_ZUvG(jnDTy2HJ3ylIFPYeI8fy>O-UsMA^z08fZw zxcu8EqbtEDSP3%ye`e$Iuq$%I%$F2)tYI*DgT@uX96oaCqA+>hlt(ZdFM;`U;9Y1( zSOu6_*b&aS?la#9>JxZ<#k(2gldcZTY$NRS+`{0}ZhtdE9*>n&!f)-B#CP?AbEWx~ zC}bn}UtrfhKy`h)aT{{@Lo|mT7hx0+_^xBnyIe237cjU|tQl7^KMuNZ2UyZXS%Emg z*jSG6;j!>$JLxr-`3j=xAGa4GJTDghlAZLI_rb;)%$@+b9EPW!;y z|uViS$fi}qd4b(LMoU`2MDX@hV zH~dv#pbK`L7Rwn1x(DTQ?1bfJHj>S|E@{nZt&(Dps8+xD%H0Dvrv-gq0(Svp;dVUf z+)8`aWZ;$ccqg1j0s3|lxXaUoX9M*@eT58fuY{C1G1gb>@ZJt9-=%myj?fn>I11zTXGZ#PY_LJGu)=ezzi;ShABb4_KS;1>Z) z4tcH&4%|b(f;}@*mL!x$S4*XNEmoRqFDZ>Jq=hYFD$ieHXqZk_p3ZRri@@4#vCosBQl;>MD*;`>McbMp- zv(RKQed7=-&1>4%)-^T(>Na)~7A&vz#?j1FOgk5^2z$2r33G}A=Je+n=5)gQ_{>LH zKDQ&E=^NL^@@es}u8(K=ELXYS?BYTP|OxGSl^3j8{;2mcJep3-+eEX>^$z9l+`?%JgwYTlE4$*7KN z%-2Njy9x)n=pK0rZbp}zm)GUla6j3+%*?QB=-ShmXrFCB%h9fVlXt0`8@|w-Wy`}^ z_gmM3+5{V&cN1{l)mZ1Ue7nY;{o~1Y3f7tVySU+H=8^SzR$#BCO0-vF z*}OAN7qAxs=6nk$X#_QF9n-l8u_|bd3T9fh)*a zH=;HLyi;UtHN5C_yiRPvMuwmxzAy z$J62oQ2t(I^piAUnGY^{c3!n|EcWAPYeJqLNc%;0?_-T$o_zu^BACY=I6DU+Rkx9H zy$3qG=g6Vu;7R2AWNJ}h;s94ubkF* zx#?W8oNy89J2~3Z9&67+@xhr7u@Q3E_n`Uy=m<&h-H#EHh!Jx4&TzpU<~wF)ThU9U zi5MXZ8VB}u%TDUKSD}xC#-TMj4nK!R$ipZvVSPl+Dus3F{_yOxS4G?CZBQ3J71NvO zK5>Pae}-#bQMbSxw|NQbcSCSCtKSw^{aFQae|sl4d=9M~8}itURv5BevsjF6F03RC z<(5}_6@(9Yqf_Z|;gq*((MDV!J zU1?`aqOqs+-OGC75Z?MWwQi&rRs77#nK-ML zvHGb{KXt5r)56=%5bk#A*d?0DzXC%^f;d(L6W| z+BeDVZbqDby#E=F=7RN9&n@(?SI6p3*m!)suQML2^~)RjB1w*e^KTn}AwQjMef)s1$OcT>MDn z9ijPs&HD0$e=KNyvL>#Xdb1F{ITE@1{iLywGyL6UK)>i>{qi#F&wc*kthAF0mg|Sr z()s>*e{QrVH|$J1LwML*ZxbH2;VmsY=@TB7xN}f6&iuD&erd5{$y8rq>}f5gb1FIP zkFpcL4CPLXmD?7&_4^1t>yv1kQeRNpQy*R0AJo=<#CaZWpdYBcssGr1U8OWVjQ!dJ z8z4CC8V4vxO{|3b9Z#Zkzo#5M&UR_PCoc3W=Q<-znHVsSKByeV}4( z0u?LdS;nYXv}28rmEoSC5oIt$+at09-3x2&w6>3|8&ylzs($eeWiUHjS0Zj?y#CEW zYshk+p2gJH4P_&>(+7=z=;vZkqTX@Q7)=9~Z)9bY8G2&$CgO!a& zrzTdmBG{Gv{a$+Mo~Z>r%7O8B1~}sZJU@ox?DtfYjSC&ZhQb|#A9VR)Y$gNmChVW| zz5pK-FTwvs!uyGD6?)&8{|i&;eUC_(e;mX7b+8r_54=AWI5qTupjQqC(}W`;jSk}2 z8N;aJrZDOEYhifx1x8B^d2SWA{bokI6rB-USxaHAUP5nqE;=Lb5BxeK6wGR}st2}{ zV>9Az-&3qdPP!s8%6!S?m=PtbX$m@kLVm)w;$-^D2wZstH3tp}vV`wko!+mdEP#cYhx8D*jDg zpNYk>yhhj3KClONyQl^(R}S*JndKFSdeI!BdIfh<|K*rh4Z&^9%`}5guvLW49z$Yz z{Xew5d0-RO`Zqq4q-m0FDP`#fq)7{f76=ruY&NtwHceR+R2G*Ys6phKiu$c9EuetQ zwOCXZy@ETUK#KKJ5sO!^+tqs$0Yw(Yji9(pp_<9kL|&F9`tNu(u1NM8mwKj zcBGWA@{&B}Vd$V{vsP;%{mNEay_~gr52Fnkj@dWioLtswEn2Njw7MX?}_d|$M?3`V)Fj~?0!2N z=SkB3KU>-VXJh|QWhL+bdy@A5q{sPtV!tiRBeKP5ks^Dx_-vwHbCc?IE0aoOixVTc z_-1XQZbOsmc5TwWyVRv>&0-YF5=lpnMx}lxCJ)FKuSfmd=hg3*#NM0gcTlEV7jK<< z5HV=hS69M1a+^#3&qiEEzNiUuWSoB-eTGrA6K((1Kh`#D&sWkurbFK2c?x4Vk9M<3 zy6FuHP3sjRn)WpGL*M&!=5=h9$8UnBrAuoW1}HQQI%A?~u4gtfnwICiUwMn?7T02Z zS8P1E8@>IMK_3m&V(%bpj++^V)MCCHLhmt|<6VFu^JK?B)gl2ytcK2Q*w9$lXulme z`crf%D>+Wn7K5gVTL`KO{Je|3+u|jtFD>5MrJ@}Rpk@MU27^iz?S=%@e+3_8P_IgY z%9|oMPwynwjLX9WSuI>yccpzUV7EnPvGV@`o$*)F-3+Q4^xMHwNxn#MPXex*Xer>P z1FjEzHZ;G0Tc3d28l2AHRwdvb1wRo%{4=?=6YHw&bW-MR(MneKCte32>X<}PQ&xyw zu}pJ@?ZD`@Z0*u;UIvfTm!jUGP&BX*v+zA=t`I9I0d;n;H$gR!ZWevKnHzeTL7g2f zCBAnv*SgR=*wM#c49Lr)GF|)7n+eD*EwZd-N<#N6lJ2?1<=P6_ijTqO_1WTHKpxB> z6V;P-RW!Ns>kC!NYIuU(L z{Tipq190DfcQ&NohW{z}AFA~G`EA(G;u?}VpQ&l$PI)GOlaOj)yvxn&G!`vm{%dDKf$a^f=T!X z*|7rCUT1eqWpgDvChw&G>0RR=&!7?KHcr8@n|6Tzb&qFzltYWI0K7GcJ<5d%cqOqb z7(CKmfy$tbw7ZT3N+M$wc*E+3IY!&*MBXo=gIL+0fPbSp7Abi?1%DF38DV8g4pUu` zV+h;b>|=Ckre_@XEU&UXOVJJ^tEr~!SYpT0kJU83W68Y{Hr$CFOKzg3-lz(;<^SED zg=p3y;C&u&40fM3;$P~Kb}P~rA#Dckm*M^n+|R=OJ@}uE{|At!gD;pK-eqbrRi#5b zwOn|6rs52;9-L24nrsdp2GIF*QmmwDpnrFF%DS>{qJ`kBmvwO5S=&EY{y9?Ny_#B^ z>gWmV56RYlD-d%j+sEtPMV_i})w;`Z9rW^uw;Hz@JU8E8&&&5vQoeDY@;a4+FUocO z8c2md0@=q`wx>JNry}~B?QYL(tSo#e9@RVbaH^xUDIU{%u@kn}mc>r8{U`Y;#oQ)a zeWN404!Ny}X=l26M<+v7Y*Ew_F~{ zU-Qt;^ZQDNxV8pJ(@2)q2*24zOHMO98)FmAIJvL+bl^kSDe7!J0UyeV#{{Rc-0l79 z``Mjn(cEC)sW>^o?sE0+Y#hW5$`&sPR>E@IZ9|M~rH*&*=7#^~%W@>cu>g)cHqlZB zD36E9$0Hx!xo*JP6t6S)Q#HZjI9K&0s5`+YUFbseIcO-eAM8PF^S>zc>Sl0fT=^xw zO^U8$l6NEK#`(IE#}%4Y-LuZ|*t7zdw!8vbks5G8m5i&?LaHh@J&2r4AJSxXy(G(R zb+xB5b(jYU?)-i>4{V@H^*wQ3?=7F++zk4cb{xNq{=JF0+Y=Zk-OJ`_d%{An)Yri3 z$(Qx@$}-&7lWYLEuGmCyK+x7VBy@r499(iEq^G|TWs@ZU*%^(G-M~tY+W?Gdp2x~n z!M0#7d-H%duJKjz_cPmqtCTX`lX0$jaO)cE2=jSZ;rpCjXO4kRw;O{n<+y~#A@vby-b);V@U}lInG<)xca3OeZlc9i-Knrxj0A2C_6NO8Z&I}uVrM~8 zkLgU}vCvWtiH8Aw@kunUxBX>%-g&fd9%#ot=rw5GSKvOGKU)r*y%=d3FYvlIaNiI2 zgv&E=e+8~Jz;BZ4q?QlyO=RPjid71y+_IgqcYC~_Q=xBWGIsRy=tPeYW*iQ`d4ek< zu8LayHO4S6Ds#C6 z135yHlxcx79%4aLd`9`O#UBQNlrMw3ALO?ZGZd){#1(U>fC|HykE_A9HI zoPz9qWSbV+o0*ihvbnCQ!oEo}Y{tFBQLqVZL?_u-s#R^2Kyzcs72ujrRja8hcf zJ<~DrM>AjAnJ4UrjpAbGFR1sAsKZHI@1Z{1aK+cb_!><%Z?7SJFD{&^vL+UIfvw>h z!cvpgGP6cq=bcM_OtL*(Im!yaf07?W*!)?~1O=OE{p#+x+*4^sL~&SZryRYYmakB` z(%k$gm6PP$6&_bL{AA1(_I+)kz#3+iP7;Q1eQNUvtU9H~$+oPN%|X7jk5|^aj0G)? zuO~7;U2@K-?G18+5dWo!B;7j~C_L2W1vQ3qIQenbx`gqI@W!Pnl;lW1ls`hoCa_4hJ9EWtm`{dZwo zO#7(ycz)PHwh_7Rha8zgo|`XvaO#6Q$unR%C_!p#Byd5`Y6mx%a00%bt+|$M!qS?R zb-Ie2DcaVQM|GR739XWJr__ke!VR14o8`GT(YN;`_3d4#-D1xhUFxhU-aG7fINs>e zASy&2;xnqvw7wsJ#9T!-;b%0hQ!je9OGVMqeYt|ZH5}lg`b~@KAB0W(P0-Skf7iC^ zY2NEud#}K0E7L`_UbD$@(N{jrur%M*Q}LyfTA(Sr!h03YIN@No_h=J;LCT01VY@KU z{ghN_rPA_`&$Ykh=ZC%RyQH2<EejCFWhRNk{Z=RNK>v3$0=&8PGlCq@<)#IS61 zVq9OA)+1ls;%*D5WH@lNXRPCNTZPn%%c|tsjN-Lyr;3O(un%PtMc5k|#Z{0P=bF{6 z<)BnAYgDaeSX)yzslwV(;A%OecyXxIZWR9Yq)R^B4KY}Rfl22Jc6E?}*y>b`Nu zqs$v1WnoQpW4S_?&0)`(YyxMH=yt?LJS=TeN;ebN!1E1+RM^>oUg;tucIueMJ$)R(jhrQ4->~labo*L@@7rJGOp0oAZUhTmyhj9E=FV$xbt50g|1r~`Zy;D`fmuzPC z+(c8>;aZPAc492MFm696xh{sKzJ_mn;o_Z7;08SV!u-<06~ zUFCit?ypns^Kk#Ta-W0yh;pBS`+IP&hi7b_8yu%Qt<-|3A)HvO%^H-Q)2Dwwb6!DC zEl%RaJI+G*6A66NVI&Xy+B3MiaQ%wwXI!UnAwG_o&aKUNf9H<`Qr^g_J?_t{#hmV> zHd8ytd?ov;-h=<^a5dn14A&Z5b8t}1@|jMgV`GOOWRF*NZwEePfE497^lMq146X=^muhIv)P`}rQ%)%^jg;u_05i{YW2%kmA4@?-eXDZ>`F?T7zFZ?yhBKVNR}$u|54Fve!V z$iD0o{RAA*KYTJT@je@U1AC*3?nAq2-p1vkFJR2x!xh9u^V);|y|}1-SDe#6cT)R$ zhb~dtH>HCtTBv<0Go9BQ#QH3^uRf`L-pIM_<3R8Rv3$#we1nqm-F;rZl=6XzaX@4jmhbwW_&6-< zUbZ9E+z%ts0NKzUUj}N%mHid{tupsw-_GdS>DQK@P)6b#yveZVLmG*5qI-_`lgHr` z^!Z}QR#H#kJY?KQas7si#^iha8<8HDIYt7rf_1F_Wh;tVduo|HYLDk))Zl!XV-4fx zgMn+=o?G_6QJY~Y4jvxAip-HPc$p;cpN=H7##Y}*Rx<6mt*muN!I_gzTH)Z8J@@b= z{wNq2)+5Ut$y!{N#~t^EA@h`X$h1xwBoiy`fcHaSYMW2CQ=uKWY^Aa_0Y$~H8qkP! zwVwi^adI%w6WPG_ql&dS#^Q7Dh9v%p=-dSKV=^yo#`EOk zylw>ki@xR|LkkDa#8fOo1NmFf+GE2zUHdPHshA-yW|FjU;A{9>fF~`s;mj1A$mfm( z9)P_C))RLR^N9*{%<@b~@J{2Ccqh`Y#QD;(;7fynNs+q>kH9nP8pfB7!pICg&W{-C zD^vKGeqLFsKOTH3aVh8a{or%@{^kf*44$!wG%oVKHWqj+CinIcnKvErzON4}nfjZg z`Aa?Va#j4w0mQ|``BNu)8!;h^x1&VrZ7T75a6pYQnLqu?dl3CQ1vna)X~y}5tCfDf z1pje90rBMjgPbrDcozE!@-8Od;x9Jyx=r|2&K0#_ijVHY4zs(F3yk( z&l=tU4noft)q{Hu2R6i>rxCWQT2#PS5#pW$9TQZY?bR7q-2Ex?bD-UE2a+Y0X7_eG91+?j@vd zZoU@yvzU1cq$oSwYZEn3N6iO^pH*_jt)R9c-xJNGPgsC_v^T%J?xF(h(-3EzcxM-I zEO)jba$2h`8jI+7fav>;wr zd34%Cc9a?SjrrC~dbM{H+l`~%ZGQEzW!>X;^ke0!Axr9mwv+wF2&LRYl*{zDN##=C ztqJul@wrFzZ87j3))cx2aM4`28&`b({T25#ukQFB zax=`WsW~d$ElSUgP_#-_-P<62qSpRN={x7-3oRqDVpWG!#e@Sj7xnX9$MERo>M`C0 z=VFn91I}}Bpd_Rk-2tiCJf$TcqSyUlSzh!GY+Lx^h7*VY1ph|zo384=g)u(5_PAU_kM8siC5r_a@TfQO0cq8(>VmY&baOD&FHP?PjO1S zha~dS_-zedgLVy2>il=Fnbqj^o_wW7Z+f3P!CCs^J>qzv&U3b_us_yCRGadc9)RKZ z^l)J5n_N-4(sxze*KY3xJZSBadHbsFx!dnNkp+pteHfzd;)4H^nhpffFjRQ$nmuMD;}EK#H%U!LOSA>R3z}!nL^0R@a_V zn=TFwg%OX3>6fs>rP!AgKXWI=O0Cba1Cy+p9fUFqvgi}BQ;UR*u59jM z$!P5@o`emO=2gT>ok_8xxK^DVF%7YnKi;!f*ts_zSBusMGjR8!Q@n08{%LI(j(=S{ z#h-eY{4zPB?YBSzhB#85bTJxsJ93*yR~ruOj{M27o+M&6f7_k?KW$Szx~^j}i-53T z*NvE!$#E0z07bf9;ho-<79s-Eqwt-#WxaEzDf=GZ5$#GI3f3Xvw=?TBpW328Py%1*;LKTeYJ4(l+N8&s0zJ z@e^|Mo7&PvA+%A#*+kNtJ8{}yul;SUyEdWx&4}@UylIN=bmudk5g5~jQI&bP1Cb?m z<~w;av_ueJ`KEmaGitF=J z5|6?7IE*>P{7UBK(ve2EM?46{c*@4JA2G&!z!mr+z9q+g$r4`-rr5K@S0H=2`;sj2 zCn-zp4kOmk-VZlX;YM zSWP7JD2+IgGaK@**Kkq^)pWKiOMD!4Z475PxVBwPg3?l*de{Q%Qu#z+9Ux!z24|u8 zB(yJ1!SiL9kIC|s$3P3F;-Xd}!X4T;3pt=Mm_E5KT|iXImK^s;PZcEm(ZFvK^SXRw z;L(s=V5}AC^4*7iEcIX|!YX^gPtFE_j7hY~)+A z#7WW+oJ2T7$U@wdJp#XpD;?!^NX1Pi$ep(I@JyD@St^_xun*?S-t(3q4r;N{Lcd&= zI6xYR=%z*RfzA>?4LNt25QnZ5zGB>ZRKKESdZc3T)S3i|JIpkw|GU8_m zhmK=CrI@Mlv%$!2n49s=#e{$Of1l19#o3OXmjTZpoyPs#&MR@RV)wH;7vP?v78<7( zt~Nr>jxn=42JBzHSQh~>{ zLBftqoN7vC5hm`#>4)q$0hzE z-e=S|@jmNDeJ@5Iz_-7XlpQw&a?lY4{BsM zPBy`^{XcB>!&fto3VTyJ{il48?=ofAn&Xu{(Y{RVCwcy2wx7JTPWC`=oQ!j=d;SS* zAv=3{e^ZZ<922#(GQad5zz+2qpN*BM!alf)rMD+aWS-&*S6HQ#N_?Rd*xK_9%8g5a zzwuV0Tz#~HD z5%0Zt2Y(#2W4XtKH=iO(SplSow?IDeKC@k!yCai9)s+3fX#7bZ$rmk}rV}2Abq@Tgq#KA2 zgAWL4aL7LNHD)8X$3we`WcyHxA9A&V1*(M2!1s`U&0$!8-vky!LYK2%AS{r*Kt}pV z7x6(5XH%`60gi?&3Q3Yt%f9;@djzD!chlo!t@+s%R*&BPAo8xCGm*_CB00i(0J<6z zPT&)-kI9mfFT5WBJ0>wW>j3Acmaz&P!W3DX{A>bFGNzoBm=LC{i?m?mN)!wvD}_A~ z+4lRW_X*TsAgjR}(aP7RJuPR-%s4)5Zm*dSeXX#B@gZ-{dEX& zPM>1ZN z$0mgn+tibX(ffICD&e^V4v4ndKy8NjKV6Ldr`y;)}7A@-&~5ahc?Ke5^^f z(X)vso4ArIQPN$Wl=2K;L*d!;48Z*at_V&?9QKr#q`OVWXLFU(j%eU$8e)1g}xg(#!)0FjAd?L0f@GRI-$D<6$Fo`FX;Iq0B zCC8&seCN$axwf#Zu|MX;JK!i{UvJn@MR-f|fYyFm$C7nnMAL}o5xpZ?_c|_`C$Hc? zzSn*R_e*}`b$8%;0{6}MKN}yTs=IJUAz-T#`nujb=K1Bm%B{O-;JJNuUr3KxexI)w zYpoiR1NROi>x-)H3eaxq;S7=?D63Gs#Y9&lFQ{9G)*xo=J;063V9lT=$7|J6+d%gKUoh}?6rO==?@?$ZMYY@7L_SN&F*>x$ZvNJD z=;PmlXWCK*?W#`2nKK7{+VVa=wu*6D$oQUUx(;P99sfY`Q6?S#^-69xIE?2M-~27U zRP(v~%hTRa;OUsmziddXT*bZ_)Mk!{^?+DcdbvOSL=Zhjujydt{^ffzm0(hm(p}?b&&5kX!vzwu{XrI7( zRoqX29$8X{b!RpdW>3kPlCoCQ$_=ZA6~%vEpK3fd$kuM}frb_uLRzK9N?PdZbxRSo z?9tpiRKpNGkX!82Zdz539r$LFr>M%Ry!WA}H+k@6!_J9&u1iJH2Q*VorD;^+Rq+3~ z7ZQ}NHZ^1}Qs6O(D}MGkKkQTA?TWNdCz&jyX_V=XsW5`A;d@~fuXujed|Du=mz!_?tboFyGT|?V4(Y6@c zh7~H&w!soOC(9H?hW4cw{xcOR=IPy!FV$?Ag8gq+k1P@Pc^~&{hE4K~VX!o1B?&*+ zh8=Q$16s?jpo)WU3(bG#OT!hb#P@>SI<+vWuB)w92n2qOVJ#h#GJFZv((D~tGgc}0 zBGka5)L_3-gN2rq4JCm8uZYZ>zwf==pEB&YqIpRv>y?lKj|6W9*j!=Vl!2ssk*T+H zasamOW{ghUF6abC=U+jxqo6f+1aO>W2((6(<4Rti9tOU~*P-umzX*Kz99*;?yb;d} z75x7U_cSkL+~+6SxZ?2OJy7F0Kxu62)ZLQK%9ocl*~GWt3H?wTq*)(>h2tsjNW#Lv{#YGu1v&tAg?N%l((TCxVKi3G*;m>ilbNumUYjEx3$hgH7DOSo6`T@ zCZx>RHh}Des;MV9mFPee0~Y7BRbc&8ioS1%+DPwen3Sjm*?tBC4dDyPYhp9kda1C` zGSNN`uxBDl3)TN)@6-N~pcFJdB;y_hyWt?kog%y8ovPMRux%=B%n-kbjRe&g4!g0t zFUb(iu}sL7$p>elWv-BGF9g+iNzoZsbsKlw<~J&wU!50L@~oc*V;&I}k`EfVKV@ww zOsr^`Tmb%2IhZ#jL!o&?bB1`J`1(L|gU)ZKc|~)GZ0TvuC_QhzAbHFp@If?>ehzXv z9ljfuG{;~K0A8<;LRGgTLcz%%vH|4EUh?MpH6{Duo5dSGg+}D8RR7raH2Ca?dStzI zRrkT|YCmR<30?(F_npupcbR*e!p9L0H!{Mrxl8pu*JmPAydfC3-u$2WOjNdK4CpNk zJfgKMt})epdNnsR?btv^1*G!i<6{IkRIhHYW4~&UC4)_v$Mcu zY*PPrV~w+7rjr|X=*YkPM9<QQd(p(Cuc1Kh?sy(q z&YL0bimL4y;%?xQCP*>GX|EZ7_k1)HF+fS`8&7!>DIZDn9m#M(`*t5wt8`asRV=L)y{v z()J_G3j9p|?n9)F#&@dPol>naT}*{cm&%Gi$KX3d<;0%@c&0Mq&%ffC^1Iv9r>57J z3Xe(Co$2CcoX9+-X7-{?@is{t=DPH%*TP+0r8xI5UHmX~AHH$J{(;~awQqCemvnCa zCYFCa@?Z9E`L`zWQ@#E;zmw%Zg#2UvE&rNCerm@b=eM!^xi@Btef}-~qC|dbcRYV( zyLM`OaE7f^Sb0XL`5NtfS9)HWVS}8Nwe#QKzm|AU?ZDY2;+mce@fgFneQmth_9mq* zL)xn>jYHZuh|`-P-qw=>+`BWHA->1nG~vyBz#$xz?RdzVIT*M(7LWcAw`Sg)kQw|X zNoMdQC_vn5WFxFb0s%9N!Y5lZYt4^?4=HB5`WD7D^Vowwf;yJIoo?yPiqvk9+TRP`Rzr zG$(Jl8ywl)WLK}_Sfntrb3Oz;c_Z-wr*xpaGsEu#7R6PeJ^fMdpXwf!rdi3NemVZt z7U-I+vB34w8yNhLy<~&GK>3;zA8We44qw=k^WZF-D9JyFgSfBh1xN%Y_%1N$^Jk{z$}BgSWCAQw{M@E0hs=J2VDx<8}mJ zddvS1?rBBZ`%iB<_DL&zy#aL=gG!Qtg*)PKjXUy^;N}2s4%)5GjJI3O{2uzScGKFp zJoI}~><7|+(As!dS^FNuf1IZzns6JQ8*$zAj#@`^gXZa{Z>x1Q-)=$r#@)1M5}_lz zZ)Y$N>6xzV;VEA9ls!|K40?~J9^-euy;?2RNFRWI{#hScwYi4Ld-1EtdqV+@B=av6 z^@pVXV|*8|QhE4~j%9f9CG%FTbliyuH@ku}xGN^}Vh)SOK|G}#0j?5!O-krP>}SfA z{mgNARFxra;xO!L_|}oqjH=RFt~F)}25yMRUO@k19w$3|1q>d=j+LXFzQEw^VNsL^ zfRCEN@i=oN9@j^X0!Q#Z39e-}sdB`*74}A|i7G|MEV3PTXZ0i{$+) zjR%dxZz(F>B& zI&xeZA|Lt;F~of6Gelc3L#$)F{&=j@AkOrS`_R)G*dKTr$IYL^%g><>%M|Kx?;lWy zI~jHO9lq|#xOqFH4!0$!Ll9nfOBoG_`Xy#h4vD<#%T|sgG9I@G~#7~(v=nmiX1YMZM(%DHC z?pe%hp5ROe9h%1=QEZUu2}p0p)+Na@2$G#as%4Na0;ImNNeZM^|5yfvJWEHjw5smg zcR(`bzL0s#6C9#cDMGJ|0$Nvt0 zh~EDrI@b=|@q)(1>D=G(T#WT6z6Kq{b0eO=$N$~RdPM8ex$|K&_L}lc*b$0Hk;nk& zE6;?rcq`9=%A5G3hhJf3V%_S?sq5W$Yh@ zI>qt60Wm9OJ*d1Y{_jsw_&u=foLG3bFuXr|iUMqcA~!Q^h~vH0cRj-s!uy5njl3#e zui$;FG#y7mPQ%_s_H>J%qVRj*&M2*la}%rLl@9(=ss^bMgF> zp2GhTp8p11`8)~F$6$RgOTzQp@VpGq?f74jgy*zR-UZ$~T^tolvBRz}mIC{Ybev75 zf!qq`i0CNZtYu<1e6NkTKUaQ`Azqx=rT@?52l3bf!GJC(pH1{VPHm5$O*G5*f}*Rj zDQ6SWzTvEuhkQ2C?}1)DPdheGD`?b|SGa9rI-)K=1$moOiMovQS;fOmk71-$H^;zVBS?+Qhi$F^d5@g=i0=3_OInl6L$-WsT@yk}Iu58egugEfHm4 zrtdCg|1{ov2j0oCiklp_47i*{5xyKaMrYy4v*j)Z%L+XHHsVIfxZJ6b9^TxnE8pjH zv63h*@w#T&zwvCug0tS^ixaw>-x2@+dC=Qy70Ub;lO-F>IJ>>#8oQHZU_p7u0wF?f$@kT&>uEN z+oG~>Z52)>8j8Kv5??RY>XfpXiRe&<9l$DQF`}9>3wk9EbEcLPPcY1&=umVz5k>U< z9dTZ|lJ+{Z&$0d>%l=3nPV&DP_@`tZ`zXE{gKzY>NPhSW-jlp312)u8;yEq{9E|tL zvOt<^Wk};J3zboQ9_#J34g=QF`F0xF`RK7Xm6)MV;2a`~e0Oa7RgBtc%LaMn5wGgr zuzjur>$`IxV$CuQr53VSzEYsr!Rg`%_!^A#&V;WZ=6i$_=d&@_qSZ2gL9JdJz8%q? z$)lde?^CZGvG^#~b8noLbuo+ejI&I8=sZ)BywX`&6zjPPBk*I7Y$Lzhd*g`LQ3Cp^FdbO{z5>$2X-rk$#tm?LHr@qOj zINU6%ElIH{t}Vu&?f8fTk|T$*@ehCSy==F3td~j`A0v{h#%02E9u=K0^&7@H9*daH zn##pkQcMbxOVU`UTWV@xVJq;JJ%?b|$yK)VCAsx#oIw7j@qo0GI}vyzgnw(k3n|u= zkoru4CTIRS>0_hXd_dZV_b=o9KKB0O#QSqoa^_PB$ZsleJ!b1apX60^R=KXd5a+e; zwC1@SE=#w&#^H=V)pXltI$%XZ&$&3s{Y@(m$m;o@0unuctUPO=xBpA*+^-5W>iLxZ zDAM;?@hzaPwdpl^>^zzODcoc@RN^1Qa55OlHKOlOUj{P|^&or3SfHM@*Vtb4AKS~J z_5a>pI@MD>zfU>uw}CgC;iX~>S9bS`RGhL-elYx?}0qm^zNpLR$JQq zZs-rF4`7?nUVz&CaXV|+c+{}*$aU4YXguOi@zJ1OA*+fnqvw_)r|xH|=l1^pH*n?h zpZ!Cq>;C|%+}_G|OP#KmMkhu1Pxz+v7AN=C3iK9lL2HerTAUbv26>IMI}0>=m&%kj zKNh$a@kuDh5>6ifpW9>{r9PPzMawyQ+iWXv5$;i{J-T23#z(W?SGkw^!rgAJ(+X54 zuK17YL^z=<;!CKUg$k7K+T=MX_ktk$s z;Dlj|<0=;-I1C%+D{?&9SidX3k)Ozq`m*s!_W}5$7rJ$w{oU$Q%QY2}*?R5j+$m{I zbxpO-mp#9pF|NGj_0BWbJkoh)I5`M;Xxx}S8z7POh`q;jb|&a8$;4N$M0 z%k1ze&Dw65vbMUfH(TNz>eVZL)L3-I{oCfjkz`Zb?#>n6%`-J!vC+7Lw7NI&PxPsq zPWY{R)!F*8k2^0YvKHZ7-YGe^aAKC)P&T^LYP!Iro-*?mRhN##n$Y<%VADAGW2XWY zVclMLdkSJBWeT~)KLq|7EeUDFeZY-hVqI<8+V2B(Vco=T-^n(L?G+1rOLp9Q;FsT* z_;dq20h%DaSr2Z$1=imwSnX$oIZw*eA&|eMi*;eHqa1gYd&zDMXQb9twyOocEL~Xb zQhQa10uu`yjiuYuj;A{|po~9BX{-z*^696R3R*ia*7wYJnOxdBUaY{0q?I=4%=eI8 z+-6(6Op2AcptQMjp#`V0pRrcVYg^w5ub$G?orWS~`|8e};jZqqy8Z44I-yZIW3uq! zoSNyPfnV84-{v&n{TZZjB^Il7Mnh`@Uu)dk8};pnYoTR!P0X^)+JbZ5saO61$p1T7 zIBmY+k73PBz_MCf5^!<>r}}i(()Boo2{er8-|wWVNnuI8G$ zA-Df&zoGcBd$>6tdAgCOy9?zMSx3%kuzED%UYylxYg^x-MkE50Ddbnx9`?ukfc(DY z`rX%w^X->XFPkjZiUD=2JLk1gO^xlX?xIfO&knJ!Pb`^-p;fhL@jLw&rUbibR% z=j_`Ro$+@xQY$f1G)n(x{ni)#M$i?=DB%qC#hKB7jPZmgTQM8q1*OLJ|3BapesCyz z(2)hDgO8zgMZl8NkILAD{+ZXNFMSs+YeCC!PJF{ho$JoQzjs;fW;WnG!#~0a4RFs^ zJhM0V|_yg zYGyM3-OmkurPE{{X8y&$p!D~nrXqdm7w)`uzD~ zJku)IXq0u-rEPh3gQd=m*4-laz?su(R`UnYE9a(s1iUw(H8eVBy4B&{#rRTf9c`_s zZ+Nhww$Qyd)v?cyem5ULpOalU$IY>ETyI>(HW~xm?~~d`GwSpY$<#5*UJCl=l}w&e zmHlVQwTCM&rO{hzC|Y+OX7#Hzm{+(LT9DqgHhlVwip{il+`}zu8bkCG z8|jfqud$A_R!nYK(V((Qdkv0G|3cswX1V34+}5{=e*UL6yW2;wvD+F=6SI_7Er3ii zK6VpWt1d#Ta-VwcEhjpk`P( znMSjL(y3i?TC;n2(c8e*b5nVIMJ;Ee*&AP4Xf&swmF~Sd$8P_nXyZTPV`+ONF_xR} z=ehWJy4y{xZ4=P8Ef|gdsP}Kdc-zv%PhyB31mf^ez5W(T6RnAQQ9t%&b)$Jd z^PFB@o0$9YKK7xmXM0nwEBaKa>kL*`=*$10u2OrtP=Z;JCayiElRV#%4b$a zD=SvSM(b1%^exN}kggi&M-SoHCD0=f z4K|3!@H_%7?2yvL!SE>sj+ss91EN&l5dK&Yn`?L>hI=H}Iw60Qn z=gRF(`U34ue6jIA@EwQUG9S{LBOc<@wp!2dBI_utHLqcA!}^A_TKC>G$1DC(ES1ts z=8X+!{3h_R`3+Jse(p&rJB&lJ<(@ zOVyn!bG};xn?O}({LAF;IQTv1xN$k-m-}LRUyO^&Da1wlqf>OsvD4_`%__*zb$cnD zzS9#N*bJw4>Kr=kRACk2+Lur3^iJ#&U>oVmokIJpWSCU8Ty7fKQi2UzL@e2#RWfdH(j&`r!*?l*q&9d zhs5woqiM_e;j2R;h5LTy7C0j$fpfHB#9+ ze1Xe-I5qQNDQa>g)o{?#cqldXUt=Uz9D)4M)u7nd{bD*10QQd z75nBwd^0=Mbg(bJnUh+0&^UEyiSDlJ|sbOCZ!Iuj>md1iq{lPTljSg?* zU2XnelB34Qh2#uF&|mMu&e1#=x?6-NWCXEqu5Z?tMU#Z{;2@6SC@zc0@uAe2th#;$Bn9Cw|kQ z&-|vrUt#q<2|6|$b*6gH2M*T#3i%lR@85^>EbveAgF5^-;*u?1PX_LY>QMjNqnHV` zT)7UXxtt8#%uY%-6lnlC1^fP4yAW#wc_t`j7~Ave^N?#^)Vu^3YwhLgXK!&GvT=}- z!QVJ${u8hlslAd?-;bGZ1|B0dGb#1W81T6W_zZl}BYiKT7R1Zh&Tx7)U_OWI6&P%PHRuC{ULBUi|D1PRf%82uJ%X7i|GBMTG#YfwT|Q+JiOjj;x}*5 zJ@^=m+n`8Fy$SS#7mFfJCyiwP$Y!UJWb*iCS-TdJxgVkFR^zlCwJG1VMBpBs3wa_B z9~oXuji_5n1zvn4935WRsoADJb-!9$-=}k?WSsce$t-S)G|0LV{~E*+r1A)^uALVj z3-e+i90gAPQ<33q>_i*{3uoq0^Wm(1mF=L9^%;=Qror##YnMU1H+I}flENR6ha@?l z?IC?Hm5I16E?iDrt8p<|*dfTNtawMduF(uG(d30@9`7j@8m0eHKFULRDGz-kwHHp+ z2xXWhqrCakMm73UGY;PD;$4;CT7yB(GuSy|Q4xDOz@El7w&9B%uK6qtK6{=UoHs9$ zpWb0lOY!~}*A|x*B^*M^3(i*;ZE?}=4|;CT^G<2+aloaqr`RtG>#swc(B)XKD_uqC zgs%hL$cFoSf;RX8bLLAB zHB%+t8TDd4m^M0BWYfmI1l{9i^2O4iC2e6qopWI zKw0ELohD9|icr2md@N=cxE88I3u@KOYV%-h4q|Rl+WoPS!U}fR9OE~swxOiV2*Tspg9>R4ci6PdV_d%bh4moQR8k7TBvT( z;BHoQoS$=s5*A`JJ@TKU!$@r-)l)pZf{tX5rd< z!Tn=sZ6%rRh4ocaO~6h+J5w!3)MeRxKe&zqd*4D?<9*{C0~@&!qkNT0{1b!N7duBu z8slK`Pptfe_0=hdPX-1?Mu8&ritvLew?X9Dh!Q`h>p;&!ietr`Fo?0}P?jQ4pXp3L^yin+0Z1cX z>HZF`XrSwWq-!FqzFunT7zd2NK1-V2L3o4FM;}}(twV3$hl`}p*@y{=GgPCbL!!Q* zJ|TLO9G~T;Q=re7qZ}8iS%rI=S7fU}^Xfb3Bq?4#$zq57Ak}2l<3tbPfW)<=i6s)( zQQ}-^(N8l>eLcuERWt!lW{z-`IiWX+jc~q;uOJa=LgbDWR3?>2aB|vJuV^Gb!vvX0 zEHI;o$M4i06@Ke_o{~~I)lTDHRcR$8*13oRQg~%~$H~AA;dJ!f+_0gTA7-#W)M=`w3x{)`PI17#+>dmezI*PJFn$CRom1*Xt`VuUz!T*boa$iNt_XQw)2NT zO6OA&Z&b7UnBr$adBpZLJ5@VKm*?JeFZO)hmR0MAekS10C`!lOV=+UK0sm`bmHmsLQ-3(Z zn_d+PFW4)Hd%NC{?V-u`mTaN>qusRb60T>1BEIKZGatozO3$%w0h^*=lg81!@Cj_^ptNB%i*8}`Md$7li0jEDbrIj#y^199ov)v!_e zn5_#M(fy{pW@wQ1Hu6I zGWi3pn8|fAuqZ_L*J1~xs?A1@w|k6CuYmSkTtBUkFsgAi=DkV94MikmGiR=~Kd@6H zsMbC#rJK}V!LE9VG)`O*VZ*^FS9+^A-NTpP?6cKQwj0EsdYXj_ti%HjYPx3glTh1T zpkNcx)>vo)@M~yD&bb>o=lH0MRg%i05)i?^HVw7e7_7io{X!L(i6<_%3Ec3HJK=>p z2>QAdgZTF-*O4Op+_t@1?JW{CsL6ZKwDID_lD37`Zp6-Mp|!h8(zU4ZKLPfBoWX$g zcx9@-Mf=jllJON@d^|c6@nY=)o*vS^gtb4)i=(COh-MWFM1q=attYh{QLvp+)k{C) ztR(|Q9$A%D`)B`Fp~Y_(GSQm#p$ydXo#2apn(G|#7C3i@%>m4ZZSSddSx6&1asM4S z^C6ojHE$xV7cTU5&7k_ef*HE6gJ&^Twe$0X%O+Cn2Mxmd^2?Y)t zdg`m7+><%c(p}TV=8O6|_JbPqtslv7uvat}GSwGACq56?3ZN5BH{jj}ydw-PO1%9b z%!#kZsGSy^Vv2UI*eV=lZ7NgRRE7Tt=nCPPx-Lz4)HT_~xo|!)bXb&@CM;J{*5PEL z`2C;ZU8bsg6yL2;zB34NzB70ezrPDo;v7(n#YoZE)gP`nspg7=T=f0VF``jaK50(J zbr>AH@Dz9hgZNGl=P4Ibv921#r+c^#O+EQ%Roc)8ld%tEbs`-ZA~dxd>t{+PtL9Xb zW`Q#k(WgvS%Y2HoxJjFJkOO|E0Y4Xjk1$|FcLWW!MT>q8YzrDNKR(5*;5tu&HzgkA zDE?`j=Yrljab1tg-JU&-=Kp1q$#}VB!g|sc%5>Bq!c``Nkj-X5Iv|XSUXJKj1mhmS zxD59{2O1far+eIc7ov@BTtoxnF#4eU5?m^jXEMeDAEFQGJE?sbXKjYYBW?LL2KV5)!PBxERpm85(jJV(-?9o)vDJu`aHs2O7fBIkhsqjv zIyY*y2M5-U6Mha1XLY&^a*smDK+qEKr4Pl*&|CefEjT@3h|muZKkDi0=vPY-y?ze# zW_c#`^seh|PeVO6hKFFM6ASEymQk{)kuq|(w3pgd4LqW`Ks-C~bTqam%!`LWyXMh5 zJnz6iwev0fzk`eT^$+l`DkUpljli9LvS|?_sK?uX10b#FxdD_r8oS=1DnD^K?S&D? z@?v`#Nl%oVmI()x7rYcWI zoZ04TNR%v;m)78sjMvy4L>^%SgD@EoZj~k>$I~(TW-Ov}sbC#P_mw^Ln+jWiwZY2T zO2-V028~Er<3_Fh;F!9x_LG6{(5{QTG(JX#YopK`k%*<1*(6W)2X5^on&^Qnud4gD z9kQh|?M+syXG-Ze$*t%PAMcRwGT;?Jd=)Mm^~Fr|g;pT!koUO*r5x0>F2-B(5s{W^ zcLL|egTCsh2WP=@@e?1>V#v|J>+WJSP(;Cx-nI2WC_K#%y~{ z%?G*vxbjHqnFCq&l}plG1qEr&oW=}0U!jJrLz=sHV;bUOK3V;pFAdZr$9>#Sk)YsJ z*h%oI9t8VM^q+)(steVLq77yW8o_o`AN2lFiFQf`(F*zS$FU)TmhD%D;OXz+C~5wb zgd0mMI~z?a*hmggo-9k2W5>m{8pJ(PGa>@gKk>t$^^n2Z#FnOUtRzj)jxuYJ9)o?p z6)_vT7?e`n{et}zL3jbs{v0!iBJ_td@cgL6ZE6x`R~y8&D3fb3h_|6kmv1uL^&OGM z2|U|#eJ1gnAjLsR@5i_e6s=01*zetqGQW$xc;lV|s^dE$Zc}dlq=PbEPD5!mKH8yO zh4_eCv`a6(q}1gVDPG?fmHKV~U!-M_|DvQk8lyFg@)^W+EX^QJ0X+C1vmOvaTnEQ? zjH^PcsxK5uJGBD#_ESz=Yg+K`553+{)B61gXIcRq--hdJztm16!j+Ep{@u08HH7tC zIGF3Xepf}~;nX3J)@@4db71}=zKfeYVAty|YU%V?(IV^zl{yJAtsry$KLojsF_4T? z`@RUyhHMUN1Zbkgtrp)7Ss{^Ai%~pDdsWj8`=57`{Z!iLmI+cjVi8U&Y#h^A(D-xP zw(9TN26z!;aiT`d(ja=Z*J)W$lTr71?*1zaQq>14L06swy)6^uFUBCxQ`J9up9RM! zWWU5DpR_o-XtiQqay3UNu@&a^Mk{7kfC`yBWlXgC{+USPQ9j$D>0Q>Ba9c zDmFZQj$JR|)?LBbsQ=ma%n3OY?fKe89FsGs^Jp9cAY~MrRgUMK1Kg+4KEiv%Vl1JE zp5L`)W8HtYI-j*DOKDN|feVGH9cF0lNMf@U{!P^GF~UiIDPmKW0AoaNw|}^B8m*Gc zqqfQI3QWJoF`)4p$M0Uj5@{j z)Qhu#oqS6z!v}sNVL&X98GTF|XWiqO=qSA@&!rcuW8)opH|oU;Q3B=_z8#0zHZC|> zcxe@tF$zzkf+ts%G0Z4)mk9h=t(c|t34ifB&36qTYBRTHsQrN}jj3x74ip~teh-NOcWHhXPw^ZQ9+lj@32W zVPbXtDVoLVdJ=nnqCa}^+o(bOR!X;TUR8>xqj)+h9bXm4VtFpbX)f6fldn9D%O@Y# zPePPfL^CdE>;-)awPGW%GZuINR(ld8tz_G3VziR*1E&r&7Pw?>1Ib9DrNq1Mz~!np^wlj$U8=hCcdxtqH^AQUHNZ5 zu4srm7w39i-c#;Q$9^f-3I0Z75Dkb1f^}J=L;UENo03@)?NZ2;m0xDfMp?aHaO^JFB?Q zpPfkl1o1P{Qrj~e{7ZR_6d`17b^lIhQ9+}jF3r)mli~;$G`32!tPe{XD`F`Emqx|Z z?DT}Q>n_2d*dWICevtK%H)`1~u88`;7~}SkuLa%Tj(*pROM8rHyBqh!_vpoeI9Wd3 zQRqx(UPO8^t0xWbojpbP_A103hmMXoq**@!Pu@iPe#_%bN3!fT@+XS>7Ri1^85j@p zp=olVj$vAx^rAQF>@W%bz{^Tsj|SY$=*?0{(V>wklKdp+LQE2tx0U7Xt>kTs&SrTZ ziqLrXQ*!DPIk`^COS;615G6SS^NzTZbZ|{{Ei|Jy-O!{%?hWnXEjW3vNe4^bK4BjA z2c&W2I^$!M%sUb962Vn882egrz#b;K5=Vvg;_`@!#Vgi}zKC(}X7oAD_xwg^C>u9c zYw6sV)dd|i&sAdYy}*FLUD7Z9IB!H{%4Ho0>BTD(Wo=88m5Q=RU$L=T<%6Dcb%BS< zm?NF`Q(cqG!P+*xbtm7t8(!qPwb?F6_k}H|R66y>r=(lmm%HY=HVCiht2aL8+UR-} z|DPiI&SBS{Q!16}(OT~-IQ4?tOtFayd@n1~R=s!)S~xlSVv@8q{V>1jLzeRy$6+UA zL%}WJ^e+p3f*8!I^?ETB{tNnJuu(7CBV5sPj8ULR*J0@5>NYqw+H*0}Cq*tn>Y*OD zN4@EY3uRgPO^02Nu+k<3A4O@y;jyY}o&MvYJ5`&w;k!HQM3sRXM*kXvYCTs*cRB;+ ze|Uug3qJit%_#M4>?dsE-sO7iO9;b3@6oT?DDktae>}PL*;6N%YFafL?*H+`())h= z{+4G?oml$Jsqb%DffXK60h{0bL7QW~cBNFgna;w~i>={9kTHV(hYc;u*-G#LQZz_8 z98PPIxwdAc;6yXghyQeAdP@qUTOWlr;2%@UGFrGZcP!U#Lgdafw=GZEm@#|qOOaU>$Fpdpn^T$w~KN-JnkljEjQ*s&#V$J2-~LaVezGguAB_Mystp9F@~??afTUA7#Lv_ zXDwHWkA_W%;y(PQ!VR>xjf7mJ@GnJ+y}oq)@oYy zVm546E=KE81=WOMWR3M_aUbKdt&gH^p;K=?EWS*$SU|4>=6V$^ej2n#l zU6#_~TxdQHJwIq>vdo1GrPOL3pmtE{vaY>5WD~4?Jj&%=YLJyADs{T1YMQsM~)cu4}hd7d%5zaG- z=IcS%^Mbj{=@Dn3;o;> zNfA~`9*1rb;t7zYB!SZ8N1o=x>7XLs-|5(#2g=4~_(>SknguhX_P9 zJ_v92P%O3u%P(Q`$sAgavy~}Nf7ZIs!Y0oU#(jQ>$OHUX&G1isnoWf5_beap7;oCkY22hw8<=6xhg|8b3413!1w z`kB%YBl!Pd<~EZ244FaHQRkh55{?AtD0{Zgf+^VN(1<*Y6^hC&1~k2Rf7r@oC3
  • P|yhg3)Ed}n)`~P!pS_F50-~axe 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 literal 0 HcmV?d00001 From 1e80ff171acf157760778261b65cc70b4bcd4cf7 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 22 Mar 2023 14:49:57 -0400 Subject: [PATCH 55/57] Updated m503 output. --- misc/M503-output.yml | 111 +++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 63 deletions(-) diff --git a/misc/M503-output.yml b/misc/M503-output.yml index e40e282..a24e829 100644 --- a/misc/M503-output.yml +++ b/misc/M503-output.yml @@ -1,63 +1,48 @@ -Recv: echo:; Linear Units: -Recv: echo: G21 ; (mm) -Recv: echo:; Temperature Units: -Recv: echo: M149 C ; Units in Celsius -Recv: echo:; Filament settings (Disabled): -Recv: echo: M200 S0 D1.75 -Recv: echo:; Steps per unit: -Recv: echo: M92 X80.00 Y80.00 Z800.00 E691.50 -Recv: echo:; Max feedrates (units/s): -Recv: echo: M203 X200.00 Y200.00 Z12.00 E120.00 -Recv: echo:; Max Acceleration (units/s2): -Recv: echo: M201 X1000.00 Y1000.00 Z200.00 E5000.00 -Recv: echo:; Acceleration (units/s2) (P R T): -Recv: echo: M204 P1000.00 R1250.00 T1500.00 -Recv: echo:; Advanced (B S T J): -Recv: echo: M205 B20000.00 S0.00 T0.00 J0.01 -Recv: echo:; Home offset: -Recv: echo: M206 X0.00 Y0.00 Z0.00 -Recv: echo:; Unified Bed Leveling: -Recv: echo: M420 S1 Z10.00 ; Leveling ON -Recv: Unified Bed Leveling System v1.01 active -Recv: echo:Active Mesh Slot 0 -Recv: echo:EEPROM can hold 2 meshes. -Recv: echo:; X-Twist Correction: -Recv: M423 A0.00 I110.00 -Recv: M423 X0 Z0.00 -Recv: M423 X1 Z0.00 -Recv: M423 X2 Z0.00 -Recv: echo:; Material heatup parameters: -Recv: echo: M145 S0 H200.00 B60.00 F0 -Recv: echo: M145 S1 H240.00 B70.00 F0 -Recv: echo: M145 S2 H205.00 B45.00 F0 -Recv: echo: M145 S3 H260.00 B70.00 F0 -Recv: echo:; Hotend PID: -Recv: echo: M301 P23.48 I2.99 D46.09 -Recv: echo:; Bed PID: -Recv: echo: M304 P163.96 I28.03 D639.32 -Recv: echo:; User thermistors: -Recv: echo: M305 P0 R4700.0 T94162.0 B4160.0 C0.000000000 ; HOTEND 0 -Recv: echo:; Power-loss recovery: -Recv: echo: M413 S0 ; OFF -Recv: echo:; Z-Probe Offset: -Recv: echo: M851 X28.00 Y-20.00 Z-2.02 ; (mm) -Recv: echo:; Stepper driver current: -Recv: echo: M906 X860 Y900 Z1000 -Recv: echo: M906 T0 E550 -Recv: echo:; Hybrid Threshold: -Recv: echo: M913 X183 Y183 Z41 -Recv: echo: M913 T0 E60 -Recv: echo:; StallGuard threshold: -Recv: echo: M914 X65 Y68 -Recv: echo:; Driver stepping mode: -Recv: echo: M569 S1 X Y Z -Recv: echo: M569 S1 T0 E -Recv: echo:; Input Shaping: -Recv: echo: M593 X F40.00 D0.15 -Recv: echo: M593 Y F40.00 D0.15 -Recv: echo:; Linear Advance: -Recv: echo: M900 K0.05 -Recv: echo:; Filament load/unload: -Recv: echo: M603 L0.00 U50.00 ; (mm) -Recv: echo:; Filament runout sensor: -Recv: echo: M412 S0 ; Sensor OFF \ No newline at end of file +echo:; Linear Units: +echo: G21 ; (mm) +echo:; Temperature Units: +echo: M149 C ; Units in Celsius +echo:; Filament settings (Disabled): +echo: M200 S0 D1.75 +echo:; Steps per unit: +echo: M92 X80.00 Y80.00 Z800.00 E691.50 +echo:; Max feedrates (units/s): +echo: M203 X500.00 Y500.00 Z10.00 E30.00 +echo:; Max Acceleration (units/s2): +echo: M201 X500.00 Y500.00 Z100.00 E5000.00 +echo:; Acceleration (units/s2) (P R T): +echo: M204 P500.00 R500.00 T1000.00 +echo:; Advanced (B S T X Y Z E): +echo: M205 B20000.00 S0.00 T0.00 X8.00 Y8.00 Z0.40 E5.00 +echo:; Home offset: +echo: M206 X0.00 Y0.00 Z0.00 +echo:; Auto Bed Leveling: +echo: M420 S0 Z10.00 ; Leveling OFF +echo:; Material heatup parameters: +echo: M145 S0 H185.00 B60.00 F255 +echo: M145 S1 H240.00 B80.00 F255 +echo:; Hotend PID: +echo: M301 P15.95 I1.30 D48.96 +echo:; Bed PID: +echo:echo: M304 P110.38 I6.12 D497.30 +echo:; User thermistors: +echo: M305 P0 R4700.0 T94162.0 B4160.0 C0.000000000 ; HOTEND 0 +echo:; Power-loss recovery: +echo: M413 S1 ; ON +echo:; Z-Probe Offset: +echo: M851 X25.00 Y-25.00 Z0.00 ; (mm) +echo:; Stepper driver current: +echo: M906 X860 Y900 Z800 +echo: M906 T0 E550 +echo:; Hybrid Threshold: +echo: M913 X183 Y183 Z41 +echo: M913 T0 E60 +echo:; StallGuard threshold: +echo: M914 X68 Y70 +echo:; Driver stepping mode: +echo: M569 S1 X Y Z +echo: M569 S1 T0 E +echo:; Linear Advance: +echo: M900 K0.04 +echo:; Filament load/unload: +echo: M603 L0.00 U50.00 ; (mm) \ No newline at end of file From d628b6e9ef29b1100be7aa2375d241ddf0d7d73f Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 23 Mar 2023 12:05:36 -0400 Subject: [PATCH 56/57] Updated 'before you begin' section to let users know that is assumed to be the username. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 28965b5..3a6c6d5 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,8 @@ 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!* -- There is an assumption that you are connected to your host Raspberry Pi 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 USB. +- 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. - 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). @@ -56,7 +57,7 @@ I work on this repository all the time and a lot of new features are coming. Wat ### Prepare the microSD Card for Flashing -- Size: `8GB`. Accordinig to Sovol, the largest size that you can use is `16GB`. +- Size: `8GB`. According to Sovol, the largest size that you can use is `16GB`. - File system: `FAT32`. - Must not contain any files *except* the firmware file. From 38cabc75133b0ef5ab10e688102ee4cd79984b9d Mon Sep 17 00:00:00 2001 From: Bassam Husain <61985779+bassamanator@users.noreply.github.com> Date: Fri, 24 Mar 2023 20:36:06 -0400 Subject: [PATCH 57/57] Update README.md Before you begin section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3a6c6d5..d2e5cce 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ I work on this repository all the time and a lot of new features are coming. Wat - 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 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. - 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). - 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.