Last active
January 20, 2025 01:26
-
-
Save AstraLuma/fe803b858e34834b4d2317e671df2415 to your computer and use it in GitHub Desktop.
Ender 3 Configs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#### 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] ##### | |
#### ##### | |
#### Note: These ports are default for most Mainsail ##### | |
#### installations. To use any other port would involve ##### | |
#### changing the proxy configuration or using directly ##### | |
#### http://<ip>:<port>/?action=[stream/snapshot] ##### | |
#### ##### | |
##################################################################### | |
#### RTSP Stream URL: ( if enabled and supported ) ##### | |
#### rtsp://<ip>:<rtsp_port>/stream.h264 ##### | |
##################################################################### | |
[crowsnest] | |
log_path: /home/astraluma/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: false # 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: 640x480 # widthxheight format | |
max_fps: 15 # If Hardware Supports this it will be forced, otherwise ignored/coerced. | |
#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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Client klipper macro definitions | |
## | |
## Copyright (C) 2022 Alex Zellner <[email protected]> | |
## | |
## This file may be distributed under the terms of the GNU GPLv3 license | |
## | |
## !!! This file is read-only. Maybe the used editor indicates that. !!! | |
## | |
## Customization: | |
## 1) copy the gcode_macro _CLIENT_VARIABLE (see below) to your printer.cfg | |
## 2) remove the comment mark (#) from all lines | |
## 3) change any value in there to your needs | |
## | |
## Use the PAUSE macro direct in your M600: | |
## e.g. with a different park position front left and a minimal height of 50 | |
## [gcode_macro M600] | |
## description: Filament change | |
## gcode: PAUSE X=10 Y=10 Z_MIN=50 | |
## Z_MIN will park the toolhead at a minimum of 50 mm above to bed to make it easier for you to swap filament. | |
## | |
## Client variable macro for your printer.cfg | |
#[gcode_macro _CLIENT_VARIABLE] | |
#variable_use_custom_pos : False ; use custom park coordinates for x,y [True/False] | |
#variable_custom_park_x : 0.0 ; custom x position; value must be within your defined min and max of X | |
#variable_custom_park_y : 0.0 ; custom y position; value must be within your defined min and max of Y | |
#variable_custom_park_dz : 2.0 ; custom dz value; the value in mm to lift the nozzle when move to park position | |
#variable_retract : 1.0 ; the value to retract while PAUSE | |
#variable_cancel_retract : 5.0 ; the value to retract while CANCEL_PRINT | |
#variable_speed_retract : 35.0 ; retract speed in mm/s | |
#variable_unretract : 1.0 ; the value to unretract while RESUME | |
#variable_speed_unretract : 35.0 ; unretract speed in mm/s | |
#variable_speed_hop : 15.0 ; z move speed in mm/s | |
#variable_speed_move : 100.0 ; move speed in mm/s | |
#variable_park_at_cancel : False ; allow to move the toolhead to park while execute CANCEL_PRINT [True/False] | |
#variable_park_at_cancel_x : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True | |
#variable_park_at_cancel_y : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True | |
## !!! Caution [firmware_retraction] must be defined in the printer.cfg if you set use_fw_retract: True !!! | |
#variable_use_fw_retract : False ; use fw_retraction instead of the manual version [True/False] | |
#variable_idle_timeout : 0 ; time in sec until idle_timeout kicks in. Value 0 means that no value will be set or restored | |
#variable_runout_sensor : "" ; If a sensor is defined, it will be used to cancel the execution of RESUME in case no filament is detected. | |
## Specify the config name of the runout sensor e.g "filament_switch_sensor runout". Hint use the same as in your printer.cfg | |
## !!! Custom macros, please use with care and review the section of the corresponding macro. | |
## These macros are for simple operations like setting a status LED. Please make sure your macro does not interfere with the basic macro functions. | |
## Only single line commands are supported, please create a macro if you need more than one command. | |
#variable_user_pause_macro : "" ; Everything inside the "" will be executed after the klipper base pause (PAUSE_BASE) function | |
#variable_user_resume_macro: "" ; Everything inside the "" will be executed before the klipper base resume (RESUME_BASE) function | |
#variable_user_cancel_macro: "" ; Everything inside the "" will be executed before the klipper base cancel (CANCEL_PRINT_BASE) function | |
#gcode: | |
[virtual_sdcard] | |
path: ~/printer_data/gcodes | |
on_error_gcode: CANCEL_PRINT | |
[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. | |
[display_status] | |
[respond] | |
[gcode_macro CANCEL_PRINT] | |
description: Cancel the actual running print | |
rename_existing: CANCEL_PRINT_BASE | |
gcode: | |
##### get user parameters or use default ##### | |
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} | |
{% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} | |
{% set retract = client.cancel_retract|default(5.0)|abs %} | |
##### define park position ##### | |
{% set park_x = "" if (client.park_at_cancel_x|default(none) is none) | |
else "X=" ~ client.park_at_cancel_x %} | |
{% set park_y = "" if (client.park_at_cancel_y|default(none) is none) | |
else "Y=" ~ client.park_at_cancel_y %} | |
{% set custom_park = park_x|length > 0 or park_y|length > 0 %} | |
##### end of definitions ##### | |
# restore idle_timeout time if needed | |
{% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} | |
SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} | |
{% endif %} | |
{% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} | |
_CLIENT_RETRACT LENGTH={retract} | |
TURN_OFF_HEATERS | |
M106 S0 | |
{client.user_cancel_macro|default("")} | |
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False | |
# clear pause_next_layer and pause_at_layer as preparation for next print | |
SET_PAUSE_NEXT_LAYER ENABLE=0 | |
SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 | |
CANCEL_PRINT_BASE | |
[gcode_macro PAUSE] | |
description: Pause the actual running print | |
rename_existing: PAUSE_BASE | |
gcode: | |
##### get user parameters or use default ##### | |
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} | |
{% set idle_timeout = client.idle_timeout|default(0) %} | |
{% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} | |
{% set restore = False if printer.toolhead.extruder == '' | |
else True if params.RESTORE|default(1)|int == 1 else False %} | |
##### end of definitions ##### | |
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" | |
# set a new idle_timeout value | |
{% if idle_timeout > 0 %} | |
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} | |
SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} | |
{% endif %} | |
PAUSE_BASE | |
{client.user_pause_macro|default("")} | |
_TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} | |
[gcode_macro RESUME] | |
description: Resume the actual running print | |
rename_existing: RESUME_BASE | |
variable_last_extruder_temp: {'restore': False, 'temp': 0} | |
variable_restore_idle_timeout: 0 | |
variable_idle_state: False | |
gcode: | |
##### get user parameters or use default ##### | |
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} | |
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} | |
{% set sp_move = client.speed_move|default(velocity) %} | |
{% set runout_resume = True if client.runout_sensor|default("") == "" # no runout | |
else True if not printer[client.runout_sensor].enabled # sensor is disabled | |
else printer[client.runout_sensor].filament_detected %} # sensor status | |
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config | |
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder | |
{% set do_resume = False %} | |
{% set prompt_txt = [] %} | |
##### end of definitions ##### | |
#### Printer comming from timeout idle state #### | |
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} | |
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False | |
{% if last_extruder_temp.restore %} | |
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise | |
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' | |
M109 S{last_extruder_temp.temp} | |
{% set do_resume = True %} | |
{% elif can_extrude %} | |
{% set do_resume = True %} | |
{% else %} | |
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' | |
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} | |
{% endif %} | |
#### Printer comming out of regular PAUSE state #### | |
{% elif can_extrude %} | |
{% set do_resume = True %} | |
{% else %} | |
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' | |
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} | |
{% endif %} | |
{% if runout_resume %} | |
{% if do_resume %} | |
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time | |
{client.user_resume_macro|default("")} | |
_CLIENT_EXTRUDE | |
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} | |
{% endif %} | |
{% else %} | |
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' | |
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} | |
{% endif %} | |
##### Generate User Information box in case of abort ##### | |
{% if not (runout_resume and do_resume) %} | |
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" | |
{% for element in prompt_txt %} | |
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' | |
{% endfor %} | |
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" | |
RESPOND TYPE=command MSG="action:prompt_show" | |
{% endif %} | |
# Usage: SET_PAUSE_NEXT_LAYER [ENABLE=[0|1]] [MACRO=<name>] | |
[gcode_macro SET_PAUSE_NEXT_LAYER] | |
description: Enable a pause if the next layer is reached | |
gcode: | |
{% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} | |
{% set ENABLE = params.ENABLE|default(1)|int != 0 %} | |
{% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} | |
SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" | |
# Usage: SET_PAUSE_AT_LAYER [ENABLE=[0|1]] [LAYER=<number>] [MACRO=<name>] | |
[gcode_macro SET_PAUSE_AT_LAYER] | |
description: Enable/disable a pause if a given layer number is reached | |
gcode: | |
{% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} | |
{% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined | |
else params.LAYER is defined %} | |
{% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} | |
{% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} | |
SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" | |
# Usage: SET_PRINT_STATS_INFO [TOTAL_LAYER=<total_layer_count>] [CURRENT_LAYER= <current_layer>] | |
[gcode_macro SET_PRINT_STATS_INFO] | |
rename_existing: SET_PRINT_STATS_INFO_BASE | |
description: Overwrite, to get pause_next_layer and pause_at_layer feature | |
variable_pause_next_layer: { 'enable': False, 'call': "PAUSE" } | |
variable_pause_at_layer : { 'enable': False, 'layer': 0, 'call': "PAUSE" } | |
gcode: | |
{% if pause_next_layer.enable %} | |
RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' | |
{pause_next_layer.call} ; execute the given gcode to pause, should be either M600 or PAUSE | |
SET_PAUSE_NEXT_LAYER ENABLE=0 | |
{% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} | |
RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' | |
{pause_at_layer.call} ; execute the given gcode to pause, should be either M600 or PAUSE | |
SET_PAUSE_AT_LAYER ENABLE=0 | |
{% endif %} | |
SET_PRINT_STATS_INFO_BASE {rawparams} | |
##### internal use ##### | |
[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] | |
description: Helper: park toolhead used in PAUSE and CANCEL_PRINT | |
gcode: | |
##### get user parameters or use default ##### | |
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} | |
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} | |
{% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} | |
{% set custom_park_x = client.custom_park_x|default(0.0) %} | |
{% set custom_park_y = client.custom_park_y|default(0.0) %} | |
{% set park_dz = client.custom_park_dz|default(2.0)|abs %} | |
{% set sp_hop = client.speed_hop|default(15) * 60 %} | |
{% set sp_move = client.speed_move|default(velocity) * 60 %} | |
##### get config and toolhead values ##### | |
{% set origin = printer.gcode_move.homing_origin %} | |
{% set act = printer.gcode_move.gcode_position %} | |
{% set max = printer.toolhead.axis_maximum %} | |
{% set cone = printer.toolhead.cone_start_z|default(max.z) %} ; height as long the toolhead can reach max and min of an delta | |
{% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] | |
else False %} | |
##### define park position ##### | |
{% set z_min = params.Z_MIN|default(0)|float %} | |
{% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} | |
{% set x_park = params.X if params.X is defined | |
else custom_park_x if use_custom | |
else 0.0 if round_bed | |
else (max.x - 5.0) %} | |
{% set y_park = params.Y if params.Y is defined | |
else custom_park_y if use_custom | |
else (max.y - 5.0) if round_bed and z_park < cone | |
else 0.0 if round_bed | |
else (max.y - 5.0) %} | |
##### end of definitions ##### | |
_CLIENT_RETRACT | |
{% if "xyz" in printer.toolhead.homed_axes %} | |
G90 | |
G1 Z{z_park} F{sp_hop} | |
G1 X{x_park} Y{y_park} F{sp_move} | |
{% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} | |
{% else %} | |
RESPOND TYPE=echo MSG='Printer not homed' | |
{% endif %} | |
[gcode_macro _CLIENT_EXTRUDE] | |
description: Extrudes, if the extruder is hot enough | |
gcode: | |
##### get user parameters or use default ##### | |
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} | |
{% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} | |
{% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} | |
{% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} | |
{% set absolute_extrude = printer.gcode_move.absolute_extrude %} | |
##### end of definitions ##### | |
{% if printer.toolhead.extruder != '' %} | |
{% if printer[printer.toolhead.extruder].can_extrude %} | |
{% if use_fw_retract %} | |
{% if length < 0 %} | |
G10 | |
{% else %} | |
G11 | |
{% endif %} | |
{% else %} | |
M83 | |
G1 E{length} F{(speed|float|abs) * 60} | |
{% if absolute_extrude %} | |
M82 | |
{% endif %} | |
{% endif %} | |
{% else %} | |
RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' | |
{% endif %} | |
{% endif %} | |
[gcode_macro _CLIENT_RETRACT] | |
description: Retracts, if the extruder is hot enough | |
gcode: | |
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} | |
{% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} | |
{% set speed = params.SPEED|default(client.speed_retract)|default(35) %} | |
_CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} | |
[gcode_macro _CLIENT_LINEAR_MOVE] | |
description: Linear move with save and restore of the gcode state | |
gcode: | |
{% set x_move = "X" ~ params.X if params.X is defined else "" %} | |
{% set y_move = "Y" ~ params.Y if params.Y is defined else "" %} | |
{% set z_move = "Z" ~ params.Z if params.Z is defined else "" %} | |
{% set e_move = "E" ~ params.E if params.E is defined else "" %} | |
{% set rate = "F" ~ params.F if params.F is defined else "" %} | |
{% set ABSOLUTE = params.ABSOLUTE | default(0) | int != 0 %} | |
{% set ABSOLUTE_E = params.ABSOLUTE_E | default(0) | int != 0 %} | |
SAVE_GCODE_STATE NAME=_client_movement | |
{% if x_move or y_move or z_move %} | |
G9{ 0 if ABSOLUTE else 1 } | |
{% endif %} | |
{% if e_move %} | |
M8{ 2 if ABSOLUTE_E else 3 } | |
{% endif %} | |
G1 { x_move } { y_move } { z_move } { e_move } { rate } | |
RESTORE_GCODE_STATE NAME=_client_movement |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[server] | |
host: 0.0.0.0 | |
port: 7125 | |
# The maximum size allowed for a file upload (in MiB). Default 1024 MiB | |
max_upload_size: 1024 | |
# Path to klippy Unix Domain Socket | |
klippy_uds_address: ~/printer_data/comms/klippy.sock | |
[file_manager] | |
# post processing for object cancel. Not recommended for low resource SBCs such as a Pi Zero. Default False | |
enable_object_processing: False | |
[authorization] | |
cors_domains: | |
https://my.mainsail.xyz | |
http://my.mainsail.xyz | |
http://*.local | |
http://*.lan | |
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 | |
# enables partial support of Octoprint API | |
[octoprint_compat] | |
# enables moonraker to track and store print history. | |
[history] | |
# this enables moonraker announcements for mainsail | |
[announcements] | |
subscriptions: | |
mainsail | |
[power printer] | |
type: gpio | |
pin: gpio23 | |
initial_state: off | |
restart_klipper_when_powered: True | |
off_when_shutdown: True | |
off_when_shutdown_delay: 5 | |
on_when_job_queued: True | |
locked_while_printing: True | |
# this enables moonraker's update manager | |
[update_manager] | |
refresh_interval: 168 | |
enable_auto_refresh: True | |
[update_manager mainsail] | |
type: web | |
channel: stable | |
repo: mainsail-crew/mainsail | |
path: ~/mainsail | |
[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 | |
### moonraker-timelapse | |
### Don't forget to include timelapse.cfg to your printer.cfg | |
### Uncomment to enable moonraker-timelapse | |
#[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 | |
#[timelapse] | |
### Directory where the generated video will be saved | |
#output_path: ~/timelapse/ | |
### Directory where ffmpeg is installed | |
#ffmpeg_binary_path: /usr/bin/ffmpeg | |
# 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/Klipper3d/klipper/blob/master/config/printer-creality-ender3-s1-2021.cfg | |
# This file contains pin mappings for the stock 2021 Creality Ender 3 | |
# S1 & S1 Pro. To use this config, check the STM32 Chip on the | |
# Mainboard, during "make menuconfig" select accordingly either the | |
# STM32F103 with "28KiB bootloader" or the STM32F401 with | |
# "64KiB bootloader" and serial (on USART1 PA10/PA9) for both. | |
# For a direct serial connection, in "make menuconfig" select | |
# "Enable extra low-level configuration options" and Serial | |
# (on USART2 PA3/PA2), which is on the 10 pin IDC cable used | |
# for the LCD module as follows: 3: Tx, 4: Rx, 9: GND, 10: VCC | |
# Flash this firmware by copying "out/klipper.bin" to a SD card and | |
# turning on the printer with the card inserted. The filename | |
# must be changed to "firmware.bin" | |
# With STM32F401, you might need to put "firmware.bin" in a | |
# folder on the SD card called "STM32F4_UPDATE" in order to flash. | |
# See docs/Config_Reference.md for a description of parameters. | |
[stepper_x] | |
step_pin: PC2 | |
dir_pin: PB9 | |
enable_pin: !PC3 | |
microsteps: 16 | |
rotation_distance: 40 | |
endstop_pin: !PA5 | |
position_endstop: -10 | |
position_max: 235 | |
position_min: -15 | |
homing_speed: 50 | |
[stepper_y] | |
step_pin: PB8 | |
dir_pin: PB7 | |
enable_pin: !PC3 | |
microsteps: 16 | |
rotation_distance: 40 | |
endstop_pin: !PA6 | |
position_endstop: -8 | |
position_max: 238 | |
position_min: -13 | |
homing_speed: 50 | |
[stepper_z] | |
step_pin: PB6 | |
dir_pin: !PB5 | |
enable_pin: !PC3 | |
microsteps: 16 | |
rotation_distance: 8 | |
endstop_pin: probe:z_virtual_endstop | |
position_max: 270 | |
position_min: -4 | |
[extruder] | |
step_pin: PB4 | |
dir_pin: PB3 | |
enable_pin: !PC3 | |
microsteps: 16 | |
gear_ratio: 42:12 | |
rotation_distance: 26.359 | |
nozzle_diameter: 0.400 | |
filament_diameter: 1.750 | |
heater_pin: PA1 | |
sensor_type: EPCOS 100K B57560G104F | |
sensor_pin: PC5 | |
#control: pid | |
#pid_Kp: 23.561 | |
#pid_Ki: 1.208 | |
#pid_Kd: 114.859 | |
min_temp: 0 | |
max_temp: 260 # Set to 300 for S1 Pro | |
[heater_bed] | |
heater_pin: PA7 | |
sensor_type: EPCOS 100K B57560G104F | |
sensor_pin: PC4 | |
#control: pid | |
#pid_Kp: 71.867 | |
#pid_Ki: 1.536 | |
#pid_Kd: 840.843 | |
min_temp: 0 | |
max_temp: 100 # Set to 110 for S1 Pro | |
[heater_fan hotend_fan] | |
pin: PC0 | |
[fan] | |
pin: PA0 | |
[mcu] | |
serial: /dev/serial0 | |
restart_method: command | |
[printer] | |
kinematics: cartesian | |
max_velocity: 300 | |
max_accel: 2000 | |
max_z_velocity: 5 | |
max_z_accel: 100 | |
[bltouch] | |
sensor_pin: ^PC14 | |
control_pin: PC13 | |
x_offset: -31.8 | |
y_offset: -40.5 | |
#z_offset: 0 | |
probe_with_touch_mode: true | |
stow_on_each_sample: false | |
[bed_mesh] | |
speed: 120 | |
mesh_min: 10, 10 | |
mesh_max: 200, 194 | |
probe_count: 4,4 | |
algorithm: bicubic | |
[safe_z_home] | |
home_xy_position: 147, 154 | |
speed: 75 | |
z_hop: 10 | |
z_hop_speed: 5 | |
[filament_switch_sensor e0_sensor] | |
switch_pin: !PC15 | |
pause_on_runout: true | |
runout_gcode: PAUSE | |
[pause_resume] | |
recover_velocity: 25 | |
[bed_screws] | |
screw1: 20, 29 | |
screw2: 195, 29 | |
screw3: 195, 198 | |
screw4: 20, 198 | |
[firmware_retraction] | |
retract_length: 1 | |
retract_speed: 60 | |
# unretract_extra_length: | |
unretract_speed: 40 | |
[gcode_arcs] | |
[respond] | |
[exclude_object] | |
[include mainsail.cfg] | |
#*# <---------------------- SAVE_CONFIG ----------------------> | |
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. | |
#*# | |
#*# [extruder] | |
#*# control = pid | |
#*# pid_kp = 24.786 | |
#*# pid_ki = 1.669 | |
#*# pid_kd = 92.020 | |
#*# | |
#*# [heater_bed] | |
#*# control = pid | |
#*# pid_kp = 74.845 | |
#*# pid_ki = 1.610 | |
#*# pid_kd = 870.069 | |
#*# | |
#*# [bed_mesh default] | |
#*# version = 1 | |
#*# points = | |
#*# 0.200000, 0.122500, 0.097500, 0.140000 | |
#*# 0.240000, 0.125000, 0.012500, -0.057500 | |
#*# 0.245000, 0.127500, 0.015000, -0.032500 | |
#*# 0.300000, 0.135000, 0.045000, -0.012500 | |
#*# x_count = 4 | |
#*# y_count = 4 | |
#*# mesh_x_pps = 2 | |
#*# mesh_y_pps = 2 | |
#*# algo = bicubic | |
#*# tension = 0.2 | |
#*# min_x = 10.0 | |
#*# max_x = 199.99 | |
#*# min_y = 10.0 | |
#*# max_y = 193.99 | |
#*# | |
#*# [bltouch] | |
#*# z_offset = 3.650 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#### Sonar - A WiFi Keepalive daemon | |
#### | |
#### Written by Stephan Wendel aka KwadFan <[email protected]> | |
#### 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment