commit faffb7f2f553742797d754332e4e2c9ea1114caf Author: steeb Date: Sat Sep 28 09:52:14 2024 -0700 New Backup on boot - 09/28/2024 - 09:52:07 AM diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c72d08c --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.env +secrets.conf +*.swp +*.tmp +printer-[0-9]*_[0-9]*.cfg +*.bak +*.bkp +calibration_data_x_20240902_083646.csv +calibration_data_y_20240902_083646.csv +*.zip diff --git a/README.md b/README.md new file mode 100644 index 0000000..c975ae8 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Klipper-Backup 💾 +Klipper backup script for manual or automated GitHub backups + +This backup is provided by [Klipper-Backup](https://github.com/Staubgeborener/klipper-backup). diff --git a/printer_data/config/KAMP_Settings.cfg b/printer_data/config/KAMP_Settings.cfg new file mode 100644 index 0000000..dd2753e --- /dev/null +++ b/printer_data/config/KAMP_Settings.cfg @@ -0,0 +1,36 @@ +# Below you can include specific configuration files depending on what you want KAMP to do: + +[include ./KAMP/Adaptive_Meshing.cfg] # Include to enable adaptive meshing configuration. +[include ./KAMP/Line_Purge.cfg] # Include to enable adaptive line purging configuration. +#[include ./KAMP/Voron_Purge.cfg] # Include to enable adaptive Voron logo purging configuration. +[include ./KAMP/Smart_Park.cfg] # Include to enable the Smart Park function, which parks the printhead near the print area for final heating. + +[gcode_macro _KAMP_Settings] +description: This macro contains all adjustable settings for KAMP + +# The following variables are settings for KAMP as a whole. +variable_verbose_enable: True # Set to True to enable KAMP information output when running. This is useful for debugging. + +# The following variables are for adjusting adaptive mesh settings for KAMP. +variable_mesh_margin: 0 # Expands the mesh size in millimeters if desired. Leave at 0 to disable. +variable_fuzz_amount: 0 # Slightly randomizes mesh points to spread out wear from nozzle-based probes. Leave at 0 to disable. + +# The following variables are for those with a dockable probe like Klicky, Euclid, etc. # ---------------- Attach Macro | Detach Macro +variable_probe_dock_enable: False # Set to True to enable the usage of a dockable probe. # --------------------------------------------- +variable_attach_macro: 'Attach_Probe' # The macro that is used to attach the probe. # Klicky Probe: 'Attach_Probe' | 'Dock_Probe' +variable_detach_macro: 'Dock_Probe' # The macro that is used to store the probe. # Euclid Probe: 'Deploy_Probe' | 'Stow_Probe' + # Legacy Gcode: 'M401' | 'M402' + +# The following variables are for adjusting adaptive purge settings for KAMP. +variable_purge_height: 0.8 # Z position of nozzle during purge, default is 0.8. +variable_tip_distance: 0 # Distance between tip of filament and nozzle before purge. Should be similar to PRINT_END final retract amount. +variable_purge_margin: 12 # Distance the purge will be in front of the print area, default is 10. +variable_purge_amount: 30 # Amount of filament to be purged prior to printing. +variable_flow_rate: 12 # Flow rate of purge in mm3/s. Default is 12. + +# The following variables are for adjusting the Smart Park feature for KAMP, which will park the printhead near the print area at a specified height. +variable_smart_park_height: 10 # Z position for Smart Park, default is 10. + +gcode: # Gcode section left intentionally blank. Do not disturb. + + {action_respond_info(" Running the KAMP_Settings macro does nothing, it is only used for storing KAMP settings. ")} diff --git a/printer_data/config/KlipperScreen.conf b/printer_data/config/KlipperScreen.conf new file mode 100644 index 0000000..6ce43cd --- /dev/null +++ b/printer_data/config/KlipperScreen.conf @@ -0,0 +1,7 @@ + +#~# --- Do not edit below this line. This section is auto generated --- #~# +#~# +#~# [main] +#~# print_sort_dir = date_desc +#~# print_view = list +#~# diff --git a/printer_data/config/crowsnest.conf b/printer_data/config/crowsnest.conf new file mode 100644 index 0000000..38a87fe --- /dev/null +++ b/printer_data/config/crowsnest.conf @@ -0,0 +1,43 @@ +#### crowsnest.conf +#### This is a typical default config. +#### Also used as default in mainsail / MainsailOS +#### See: +#### https://github.com/mainsail-crew/crowsnest/blob/master/README.md +#### for details to configure to your needs. + + +##################################################################### +#### ##### +#### Information about ports and according URL's ##### +#### ##### +##################################################################### +#### ##### +#### Port 8080 equals /webcam/?action=[stream/snapshot] ##### +#### Port 8081 equals /webcam2/?action=[stream/snapshot] ##### +#### Port 8082 equals /webcam3/?action=[stream/snapshot] ##### +#### Port 8083 equals /webcam4/?action=[stream/snapshot] ##### +#### ##### +##################################################################### +#### RTSP Stream URL: ( if enabled and supported ) ##### +#### rtsp://:/stream.h264 ##### +##################################################################### + + +[crowsnest] +log_path: /home/biqu/printer_data/logs/crowsnest.log +log_level: verbose # Valid Options are quiet/verbose/debug +delete_log: false # Deletes log on every restart, if set to true +no_proxy: false + +[cam 1] +mode: ustreamer # ustreamer - Provides mjpg and snapshots. (All devices) + # camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only) +enable_rtsp: true # If camera-streamer is used, this enables also usage of an rtsp server +rtsp_port: 8554 # Set different ports for each device! +port: 8080 # HTTP/MJPG Stream/Snapshot Port +device: /dev/video0 # See Log for available ... +resolution: 1920x1080 # widthxheight format +max_fps: 15 # If Hardware Supports this it will be forced, otherwise ignored/coerced. +custom_flags: --format=YUYV +#custom_flags: # You can run the Stream Services with custom flags. +#v4l2ctl: # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of. diff --git a/printer_data/config/moonraker.conf b/printer_data/config/moonraker.conf new file mode 100644 index 0000000..6b356e7 --- /dev/null +++ b/printer_data/config/moonraker.conf @@ -0,0 +1,111 @@ +[server] +host: 0.0.0.0 +port: 7125 +klippy_uds_address: /home/biqu/printer_data/comms/klippy.sock + +[authorization] +trusted_clients: + 10.0.0.0/8 + 127.0.0.0/8 + 169.254.0.0/16 + 172.16.0.0/12 + 192.168.0.0/16 + FE80::/10 + ::1/128 +cors_domains: + *.lan + *.local + *://localhost + *://localhost:* + *://my.mainsail.xyz + *://app.fluidd.xyz + +[octoprint_compat] + +[history] + +[update_manager] +channel: dev +refresh_interval: 168 + +[update_manager mainsail-config] +type: git_repo +primary_branch: master +path: ~/mainsail-config +origin: https://github.com/mainsail-crew/mainsail-config.git +managed_services: klipper + +[update_manager mainsail] +type: web +channel: stable +repo: mainsail-crew/mainsail +path: ~/mainsail + +# Crowsnest update_manager entry +[update_manager crowsnest] +type: git_repo +path: ~/crowsnest +origin: https://github.com/mainsail-crew/crowsnest.git +managed_services: crowsnest +install_script: tools/pkglist.sh + +# Sonar update_manager entry +[update_manager sonar] +type: git_repo +path: ~/sonar +origin: https://github.com/mainsail-crew/sonar.git +primary_branch: main +managed_services: sonar +install_script: tools/install.sh + +[update_manager timelapse] +type: git_repo +primary_branch: main +path: ~/moonraker-timelapse +origin: https://github.com/mainsail-crew/moonraker-timelapse.git +managed_services: klipper moonraker + +[update_manager KlipperScreen] +type: git_repo +path: ~/KlipperScreen +origin: https://github.com/KlipperScreen/KlipperScreen.git +env: ~/.KlipperScreen-env/bin/python +requirements: scripts/KlipperScreen-requirements.txt +install_script: scripts/KlipperScreen-install.sh +managed_services: KlipperScreen + +[update_manager print_area_bed_mesh] +type: git_repo +path: ~/print_area_bed_mesh +origin: https://github.com/Turge08/print_area_bed_mesh.git +is_system_service: False + +[file_manager] +enable_object_processing: True + +[update_manager Klipper-Adaptive-Meshing-Purging] +type: git_repo +channel: dev +path: ~/Klipper-Adaptive-Meshing-Purging +origin: https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging.git +managed_services: klipper +primary_branch: main + +[update_manager fluidd-config] +type: git_repo +primary_branch: master +path: ~/fluidd-config +origin: https://github.com/fluidd-core/fluidd-config.git +managed_services: klipper + +[update_manager fluidd] +type: web +channel: stable +repo: fluidd-core/fluidd +path: ~/fluidd +[update_manager klipper-backup] +type: git_repo +path: ~/klipper-backup +origin: https://github.com/Staubgeborener/klipper-backup.git +managed_services: moonraker +primary_branch: main \ No newline at end of file diff --git a/printer_data/config/printer.cfg b/printer_data/config/printer.cfg new file mode 100644 index 0000000..a70e3af --- /dev/null +++ b/printer_data/config/printer.cfg @@ -0,0 +1,891 @@ +[include fluidd.cfg] +[virtual_sdcard] +path: /home/biqu/printer_data/gcodes +on_error_gcode: CANCEL_PRINT + +# This file contains common pin mappings for the BigTreeTech Octopus X7 +# To use this config, the firmware should be compiled for the STM32F407 with a "32KiB bootloader" + +# after running "make", copy the generated "klipper/out/klipper.bin" file to a +# file named "firmware.bin" on an SD card and then restart the OctoPus with that SD card. + +# See docs/Config_Reference.md for a description of parameters. + +## Formbot / Vivedino Troodon Mini +## Firmware Version: 1.4 +## Compiled By: YGK3D +## Release Date: 15/02/24 + +## *** THINGS TO CHANGE/CHECK: *** +## MCU paths [mcu] section +## Thermistor types [extruder] and [heater_bed] sections - See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types +## Z Endstop Switch location [safe_z_home] section +## Homing end position [gcode_macro G32] section +## Z Endstop Switch offset for Z0 [stepper_z] section +## Probe points [quad_gantry_level] section +## Min & Max gantry corner postions [quad_gantry_level] section +## PID tune [extruder] and [heater_bed] sections +## Probe pin [probe] section +## Fine tune E steps [extruder] section + +[include mainsail.cfg] +[include KAMP_Settings.cfg] +[exclude_object] +[firmware_retraction] +[exclude_object] + +[mcu] +## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify +##-------------------------------------------------------------------- +serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_340041001047333133343238-if00 +restart_method: command +##-------------------------------------------------------------------- + +##################################################################### +# Accelerometer Settings - Uncomment to Enable +##################################################################### + +#[mcu adxl] +## Obtain serial number by "ls -l /dev/serial/by-id/" +#serial: /dev/serial/by-id/usb-Klipper_rp2040_E6626005A7867B33-if00 #usb-Klipper_rp2040_E6625887D33B9337-if00 + +#[adxl345] +#cs_pin: adxl:gpio9 +#spi_software_sclk_pin: adxl:gpio10 +#spi_software_mosi_pin: adxl:gpio11 +#spi_software_miso_pin: adxl:gpio12 + +#[resonance_tester] +#accel_chip: adxl345 +#probe_points: +# 125, 125, 20 + +##-------------------------------------------------------------------- + +[printer] +kinematics: corexy +max_velocity: 600 +max_accel: 20000 #Max 4000 +max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V +max_z_accel: 350 +square_corner_velocity: 5.0 + +##################################################################### +# X/Y Stepper Settings +##################################################################### + +## B Stepper - Left +## Connected to MOTOR_0 +## Endstop connected to DIAG_0 +[stepper_x] +step_pin: PA3 +dir_pin: PA4 +enable_pin: !PA1 +rotation_distance: 40 +microsteps: 32 +full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper +endstop_pin: PF2 +position_min: 0 +##-------------------------------------------------------------------- + +position_endstop: 250 +position_max: 250 + +##-------------------------------------------------------------------- +homing_speed: 100 #Max 100 +homing_retract_dist: 5 +homing_positive_dir: true + +[tmc2209 stepper_x] +uart_pin: PA2 +interpolate: false +run_current: 0.8 +sense_resistor: 0.110 +stealthchop_threshold: 0 + +## A Stepper - Right +## Connected to MOTOR_1 +## Endstop connected to DIAG_1 +[stepper_y] +step_pin: PC2 +dir_pin: PC3 +enable_pin: !PC1 +rotation_distance: 40 +microsteps: 32 +full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper +endstop_pin: PC15 +position_min: 0 +position_endstop: y +position_max: y+8 + +##-------------------------------------------------------------------- + +position_endstop: 250 +position_max: 250 + +##-------------------------------------------------------------------- +homing_speed: 100 #Max 100 +homing_retract_dist: 5 +homing_positive_dir: true + +## Make sure to update below for your relevant driver (2208 or 2209) +[tmc2209 stepper_y] +uart_pin: PC0 +interpolate: false +run_current: 0.8 +sense_resistor: 0.110 +stealthchop_threshold: 0 + +##################################################################### +# Z Stepper Settings +##################################################################### + +## Z0 Stepper - Front Left +## Connected to MOTOR_4 +## Endstop connected to DIAG_4 +[stepper_z] +step_pin: PB10 +dir_pin: PB11 +enable_pin: !PE15 +rotation_distance: 40 +gear_ratio: 80:16 +microsteps: 32 +#endstop_pin: PC13 +endstop_pin: probe:z_virtual_endstop +## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0) +## (+) value = endstop above Z0, (-) value = endstop below +## Increasing position_endstop brings nozzle closer to the bed +## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config +##-------------------------------------------------------------------- + +position_max: 230 + +##-------------------------------------------------------------------- +position_min: -5 +homing_speed: 100 +second_homing_speed: 3 +homing_retract_dist: 3 + +## Make sure to update below for your relevant driver (2208 or 2209) +[tmc2209 stepper_z] +uart_pin: PE14 +interpolate: false +run_current: 0.8 +sense_resistor: 0.110 +stealthchop_threshold: 0 + +## Z1 Stepper - Rear Left +## Connected to MOTOR_3 +[stepper_z1] +step_pin: PE11 +dir_pin: !PE12 +enable_pin: !PE10 +rotation_distance: 40 +gear_ratio: 80:16 +microsteps: 32 + +## Make sure to update below for your relevant driver (2208 or 2209) +[tmc2209 stepper_z1] +uart_pin: PE9 +interpolate: false +run_current: 0.8 +sense_resistor: 0.110 +stealthchop_threshold: 0 + +## Z2 Stepper - Rear Right +## Connected to MOTOR_6 +[stepper_z2] +step_pin: PE7 +dir_pin: PE8 +enable_pin: !PG1 +rotation_distance: 40 +gear_ratio: 80:16 +microsteps: 32 + +## Make sure to update below for your relevant driver (2208 or 2209) +[tmc2209 stepper_z2] +uart_pin: PG0 +interpolate: false +run_current: 0.8 +sense_resistor: 0.110 +stealthchop_threshold: 0 + +## Z3 Stepper - Front Right +## Connected to MOTOR_5 +[stepper_z3] +step_pin: PF13 +dir_pin: !PF14 +enable_pin: !PF12 +rotation_distance: 40 +gear_ratio: 80:16 +microsteps: 32 + +## Make sure to update below for your relevant driver (2208 or 2209) +[tmc2209 stepper_z3] +uart_pin: PF11 +interpolate: false +run_current: 0.8 +sense_resistor: 0.110 +stealthchop_threshold: 0 + + +##################################################################### +# Extruder +##################################################################### + +## Connected to MOTOR_2 +## Heater - HE0 +## Thermistor - T0 +[extruder] +step_pin: PB0 +dir_pin: PB1 +enable_pin: !PC5 +## Update value below when you perform extruder calibration +## If you ask for 100mm of filament, but in reality it is 98mm: +## rotation_distance = * / 100 +## 22.6789511 is a good starting point +#rotation_distance: 22.5267 #PLA - perfect #Bondtech 5mm Drive Gears +#rotation_distance: 22.3464 #PETG +rotation_distance: 22.22254 #ABS +## Update Gear Ratio depending on your Extruder Type +## Use 50:10 for Stealthburner/Clockwork 2 +## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio) +## Use 80:20 for M4, M3.1 +gear_ratio: 50:10 #Stealthburner/Clockwork 2 +microsteps: 32 +full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree +nozzle_diameter: 0.400 +filament_diameter: 1.75 +heater_pin: PB9 +## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types. +## Use "Generic 3950" for NTC 100k 3950 thermistors +sensor_type: PT1000 +sensor_pin: PF3 +min_temp: 10 +max_temp: 270 +max_power: 1.0 +min_extrude_temp: 170 +max_extrude_only_distance: 150 +control = pid +pid_kp = 26.213 +pid_ki = 1.304 +pid_kd = 131.721 +## Try to keep pressure_advance below 1.0 +#pressure_advance: 0.024 +pressure_advance: 0.046 +## Default is 0.040, leave stock +#pressure_advance_smooth_time: 0.040 + +## E0 on MOTOR_2 +## Make sure to update below for your relevant driver (2208 or 2209) +[tmc2209 extruder] +uart_pin: PC4 +interpolate: false +run_current: 0.56 #0.3 #0.5 +sense_resistor: 0.110 +stealthchop_threshold: 0 + + +##################################################################### +# Bed Heater +##################################################################### + +## SSR Pin - HE1 +## Thermistor - TB +[heater_bed] +## Uncomment the following line if using the default SSR wiring from the docs site +#heater_pin: PA3 +## Other wiring guides may use BED_OUT to control the SSR. Uncomment the following line for those cases +heater_pin: PD12 +## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types. +## Use "Generic 3950" for Keenovo heaters +sensor_type: Generic 3950 +sensor_pin: PA0 +## Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 . +max_power: 0.6 +min_temp: 0 +max_temp: 120 +#control: pid +#pid_kp: 58.437 +#pid_ki: 2.347 +#pid_kd: 363.769 + +##################################################################### +# Probe +##################################################################### + +[probe] +pin: PF4 +x_offset: 0 +y_offset: 0 +#z_offset: 0 +speed: 50.0 +samples: 3 +samples_result: median +sample_retract_dist: 3.0 +samples_tolerance: 0.05 +samples_tolerance_retries: 5 + +activate_gcode: + {% set PROBE_TEMP = 150 %} + {% set MAX_TEMP = PROBE_TEMP + 5 %} + {% set ACTUAL_TEMP = printer.extruder.temperature %} + {% set TARGET_TEMP = printer.extruder.target %} + + {% if TARGET_TEMP > PROBE_TEMP %} + { action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) } + M109 S{ PROBE_TEMP } + {% else %} + # Temperature target is already low enough, but nozzle may still be too hot. + {% if ACTUAL_TEMP > MAX_TEMP %} + { action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) } + TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP } + {% endif %} + {% endif %} + +##################################################################### +# Fan Control +##################################################################### + +## Print Cooling Fan - FAN0 +[fan] +pin: PB7 +kick_start_time: 0.5 +## Depending on your fan, you may need to increase this value +## if your fan will not start. Can change cycle_time (increase) +## if your fan is not able to slow down effectively +off_below: 0.10 + + +## Hotend Fan - FAN1 +[heater_fan hotend_fan] +pin: PB8 +max_power: 1.0 +kick_start_time: 0.5 +heater: extruder +heater_temp: 50.0 +## If you are experiencing back flow, you can reduce fan_speed +#fan_speed: 1.0 + +## Controller fan - FAN2 +[controller_fan controller_fan] +pin: PC6 +kick_start_time: 0.5 +fan_speed: 1.0 +stepper: extruder + +## Exhaust fan - FAN3 - Temperature Controlled +#[heater_fan exhaust_fan] +#pin: PE5 +#max_power: 1.0 +#shutdown_speed: 0.0 +#kick_start_time: 5.0 +#heater: heater_bed +#heater_temp: 60 +#fan_speed: 1.0 + +## Exhaust fan - FAN3 - Manually Controlled +[fan_generic exhaust_fan] +pin: PE5 +max_power: 1.0 +shutdown_speed: 0.0 +kick_start_time: 5.0 + +##################################################################### +# LED Control +##################################################################### + +## Chamber Lighting - HE2 Connector (Optional) + +[output_pin case_light] +pin: PE6 +pwm:false +shutdown_value: 0 +value:1 + +##################################################################### +# Homing and Gantry Adjustment Routines +##################################################################### + +[idle_timeout] +timeout: 1800 + +[safe_z_home] +## XY Location of the Z Endstop Switch +## Update -10,-10 to the XY coordinates of your endstop pin +## (such as 157,305) after going through Z Endstop Pin +## Location Definition step. +home_xy_position: 125,125 +speed:200 +z_hop:10 + + +## Use QUAD_GANTRY_LEVEL to level a gantry. +## Min & Max gantry corners - measure from nozzle at MIN (0,0) and +## MAX (250, 250), (300,300), or (350,350) depending on your printer size +## to respective belt positions +[quad_gantry_level] + +speed: 300 + +#-------------------------------------------------------------------- +## Gantry Corners for 250mm Build +## Uncomment for 250mm build +gantry_corners: + -60,-10 + 310, 320 +# Probe points +points: + 25,25 + 25,225 + 225,225 + 225,25 +#-------------------------------------------------------------------- +speed: 300 +horizontal_move_z: 1 +retries: 5 +retry_tolerance: 0.05 +max_adjust: 10 + +######################################## +# EXP1 / EXP2 (display) pins +######################################## + +#[board_pins] +#aliases: +# # EXP1 header +# EXP1_1=PG5, EXP1_2=PG4, +# EXP1_3=PG3, EXP1_4=PG2, +# EXP1_5=PD15, EXP1_6=PD14, # Slot in the socket on this side +# EXP1_7=PD13, EXP1_8=PD11, +# EXP1_9=, EXP1_10=<5V>, + +# # EXP2 header +# EXP2_1=PB14, EXP2_2=PB13, +# EXP2_3=PD10, EXP2_4=PB12, +# EXP2_5=PD9, EXP2_6=PB15, # Slot in the socket on this side +# EXP2_7=PD8, EXP2_8=, +# EXP2_9=, EXP2_10=<5V> + +#-------------------------------------------------------------------- + +[pause_resume] +recover_velocity: 50. +# When capture/restore is enabled, the speed at which to return to +# the captured position (in mm/s). Default is 50.0 mm/s. + +[respond] +default_type: echo +# Sets the default prefix of the "M118" and "RESPOND" output to one +# of the following: +# echo: "echo: " (This is the default) +# command: "// " +# error: "!! " +#default_prefix: echo: +# Directly sets the default prefix. If present, this value will +# override the "default_type". + +##################################################################### +# Filament Runout Sensor +##################################################################### + +[filament_switch_sensor filament_sensor] +pause_on_runout: True +# When set to True, a PAUSE will execute immediately after a runout +# is detected. Note that if pause_on_runout is False and the +# runout_gcode is omitted then runout detection is disabled. Default +# is True. +runout_gcode: + M600 +# A list of G-Code commands to execute after a filament runout is +# detected. See docs/Command_Templates.md for G-Code format. If +# pause_on_runout is set to True this G-Code will run after the +# PAUSE is complete. The default is not to run any G-Code commands. +#insert_gcode: +# A list of G-Code commands to execute after a filament insert is +# detected. See docs/Command_Templates.md for G-Code format. The +# default is not to run any G-Code commands, which disables insert +# detection. +#event_delay: 3.0 +# The minimum amount of time in seconds to delay between events. +# Events triggered during this time period will be silently +# ignored. The default is 3 seconds. +#pause_delay: 0.5 +# The amount of time to delay, in seconds, between the pause command +# dispatch and execution of the runout_gcode. It may be useful to +# increase this delay if OctoPrint exhibits strange pause behavior. +# Default is 0.5 seconds. +switch_pin: PC14 +# The pin on which the switch is connected. This parameter must be +# provided + +##################################################################### +# User Modifications +##################################################################### + +## Bed Mesh Configuration +# Uncomment BED_MESH_CALIBRATE in the PRINT_START macro below to enable bed levelling. + +[bed_mesh] +speed: 300 +horizontal_move_z: 5 +mesh_min: 50,25 +mesh_max: 200,175 +probe_count: 5, 5 + +# Idle Timeout Configuration +# This block increases the idle timeout from 10 minutes to 8 hours. +# This may be longer that you are comfortable with. +# Reduce the timeout value if you want the heaters to shut off sooner. +# A longer timeout is necesary if you want to recover from filament runout or M600 filament change. + +[idle_timeout] +#gcode: +# A list of G-Code commands to execute on an idle timeout. See +# docs/Command_Templates.md for G-Code format. The default is to run +# "TURN_OFF_HEATERS" and "M84". +timeout: 28800 +# Idle time (in seconds) to wait before running the above G-Code +# commands. The default is 600 seconds. + + +##################################################################### +# Macros +##################################################################### + + +[gcode_macro G32] +gcode: + SAVE_GCODE_STATE NAME=STATE_G32 + G90 + G28 + M109 S150 + NOZZLE_CLEAN + G28 Z + QUAD_GANTRY_LEVEL + G0 X125 Y125 Z30 F3600 + RESTORE_GCODE_STATE NAME=STATE_G32 + + + + +# Use PRINT_START for the slicer starting script - please customise for your slicer of choice +[gcode_macro PRINT_START] +gcode: + M104 S150 + {% set temp_extruder = params.EXTRUDER|int %} + G32 ; home all axes + BED_MESH_CALIBRATE ; Uncomment to add mesh bed levelling + G90 ; absolute positioning + G1 Z20 F3000 ; move nozzle away from bed + M109 S{temp_extruder} + NOZZLE_PRIME + + +[gcode_macro START_PRINT] +gcode: + G28 # Home the printer + G92 E0 # Reset extruder + M104 S150 + G32 + #BED_MESH_CALIBRATE PROFILE=mesh1 METHOD=automatic + #BED_MESH_PROFILE LOAD=mesh1 + # Move to wait position + #G28 X + G90 + #G1 X175 Y175 + +[gcode_macro END_PRINT] +#variable_machine_depth: printer.configfile.settings.stepper_z.position_max +gcode: + ; layer end + G91 ;relative positioning + G1 E-5.00 F1000 ;retract 5mm of filament + G1 Z+1.00 X+20.0 Y+20.0 F20000 ;short quick move to disengage from print + G1 Z+10.00 F20000 ;move Z-Axis 10mm away from part + G90 ;absolute positioning + G28 X0 Y0 ; move gantry close to home + G91 ; relative positioning + G1 E-5.00 F500 ;retract additional filament to prevent oozing + G90 ;absolute positioning + M104 S0 ;turn off hotend + M140 S0 ;turn off heatbed + M106 S0 ; shut off blower + #M84 ;motors off -- disabled so that head can still be moved after print finishes + +# Use PRINT_END for the slicer ending script - please customise for your slicer of choice +[gcode_macro PRINT_END] +gcode: + # safe anti-stringing move coords + {% set th = printer.toolhead %} + {% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %} + {% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %} + {% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %} + + SAVE_GCODE_STATE NAME=STATE_PRINT_END + + M400 ; wait for buffer to clear + G92 E0 ; zero the extruder + G1 E-5.0 F1800 ; retract filament + + TURN_OFF_HEATERS + + G90 ; absolute positioning + G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing + G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 2} F3600 ; park nozzle at rear + M107 ; turn off fan + + BED_MESH_CLEAR + RESTORE_GCODE_STATE NAME=STATE_PRINT_END + +##### +# COLOR CHANGE +##### +[gcode_macro M600] +description: Executes a color change by pausing the printer an unloading the filament. +gcode: + PAUSE + UNLOAD_FILAMENT + M117 Please load new filament and resume + RESPOND MSG="Please load new filament and resume" + +##### +# FILAMENT MANAGEMENT +##### + +[gcode_macro UNLOAD_FILAMENT] +description: Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams. +gcode: + SAVE_GCODE_STATE NAME=unload_state + G91 + {% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %} + M117 Heating... + # Heat up hotend to provided temp or 220 as default as that should work OK with most filaments. + M104 S{params.TEMP|default(220, true)} + TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.TEMP|default(220, true)} + {% endif %} + M117 Unloading filament... + # Extract filament to cold end area + G0 E-5 F3600 + # Wait for three seconds + G4 P3000 + # Push back the filament to smash any stringing + G0 E5 F3600 + # Extract back fast in to the cold zone + G0 E-15 F3600 + # Continue extraction slowly, allow the filament time to cool solid before it reaches the gears + G0 E-130 F300 + M117 Filament unloaded! + RESPOND MSG="Filament unloaded! Please inspect the tip of the filament before reloading." + RESTORE_GCODE_STATE NAME=unload_state + +[gcode_macro LOAD_FILAMENT] +description: Loads new filament. Note: be careful with PETG, make sure you inspect the tip of your filament before loading to avoid jams. +gcode: + SAVE_GCODE_STATE NAME=load_state + G91 + # Heat up hotend to provided temp or 220 as default as that should work OK with most filaments. + {% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %} + M117 Heating... + M104 S{params.TEMP|default(220, true)} + TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.TEMP|default(220, true)} + {% endif %} + M117 Loading filament... + # Load the filament into the hotend area. + G0 E100 F600 + # Wait a secod + G4 P1000 + # Purge + G0 E40 F100 + # Wait for purge to complete + M400e + M117 Filament loaded! + RESPOND MSG="Filament loaded!" + RESTORE_GCODE_STATE NAME=load_state + +[gcode_macro NOZZLE_CLEAN] +description: wipes nozzle on brush to clean it +gcode: + G90 + G1 X95 Y250 F6000 + G1 Z0.5 F3000 + G1 X145 Y250 F10000 + G1 X95 Y250 F10000 + G1 X145 Y250 F10000 + G1 X95 Y250 F10000 + G1 X145 Y250 F10000 + G1 X95 Y250 F10000 + G1 Z10 F6000 + +[gcode_macro NOZZLE_PRIME] +description: prime the nozzle before printing +gcode: + G92 E0 + G1 E-3 F1800 + G1 X0 Y0 F10000 + G1 Z0.3 F500 + G92 E0 + G1 E3 F500 + G92 E0 + G1 E-0.30000 F3600 + G1 Z0.2500 F1000 + G1 X250 Y0 E50 F1000 + G92 E0 + G1 E-0.30000 F5400 + G1 Z10 F500 + +[gcode_macro PAUSE] +description: Pause the actual running print +rename_existing: PAUSE_BASE +gcode: + PAUSE_BASE + _TOOLHEAD_PARK_PAUSE_CANCEL + +[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] +description: Helper: park toolhead used in PAUSE and CANCEL_PRINT +variable_extrude: 1.0 +gcode: + ##### set park positon for x and y ##### + # default is your max posion from your printer.cfg + {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} + {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} + {% set z_park_delta = 10.0 %} + ##### calculate save lift position ##### + {% set max_z = printer.toolhead.axis_maximum.z|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% if act_z < (max_z - z_park_delta) %} + {% set z_safe = z_park_delta %} + {% else %} + {% set z_safe = max_z - act_z %} + {% endif %} + ##### end of definitions ##### + {% if printer.extruder.can_extrude|lower == 'true' %} + M83 + G1 E-{extrude} F2100 + {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %} + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + {% if "xyz" in printer.toolhead.homed_axes %} + G91 + G1 Z{z_safe} F900 + G90 + G1 X{x_park} Y{y_park} F6000 + {% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %} + {% else %} + {action_respond_info("Printer not homed")} + {% endif %} + +[gcode_macro _USER_VARIABLE] +description: Helper: Contains User defined printer variables +variable_disable_turnoff: 0 +gcode: + +[gcode_macro RESONANCES_TEST] +description: Run input shaper test +gcode: + {% set user = printer['gcode_macro _USER_VARIABLE'] %} + _CG28 ; home if needed + TURN_OFF_HEATERS ; turn off heaters + M107 ; turn off fan + {% if user.hw.chamber.fan %} M141 {% endif %} ; exhaust fan off + {% if user.hw.filter.ena %} _SET_FILTER {% endif %} ; filter off + _PRINT_AR T="INPUT SHAPER: Noise values, check if sensor is installed" + MEASURE_AXES_NOISE ; get noise value in log + _PRINT_AR T="INPUT SHAPER: Resonance Tests starting" + _PRINT_AR T="INPUT SHAPER: Mesasure X axis" + TEST_RESONANCES AXIS=X ; measure X + _PRINT_AR T="INPUT SHAPER: Mesasure Y axis" + TEST_RESONANCES AXIS=Y ; measure Y + _PRINT_AR T="INPUT SHAPER: Resonance Tests done" + _PRINT_AR T="INPUT SHAPER: Generate graph in backround" + RUN_SHELL_COMMAND CMD=plot_graph PARAMS=SHAPER + +[gcode_macro M486] +gcode: + # Parameters known to M486 are as follows: + # [C] Cancel the current object + # [P] Cancel the object with the given index + # [S] Set the index of the current object. + # If the object with the given index has been canceled, this will cause + # the firmware to skip to the next object. The value -1 is used to + # indicate something that isn’t an object and shouldn’t be skipped. + # [T] Reset the state and set the number of objects + # [U] Un-cancel the object with the given index. This command will be + # ignored if the object has already been skipped + + {% if 'exclude_object' not in printer %} + {action_raise_error("[exclude_object] is not enabled")} + {% endif %} + + {% if 'T' in params %} + EXCLUDE_OBJECT RESET=1 + + {% for i in range(params.T | int) %} + EXCLUDE_OBJECT_DEFINE NAME={i} + {% endfor %} + {% endif %} + + {% if 'C' in params %} + EXCLUDE_OBJECT CURRENT=1 + {% endif %} + + {% if 'P' in params %} + EXCLUDE_OBJECT NAME={params.P} + {% endif %} + + {% if 'S' in params %} + {% if params.S == '-1' %} + {% if printer.exclude_object.current_object %} + EXCLUDE_OBJECT_END NAME={printer.exclude_object.current_object} + {% endif %} + {% else %} + EXCLUDE_OBJECT_START NAME={params.S} + {% endif %} + {% endif %} + + {% if 'U' in params %} + EXCLUDE_OBJECT RESET=1 NAME={params.U} + {% endif %} + +[gcode_macro Calibrate_Probe_Offset] +gcode: + PROBE_CALIBRATE + +#*# <---------------------- SAVE_CONFIG ----------------------> +#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. +#*# +#*# [input_shaper] +#*# shaper_type_x = 3hump_ei +#*# shaper_freq_x = 88.4 +#*# shaper_type_y = zv +#*# shaper_freq_y = 55.4 +#*# +#*# [probe] +#*# z_offset = -1.170 +#*# +#*# [extruder] +#*# +#*# [heater_bed] +#*# control = pid +#*# pid_kp = 40.040 +#*# pid_ki = 1.648 +#*# pid_kd = 243.242 +#*# +#*# [bed_mesh default] +#*# version = 1 +#*# points = +#*# 0.026037, 0.022287, 0.032287 +#*# 0.012287, 0.003537, 0.019787 +#*# 0.007287, 0.002287, 0.007287 +#*# 0.016037, -0.000213, 0.028537 +#*# x_count = 3 +#*# y_count = 4 +#*# mesh_x_pps = 2 +#*# mesh_y_pps = 2 +#*# algo = lagrange +#*# tension = 0.2 +#*# min_x = 95.0 +#*# max_x = 155.0 +#*# min_y = 64.0 +#*# max_y = 175.0 diff --git a/printer_data/config/sonar.conf b/printer_data/config/sonar.conf new file mode 100644 index 0000000..0c71ab1 --- /dev/null +++ b/printer_data/config/sonar.conf @@ -0,0 +1,17 @@ +#### Sonar - A WiFi Keepalive daemon +#### +#### Written by Stephan Wendel aka KwadFan +#### Copyright 2022 +#### https://github.com/mainsail-crew/sonar +#### +#### This File is distributed under GPLv3 +#### + +[sonar] +enable: false # false to disable till next reboot (will stop again if not set to true) +debug_log: false # if set to true, sonar will log ever ping with triptime and date/time +persistant_log: false # If true logs in /var/log/sonar.log, false logs to systemd +target: auto # IP Address, URL or auto as ping target +count: 3 # How often should be pinged? +interval: 60 # Ping again after X seconds +restart_treshold: 10 # If failed, restart WiFi after X seconds