mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
feat(klipper): remove nix config
This commit is contained in:
parent
d123db6f66
commit
dd1944f8ad
2 changed files with 2 additions and 492 deletions
293
nixos/fluidd.cfg
293
nixos/fluidd.cfg
|
|
@ -1,293 +0,0 @@
|
||||||
## Client klipper macro definitions
|
|
||||||
##
|
|
||||||
## Copyright (C) 2022 Alex Zellner <alexander.zellner@googlemail.com>
|
|
||||||
##
|
|
||||||
## 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}
|
|
||||||
|
|
@ -1,208 +1,11 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }: {
|
||||||
|
|
||||||
environment.etc."fluidd.cfg".source = ./fluidd.cfg;
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
klipper = {
|
klipper = {
|
||||||
enable = true;
|
enable = true;
|
||||||
octoprintIntegration = true;
|
octoprintIntegration = true;
|
||||||
settings = {
|
mutableConfig = true;
|
||||||
"include fluidd.cfg" = {};
|
configFile = "/var/lib/printer.cfg";
|
||||||
|
|
||||||
filter = {};
|
|
||||||
|
|
||||||
print_stats = {};
|
|
||||||
|
|
||||||
pause_resume = {};
|
|
||||||
|
|
||||||
display_status = {};
|
|
||||||
|
|
||||||
virtual_sdcard = {
|
|
||||||
path = "/var/lib/moonraker/gcodes";
|
|
||||||
};
|
|
||||||
|
|
||||||
dirzctl = {};
|
|
||||||
|
|
||||||
hx711s = {
|
|
||||||
sensor0_clk_pin = "PA4";
|
|
||||||
sensor0_sdo_pin = "PC6";
|
|
||||||
};
|
|
||||||
|
|
||||||
prtouch = {
|
|
||||||
sensor_x = 32;
|
|
||||||
sensor_y = 30;
|
|
||||||
clr_noz_start_x = 15;
|
|
||||||
clr_noz_start_y = 25;
|
|
||||||
clr_noz_len_y = 15;
|
|
||||||
s_hot_min_temp = 160;
|
|
||||||
s_hot_max_temp = 200;
|
|
||||||
s_bed_max_temp = 60;
|
|
||||||
show_msg = true;
|
|
||||||
wipe_retract_distance = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
stepper_x = {
|
|
||||||
step_pin = "PC2";
|
|
||||||
dir_pin = "!PB9";
|
|
||||||
enable_pin = "!PC3";
|
|
||||||
microsteps = 16;
|
|
||||||
rotation_distance = 40;
|
|
||||||
endstop_pin = "~!PA5";
|
|
||||||
position_endstop = -6;
|
|
||||||
position_min = -6;
|
|
||||||
position_max = 230;
|
|
||||||
homing_speed = 80;
|
|
||||||
};
|
|
||||||
|
|
||||||
"tmc2208 stepper_x" = {
|
|
||||||
uart_pin = "PB12";
|
|
||||||
run_current = 0.60;
|
|
||||||
sense_resistor = 0.150;
|
|
||||||
interpolate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
stepper_y = {
|
|
||||||
step_pin = "PB8";
|
|
||||||
dir_pin = "PB7";
|
|
||||||
enable_pin = "!PC3";
|
|
||||||
microsteps = 16;
|
|
||||||
rotation_distance = 40;
|
|
||||||
endstop_pin = "~!PA6";
|
|
||||||
position_endstop = -14;
|
|
||||||
position_min = -14;
|
|
||||||
position_max = 230;
|
|
||||||
homing_speed = 80;
|
|
||||||
};
|
|
||||||
|
|
||||||
"tmc2208 stepper_y" = {
|
|
||||||
uart_pin = "PB13";
|
|
||||||
run_current = 0.60;
|
|
||||||
sense_resistor = 0.150;
|
|
||||||
interpolate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
stepper_z = {
|
|
||||||
step_pin = "PB6";
|
|
||||||
dir_pin = "!PB5";
|
|
||||||
enable_pin = "!PC3";
|
|
||||||
microsteps = 16;
|
|
||||||
rotation_distance = 8;
|
|
||||||
endstop_pin = "probe:z_virtual_endstop";
|
|
||||||
position_min = -3;
|
|
||||||
position_max = 250;
|
|
||||||
homing_speed = 4;
|
|
||||||
second_homing_speed = 1;
|
|
||||||
homing_retract_dist = 2.0;
|
|
||||||
};
|
|
||||||
|
|
||||||
"tmc2208 stepper_z" = {
|
|
||||||
uart_pin = "PB14";
|
|
||||||
run_current = 0.8;
|
|
||||||
sense_resistor = 0.150;
|
|
||||||
interpolate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
extruder = {
|
|
||||||
max_extrude_only_distance = 100.0;
|
|
||||||
step_pin = "PB4";
|
|
||||||
dir_pin = "PB3";
|
|
||||||
enable_pin = "!PC3";
|
|
||||||
microsteps = 16;
|
|
||||||
rotation_distance = 7.44;
|
|
||||||
nozzle_diameter = 0.400;
|
|
||||||
filament_diameter = 1.750;
|
|
||||||
heater_pin = "PA1";
|
|
||||||
sensor_type = "EPCOS 100K B57560G104F";
|
|
||||||
sensor_pin = "PC5";
|
|
||||||
control = "pid";
|
|
||||||
pid_Kp = 27.142;
|
|
||||||
pid_Ki = 1.371;
|
|
||||||
pid_Kd = 134.351;
|
|
||||||
min_temp = 0;
|
|
||||||
max_temp = 260;
|
|
||||||
};
|
|
||||||
|
|
||||||
heater_bed = {
|
|
||||||
heater_pin = "PB2";
|
|
||||||
sensor_type = "EPCOS 100K B57560G104F";
|
|
||||||
sensor_pin = "PC4";
|
|
||||||
control = "pid";
|
|
||||||
pid_kp = 66.371;
|
|
||||||
pid_ki = 0.846;
|
|
||||||
pid_kd = 1301.702;
|
|
||||||
min_temp = 0;
|
|
||||||
max_temp = 100;
|
|
||||||
};
|
|
||||||
|
|
||||||
"heater_fan hotend_fan" = {
|
|
||||||
pin = "PC1";
|
|
||||||
};
|
|
||||||
|
|
||||||
fan = {
|
|
||||||
pin = "PA0";
|
|
||||||
};
|
|
||||||
|
|
||||||
mcu = {
|
|
||||||
serial = "/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0";
|
|
||||||
restart_method = "command";
|
|
||||||
};
|
|
||||||
|
|
||||||
printer = {
|
|
||||||
kinematics = "cartesian";
|
|
||||||
max_velocity = 250;
|
|
||||||
max_accel = 2500;
|
|
||||||
max_z_velocity = 5;
|
|
||||||
square_corner_velocity = 5.0;
|
|
||||||
max_z_accel = 100;
|
|
||||||
};
|
|
||||||
|
|
||||||
bltouch = {
|
|
||||||
sensor_pin = "^PC14";
|
|
||||||
control_pin = "PC13";
|
|
||||||
x_offset = -23.0;
|
|
||||||
y_offset = -14.5;
|
|
||||||
z_offset = 2.65;
|
|
||||||
speed = 20;
|
|
||||||
pin_move_time = 0.4;
|
|
||||||
stow_on_each_sample = false;
|
|
||||||
probe_with_touch_mode = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
safe_z_home = {
|
|
||||||
home_xy_position = "134,123";
|
|
||||||
speed = 150;
|
|
||||||
z_hop = 10;
|
|
||||||
z_hop_speed = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
bed_mesh = {
|
|
||||||
speed = 120;
|
|
||||||
horizontal_move_z = 5;
|
|
||||||
mesh_min = "30,30";
|
|
||||||
mesh_max = "207,215.5";
|
|
||||||
probe_count = "5,5";
|
|
||||||
algorithm = "bicubic";
|
|
||||||
};
|
|
||||||
|
|
||||||
screws_tilt_adjust = {
|
|
||||||
screw1 = "54.5,45.5";
|
|
||||||
screw1_name = "front left screw";
|
|
||||||
screw2 = "224.5,45.5";
|
|
||||||
screw2_name = "front right screw";
|
|
||||||
screw3 = "224.5,215.5";
|
|
||||||
screw3_name = "rear right screw";
|
|
||||||
screw4 = "54.5,215.5";
|
|
||||||
screw4_name = "rear left screw";
|
|
||||||
horizontal_move_z = 10.;
|
|
||||||
speed = 50.;
|
|
||||||
screw_thread = "CCW-M4";
|
|
||||||
};
|
|
||||||
|
|
||||||
e3v3se_display = {
|
|
||||||
language = "english";
|
|
||||||
logging = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue