Initial commit for testing

This commit is contained in:
Zach Schimke 2021-08-15 23:07:03 -07:00
parent b048d40508
commit b977e164a6
19 changed files with 1763 additions and 1 deletions

View File

@ -13,10 +13,16 @@ Hardware:
Mods/Deviations (W.R.T. Stock V0.1):
- Changed controller chamber fans to be controlled by each SKR (fans only operate when the drivers are active).
- Cork insulation directly under hotbed to protect electronic chamber from direct/radiated heat.
- Mathematical Potato's [V0.1 Belted Z Drive](https://github.com/VoronDesign/VoronUsers/tree/master/printer_mods/MathematicalPotato/v0.1_belted_z_drive)
- Ch4relsB's [Slim V0 Handles](https://github.com/VoronDesign/VoronUsers/tree/master/printer_mods/Ch4rlesB/V0_Handles_Slim)
- Andre's [Neopixel Front Bed Mount](https://github.com/VoronDesign/VoronUsers/tree/master/printer_mods/Andre/V0_Neopixel_Front_Bed_Mount)
- Andre's [Mini AB ADXL345 Mount](https://github.com/VoronDesign/VoronUsers/tree/master/printer_mods/Andre/Mini_Afterburner_ADXL345_Mount)
- Thiagolocatelli's [V0 Utility Belt](https://github.com/thiagolocatelli/VoronUsers/tree/master/printer_mods/DoubleT/v0_utility_belt)
- Timmit99's [V0 Ubilical](https://github.com/timmit99/Voron-Hardware/tree/V0-Umbilical/V0-Umbilical)
Updates:
- Inital config. Build in progress.
- - -
This repo based on f0or1s' [cr10_klipper repo](http://github.com/fl0r1s/cr10_klipper), rpanfili's [woron-ht repo](http://github.com/rpanfili/voron-ht), and Zellneralex's [klipper_config repo](http://github.com/zellneralex/klipper_config) among many others.
This repo based on f0or1s' [cr10_klipper repo](http://github.com/fl0r1s/cr10_klipper), rpanfili's [voron-ht repo](http://github.com/rpanfili/voron-ht), and Zellneralex's [klipper_config repo](http://github.com/zellneralex/klipper_config) among many others.
It is a work in progress as I keept finding new and better ways to organize/tune my setup.

7
calibration.cfg Normal file
View File

@ -0,0 +1,7 @@
[bed_screws]
screw1: 60,5
screw1_name: front screw
screw2: 5,115
screw2_name: back left
screw3: 115,115
screw3_name: back right

172
display.cfg Normal file
View File

@ -0,0 +1,172 @@
#####################################################################
# Display
#####################################################################
[display]
lcd_type: ssd1306
i2c_bus: i2c1a
contrast: 63
display_group: __voron_display
#####################################################################
# Custom Glyph Definitions
#####################################################################
[display_glyph chamber]
data:
................
****************
*....*....*....*
*....*....*....*
*....******....*
*..............*
*..............*
*.....****.....*
*.***.*..*.***.*
*.....****.....*
*......**......*
*..............*
*.************.*
*...*......*...*
****************
................
[display_glyph thermometer]
data:
0000000000000000
0000000000000000
0000000000111000
0000000001000100
0000000010010100
0000000100100100
0000001001001000
0000010010010000
0001100100100000
0010001001000000
0100100010000000
0101110100000000
0100100100000000
0010001000000000
0001110000000000
0000000000000000
[display_glyph voron]
data:
......***.......
....*******.....
...*********....
.*************..
*****..***..***.
****..***..****.
***..***..*****.
**..***..******.
******..***..**.
*****..***..***.
****..***..****.
***..***..*****.
.*************..
...*********....
....*******.....
......***.......
#####################################################################
# Display Template/Definition
#####################################################################
[display_template _chamber_temperature]
text:
{% set chamber = printer['temperature_sensor chamber'] %}
~chamber~
{ "%3.0f" % (chamber.temperature,) }
~degrees~
[display_template _vprint_status]
text:
{% if printer.display_status.message %}
{ printer.display_status.message }
{% elif printer.idle_timeout.printing_time %}
{% set pos = printer.toolhead.position %}
{ "X%-4.0fY%-4.0fZ%-5.2f" % (pos.x, pos.y, pos.z) }
{% else %}
~voron~
{" V2.823"}
{% endif %}
[display_data __voron_display extruder]
position: 0, 0
text: { render("_heater_temperature", param_heater_name= printer.toolhead.extruder) }
[display_data __voron_display fan]
position: 0, 10
text:{ render("_fan_speed") }
[display_data __voron_display heater_bed]
position: 1, 0
text: { render("_heater_temperature", param_heater_name="heater_bed") }
[display_data __voron_display chamber]
position: 1, 10
text: { render("_chamber_temperature") }
[display_data __voron_display print_progress]
position: 2, 0
text: { "{:^10.0%}".format(printer.display_status.progress) }
[display_data __voron_display progress_bar]
position: 2, 1 # Draw graphical progress bar after text is written
text: { draw_progress_bar(2, 0, 10, printer.display_status.progress) }
[display_data __voron_display printing_time]
position: 2, 10
text: { "%6s" % (render("_printing_time").strip(),) }
[display_data __voron_display print_status]
position: 3, 0
text : { render("_vprint_status") }
#####################################################################
# Display Specific Macros
#####################################################################
## Clear display after Duration
[delayed_gcode _CLEAR_DISPLAY]
gcode:
M117
[delayed_gcode _LCD_INIT_OFF]
initial_duration: 10
gcode:
SET_GCODE_VARIABLE MACRO=DISPLAY VARIABLE=state VALUE='"off"'
[gcode_macro DISPLAY]
variable_state: 'on'
gcode:
{% if printer["gcode_macro DISPLAY"].state == 'on' %}
_DISPLAY_OFF
{% else %}
_DISPLAY_ON
{% endif %}
[gcode_macro _display_state]
gcode:
{action_respond_info("LCD display %s" % (printer["gcode_macro DISPLAY"].state))}
[gcode_macro _DISPLAY_OFF]
## Display off to hinder burn in
gcode:
SET_GCODE_VARIABLE MACRO=DISPLAY VARIABLE=state VALUE='"off"'
_display_state
[gcode_macro _DISPLAY_ON]
## Display on
gcode:
SET_GCODE_VARIABLE MACRO=DISPLAY VARIABLE=state VALUE='"on"'
_display_state

48
homing.cfg Normal file
View File

@ -0,0 +1,48 @@
#####################################################################
# Homing definition
#####################################################################
[safe_z_home]
home_xy_position: 120,120
speed: 50.0
z_hop: 5
#####################################################################
# Macros
#####################################################################
## conditional home
[gcode_macro SMARTHOME]
gcode:
{% if printer.toolhead.homed_axes != "xyz" %}
G28
{% endif %}
[gcode_macro _SET_ACC]
default_parameter_VAL: RUN
default_parameter_HOMING_ACCEL: 500
variable_accel: 0
variable_accel_to_decel: 0
variable_last_val: 'RUN'
gcode:
{% if VAL == 'HOME' %}
# store old values and apply home value
SET_GCODE_VARIABLE MACRO=_SET_ACC VARIABLE=accel VALUE={printer.toolhead.max_accel}
SET_GCODE_VARIABLE MACRO=_SET_ACC VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}
{% set accel = HOMING_ACCEL %}
{% set accel_to_decel = HOMING_ACCEL %}
{% elif VAL == 'CONFIG' %}
# set all to config values
SET_GCODE_VARIABLE MACRO=_SET_ACC VARIABLE=accel VALUE={printer.configfile.settings.printer.max_accel}
SET_GCODE_VARIABLE MACRO=_SET_ACC VARIABLE=accel_to_decel VALUE={printer.configfile.settings.printer.max_accel}
{% set accel = printer.configfile.settings.printer.max_accel %}
{% set accel_to_decel = printer.configfile.settings.printer.max_accel %}
{% else %}
# load stored values
{% set accel = printer["gcode_macro _SET_ACC"].accel %}
{% set accel_to_decel = printer["gcode_macro _SET_ACC"].accel_to_decel %}
{% endif %}
{% if VAL != printer["gcode_macro _SET_ACC"].last_val|string %}
SET_GCODE_VARIABLE MACRO=_SET_ACC VARIABLE=last_val VALUE='"{VAL}"'
{action_respond_info("VELOCITY_LIMIT set ACCEL: %d ACCEL_TO_DECEL: %d" % (accel|int, accel_to_decel|int))}
SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel_to_decel}
{% endif %}

10
idle_timeout.cfg Normal file
View File

@ -0,0 +1,10 @@
#####################################################################
# Idle/Timeout Routine
#####################################################################
[idle_timeout]
timeout: 7200 #1 hour
gcode:
TURN_OFF_HEATERS
M84
_CASELIGHT_OFF

136
input_shaper.cfg Normal file
View File

@ -0,0 +1,136 @@
## Input Shaping
[input_shaper]
shaper_freq_x: 35
shaper_freq_y: 149.8
shaper_type_x: zv
shaper_type_y: zv
[adxl345]
cs_pin: rpi:None
axes_map: z,y,x
[resonance_tester]
accel_chip: adxl345
probe_points:
50,50,20
50,300,20
300 ,50,20
300,300,20
175,175,20 # Dead Center
min_freq: 5
max_freq: 120
accel_per_hz: 75
hz_per_sec: 1
#####################################################################
# Macros
#####################################################################
[gcode_macro resonance_test]
gcode:
# Set variables for axis centers
{% set midx = printer.configfile.config.stepper_x.position_max|float / 2 %}
{% set midy = printer.configfile.config.stepper_y.position_max|float / 2 %}
G28
TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 AXIS=X FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-x.csv
TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 AXIS=Y FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-y.csv
TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 VIB_X=1 VIB_Y=1 FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-b.csv
TEST_VIBRATIONS X={ midx } Y={ midy } Z=20 VIB_X=-1 VIB_Y=1 FREQ_START=10 FREQ_END=100 FREQ_STEP=0.5 OUTPUT=/tmp/vib-a.csv
[gcode_macro vibration_test]
gcode:
# Set variables for axis centers
{% set midx = printer.configfile.config.stepper_x.position_max|float / 2 %}
{% set midy = printer.configfile.config.stepper_y.position_max|float / 2 %}
# Store the user's intial input_shaper frequency parameters
{% set initShapeX = printer.configfile.config.input_shaper.shaper_freq_x %}
{% set initShapeY = printer.configfile.config.input_shaper.shaper_freq_y %}
G28
#X Vibration - With Input Shaper
G1 X{ midx - 25 } Y{ midy } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-x-input-shaper.csv
G1 X{ midx + 25 } Y{ midy } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-x-input-shaper.csv
#Y Vibration - With Input Shaper
G1 X{ midx } Y{ midy - 25 } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-y-input-shaper.csv
G1 X{ midx } Y{ midy + 25 } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-y-input-shaper.csv
#B Vibration - With Input Shaper
G1 X{ midx - 25 } Y{ midy - 25 } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-b-input-shaper.csv
G1 X{ midx + 25 } Y{ midy + 25 } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-b-input-shaper.csv
#A Vibration - With Input Shaper
G1 X{ midx + 25 } Y{ midy - 25 } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-a-input-shaper.csv
G1 X{ midx - 25 } Y{ midy + 25 } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-a-input-shaper.csv
SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
#X Vibration - Stock
G1 X{ midx - 25 } Y{ midy } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-x-stock.csv
G1 X{ midx + 25 } Y{ midy } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-x-stock.csv
#Y Vibration - Stock
G1 X{ midx } Y{ midy - 25 } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-y-stock.csv
G1 X{ midx } Y{ midy + 25 } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-y-stock.csv
#B Vibration - Stock
G1 X{ midx - 25 } Y{ midy - 25 } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-b-stock.csv
G1 X{ midx + 25 } Y{ midy + 25 } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-b-stock.csv
#A Vibration - Stock
G1 X{ midx + 25 } Y{ midy - 25 } Z20
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=3200 OUTPUT=/tmp/accel-a-stock.csv
G1 X{ midx - 25 } Y{ midy + 25 } F6000
M400
G4 P300
ACCELEROMETER_MEASURE CHIP=rpiaccel RATE=0 OUTPUT=/tmp/accel-a-stock.csv
# Restore user's input shaper frequency parameters
SET_INPUT_SHAPER SHAPER_FREQ_X={ initShapeX } SHAPER_FREQ_Y={ initShapeY }

239
machine.cfg Normal file
View File

@ -0,0 +1,239 @@
## Voron Design V0.1
## =========================
## SKR Minie E3 V2.0 Controller
## TMC2209 (UART mode) Drivers
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 4000
max_z_velocity: 50
max_z_accel: 1000
square_corner_velocity: 6.0
## Uncomment if tuning input shaping
#max_accel: 7000
#max_accel_to_decel: 7000
#####################################################################
# Microcontroller Definitions
#####################################################################
[mcu]
#serial: /dev/serial/by-id/
restart_method: command
#####################################################################
# Stepper Settings
#####################################################################
## X Stepper
[stepper_x]
step_pin: X_STEP
dir_pin: X_DIR
enable_pin: !X_ENABLE
# 2mm (GT2-6mm) Belt
# GT2 20T Pully
rotation_distance: 40
microsteps: 16
endstop_pin: X_ENDSTOP
position_min: 0
position_endstop: 120
position_max: 120
homing_speed: 20 #70; Max 100
homing_retract_dist: 5
homing_positive_dir: true
[tmc2209 stepper_x]
uart_pin: X_UART
tx_pin: X_TX
uart_address: 0
interpolate: True
run_current: 0.5
hold_current: 0.25
sense_resistor: 0.110
stealthchop_threshold: 500
## Y Stepper
[stepper_y]
step_pin: Y_STEP
dir_pin: Y_DIR
enable_pin: !Y_ENABLE
# 2mm (GT2-6mm) Belt
# GT2 20T Pully
rotation_distance: 40
microsteps: 16
endstop_pin: Y_STOP
position_min: 0
position_endstop: 120
position_max: 120
homing_speed: 20 #70; Max 100
homing_retract_dist: 5
homing_positive_dir: true
[tmc2209 stepper_y]
uart_pin: Y_UART
tx_pin: Y_TX
uart_address: 2
interpolate: True
run_current: 0.5
hold_current: 0.25
sense_resistor: 0.110
stealthchop_threshold: 500
## Z Stepper
[stepper_z]
step_pin: Z_STEP
dir_pin: Z_DIR
enable_pin: !Z_ENABLE
# 2mm (GT2-6mm) Belt
# GT2 20T Pully -> GT2 80T Pully -> 20T Pully
rotation_distance: 40
gear_ratio: 80:20
microsteps: 16
endstop_pin: Z_ENDSTOP
position_endstop: -0.10
position_max: 120
position_min: -1.5
homing_speed: 10 #40; Max 100
second_homing_speed: 3.0
homing_retract_dist: 3.0
[tmc2209 stepper_z]
uart_pin: Z_UART
tx_pin: Z_TX
uart_address: 1
interpolate: true
run_current: 0.75 # TL-42BYGH23 1.0A 2.1N-cm
hold_current: 0.5
sense_resistor: 0.110
stealthchop_threshold: 500
#####################################################################
# Extruder
#####################################################################
## E0
[extruder]
step_pin: E0_STEP
dir_pin: E0_DIR
enable_pin: !E0_ENABLE
rotation_distance: 22.23 # TL/Bondtech 5mm Drive Gears
gear_ratio: 50:10 # Mini Afterburner
microsteps: 16
full_steps_per_rotation: 200 # 200 for 1.8° motor
# 400 for 0.9° motor
nozzle_diameter: 0.400
max_extrude_cross_section: 1.44 # Let's pretend that I have a 0.6mm nozzle (IE Stop trying to save me Klipper)
filament_diameter: 1.75
heater_pin: HEAT_0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: TEMP_0
min_temp: 0
max_temp: 270
min_extrude_temp: 170
max_extrude_only_distance: 780.0
max_extrude_cross_section: 0.8
#control = pid
#pid_kp = 26.213
#pid_ki = 1.304
#pid_kd = 131.721
pressure_advance: 0.0
pressure_advance_smooth_time: 0.040
## E0 on MCU
[tmc2209 extruder]
uart_pin: E0_UART
tx_pin: E0_TX
uart_address: 3
interpolate: True
run_current: 0.3
hold_current: 0.2
sense_resistor: 0.110
stealthchop_threshold: 500
#####################################################################
# Bed Heater
#####################################################################
## Hotbed
[heater_bed]
heater_pin: HEAT_BED
sensor_type: EPCOS 100K B57560G104F
sensor_pin: TEMP_BED
## Adjust Max Power so your heater doesn't warp your bed
max_power: 0.6 # for 100W pads
min_temp: 0
max_temp: 120
#control: pid
#pid_Kp: 54.027
#pid_Ki: 0.770
#pid_Kd: 948.182
#####################################################################
# Fan Control
#####################################################################
## Hotend Fan
[heater_fan hotend_fan]
pin: FAN1
heater: extruder
heater_temp: 50.0
## If you are experiencing back flow, you can reduce fan_speed
fan_speed: 1.0
max_power: 1.0
kick_start_time: 0.5
## Print Cooling Fan
[fan]
pin: FAN
max_power: 1.0
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.13
cycle_time: 0.010
#####################################################################
# Other Sensors
#####################################################################
#####################################################################
# Lighting Control
#####################################################################
## Neopixel interface
[neopixel neo_status]
pin: RGB
chain_count: 1
color_order: RGB
initial_RED: 0.1
initial_GREEN: 0.5
initial_BLUE: 0.0
#####################################################################
# Advanced Features
#####################################################################
### Filament Runout Sensor - XYE Board, Z+
#[filament_switch_sensor filament_sensor]
#pause_on_runout: True
#switch_pin: ^!P1.24
#insert_gcode:
# M117 Insert Detected
#runout_gcode:
# M117 Runout Detected
# M600
# M400

69
macros.d/dumps.cfg Normal file
View File

@ -0,0 +1,69 @@
[gcode_macro DUMP_PARAMETERS]
gcode:
{% set parameters = namespace(output = '') %}
{% for name1 in printer %}
{% for name2 in printer[name1] %}
{% set donotwant = ['bed_mesh','configfile'] %}
{% if name1 is not in donotwant %}
{% set param = "printer['%s'].%s = %s" % (name1, name2, printer[name1][name2]) %}
{% set parameters.output = parameters.output + param + "\n" %}
{% endif %}
{% else %}
{% set param = "printer['%s'] = %s" % (name1, printer[name1]) %}
{% set parameters.output = parameters.output + param + "\n" %}
{% endfor %}
{% endfor %}
{action_respond_info(parameters.output)}
[gcode_macro DUMP_CONFIG]
gcode:
{% set parameters = namespace(output = '') %}
{% for name1 in printer.configfile.config %}
{% set show = ['printer', "bed_mesh VORON-0C-MUELLER"] %}
{% if name1 is in show %}
{% set param = "printer.configfile.config['%s'] = %s" % (name1, printer.configfile.config[name1]) %}
{% set parameters.output = parameters.output + param + "\n" %}
{% endif %}
{% endfor %}
{action_respond_info(parameters.output)}
[gcode_macro DUMP_SETTINGS]
gcode:
{% set parameters = namespace(output = '') %}
{% for name1 in printer.configfile.settings %}
{% set show = ['extruder'] %}
{% if name1 is not in show %}
{% set param = "printer.configfile.settings['%s'] = %s" % (name1, printer.configfile.settings[name1]) %}
{% set parameters.output = parameters.output + param + "\n" %}
{% endif %}
{% endfor %}
{action_respond_info(parameters.output)}
[gcode_macro DUMP_MCU_VER]
gcode:
{% set parameters = namespace(output = 'mcu build version: \n') %}
{% for name1 in printer %}
{% for name2 in printer[name1] %}
{% set show = ['mcu_version'] %}
{% if name2 is in show %}
{% set param = "%s: %s" % (name1, printer[name1][name2]) %}
{% set parameters.output = parameters.output + param + "\n" %}
{% endif %}
{% endfor %}
{% endfor %}
{action_respond_info(parameters.output)}
[gcode_macro DUMP_SATS]
gcode:
{% set cpu_t = printer.system_stats.cputime %}
{% set cpu_h = (cpu_t / 3600)|int %}
{% set cpu_m = ((cpu_t / 60) % 60)|int %}
{% set cpu_s = (cpu_t % 60)|int %}
{% set sysload = printer.system_stats.sysload|float * 100.0 %}
{% set mem_val = printer.system_stats.memavail|float / 8388608.0 %}
{action_respond_info("klipper process statistic:
Head stalls: %d
CPU Time: %d:%02d:%02d
Sysload: %.2f percent
Mem Val: %.3f MB" % (printer.toolhead.stalls, cpu_h, cpu_m ,cpu_s, sysload, mem_val))}

57
macros.d/functions.cfg Normal file
View File

@ -0,0 +1,57 @@
## use this if you need more then one action responeses in a order
## insight a macro
[gcode_macro _PRINT_AR]
gcode:
# set default parameter value
{% set show_lcd = params.SHOW_LCD|default('false') %}
{% if show_lcd == 'true' %}
M117 {'%s' % (params.T|string)}
{% endif %}
{action_respond_info("%s" % (params.T|string))}
[gcode_macro _PRINT_TIME]
gcode:
#set default parameter value
{% set text = params.TEXT|default('Timer') %}
{% set show_ar = params.SHOW_AR|default('false') %}
{% set minutes = ((params.TIME|int / 60) % 60)|int %}
{% set seconds = (params.TIME|int % 60)|int %}
M117 {'%s' % (TEXT)} {minutes|int}:{'%02d' % (seconds|int)}
{%if show_ar == 'true' %}
{action_respond_info("%s %d:%02d" % (text,minutes|int,seconds|int))}
{% endif %}
[gcode_macro _SET_Z_CURRENT]
default_parameter_VAL: RUN
variable_last_val: 'RUN'
gcode:
{% if VAL == 'HOME' %}
{% set z_run = 0.3 %}
{% set z1_run = 0.3 %}
{% set z2_run = 0.3 %}
{% set z3_run = 0.3 %}
{% set z_hold = 0.3 %}
{% set z1_hold = 0.3 %}
{% set z2_hold = 0.3 %}
{% set z3_hold = 0.3 %}
{% else %}
{% set z_run = printer.configfile.settings["tmc2209 stepper_z"]["run_current"] %}
{% set z1_run = printer.configfile.settings["tmc2209 stepper_z1"]["run_current"] %}
{% set z2_run = printer.configfile.settings["tmc2209 stepper_z2"]["run_current"] %}
{% set z3_run = printer.configfile.settings["tmc2209 stepper_z3"]["run_current"] %}
{% set z_hold = printer.configfile.settings["tmc2209 stepper_z"]["hold_current"] %}
{% set z1_hold = printer.configfile.settings["tmc2209 stepper_z1"]["hold_current"] %}
{% set z2_hold = printer.configfile.settings["tmc2209 stepper_z2"]["hold_current"] %}
{% set z3_hold = printer.configfile.settings["tmc2209 stepper_z3"]["hold_current"] %}
{% endif %}
{% if VAL != printer["gcode_macro _SET_Z_CURRENT"].last_val|string %}
SET_GCODE_VARIABLE MACRO=_SET_Z_CURRENT VARIABLE=last_val VALUE='"{VAL}"'
{action_respond_info("Home&Probe: RunCur %.2f HoldCur %.2f" % (z_run|float, z_hold|float))}
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={z_run} HOLDCURRENT={z_hold}
SET_TMC_CURRENT STEPPER=stepper_z1 CURRENT={z1_run} HOLDCURRENT={z1_hold}
SET_TMC_CURRENT STEPPER=stepper_z2 CURRENT={z2_run} HOLDCURRENT={z2_hold}
SET_TMC_CURRENT STEPPER=stepper_z3 CURRENT={z3_run} HOLDCURRENT={z3_hold}
M400
{% endif %}

122
macros.d/gcodes.cfg Normal file
View File

@ -0,0 +1,122 @@
## Undock Sled
[gcode_macro G32]
gcode:
BED_MESH_CLEAR
G28
QUAD_GANTRY_LEVEL
G28
G0 X175 Y175 Z20 F6000
## Auto Bed Leveling / Mesh Bed Compensation
[gcode_macro G29]
gcode:
G4
## Park toolhead
[gcode_macro M125]
gcode:
SAVE_GCODE_STATE NAME=parking
M117 Parking toolhead
G91
G1 Z20 F300 # move up 5 mm
G90
G1 X125 Y0 F4000 # move to park position
RESTORE_GCODE_STATE name=parking
## Load filament
[gcode_macro M701]
gcode:
SAVE_GCODE_STATE NAME=loading_filament
M117 Loading Filament
M83
G92 E0.0
G1 E420 F6000 # length of bowden tube till cold-end (~420mm)
G1 E100 F200 # some extra to prime the nozzle --> slower
G92 E0.0
RESTORE_GCODE_STATE name=loading_filament
## Unload filament
[gcode_macro M702]
gcode:
SAVE_GCODE_STATE NAME=unloading_filament
M125 # park
M117 Unloading Filament
G91 # set relative
G1 E10 F100
G92 E0.0
G1 E-530 F6000 # the E is the length of the bowden tube (420mm) + 100 mm.
G92 E0.0
RESTORE_GCODE_STATE name=unloading_filament MOVE=1
## Filament Change
[gcode_macro M600]
default_parameter_X: 50
default_parameter_Y: 0
default_parameter_Z: 10
gcode:
M117 Filament Change
SAVE_GCODE_STATE NAME=filament_change
PAUSE
G91 # relative
G1 E-1 F300 # retract 1
M125 # park
M702 # unload
M0 Click when filament inserted
M701 # load
RESTORE_GCODE_STATE NAME=filament_change
## TMC Debugging
[gcode_macro M122]
gcode:
DUMP_TMC STEPPER=stepper_x
DUMP_TMC STEPPER=stepper_y
DUMP_TMC STEPPER=stepper_z
DUMP_TMC STEPPER=extruder
## Power On
## Enables Octoprint 'PSU Control' and 'Action' plugins
[gcode_macro M80]
gcode:
RESPOND TYPE=command MSG=action:poweron
G4 P1500
FIRMWARE_RESTART
## Power Off
## Enables Octoprint 'PSU Control' and 'Action' plugins
[gcode_macro M81]
gcode:
RESPOND TYPE=command MSG=action:poweroff
## Break and Continue
[gcode_macro M108]
gcode:
TURN_OFF_HEATERS
## Wait for Chamber Temperature
[gcode_macro M191]
default_parameter_R: 30
default_parameter_S: 30
gcode:
TEMPERATURE_WAIT SENSOR="temperature_sensor chamber" MINIMUM={S}
# M201 - Set Print Max Acceleration
[gcode_macro M201]
gcode:
# M203 - Set Max Feedrate
[gcode_macro M203]
gcode:
# M205 - Set Advanced Settings
[gcode_macro M205]
gcode:

188
macros.d/macros.cfg Normal file
View File

@ -0,0 +1,188 @@
[gcode_macro ABL_MESH]
gcode:
SMARTHOME
QUAD_GANTRY_LEVEL
G28
BED_MESH_CALIBRATE
BED_MESH_PROFILE SAVE=default
M117 Restarting...
SAVE_CONFIG
# Do nozzle priming
[gcode_macro PRIME_EXTRUDER]
gcode:
M117 Priming
G92 E0
G1 X4.1 Y0 Z2.0 F6000
G1 X4.1 Y20 Z0.3 F6000.0
G1 X4.1 Y80.0 Z0.3 F600.0 E9
G1 X4.1 Y120.0 Z0.3 F600.0 E12
G92 E0
G1 F2400 E-0.2 # Small retract to remove pressure
G1 Z2.0 F3000
[gcode_macro CLEAN_EXTRUDER]
gcode:
M117 Cleaning # Indicate nozzle clean in progress on LCD
M109 S255 # Uncomment to set your own temp [run warmer to clean out nozzle]
M107 # Turn layer fan off
G21 # Set to metric [change to G20 if you want Imperial]
G90 # Force coordinates to be absolute relative to the origin
G28 # Home X/Y/Z axis
G0 X1 Y0 Z0.15 F9000 # Move in 1mm from edge and up [z] 0.15mm
G92 E0 # Set extruder to [0] zero
G1 Y290 E100 F500 # Extrude 100mm filiment along Y axis 290mm long to prime and clean the nozzle
G92 E0 # Reset extruder to [0] zero end of cleaning run
G1 E-3 F500 # Retract filiment by 3 mm to reduce string effect
G1 X3 Y290 Z15 F9000 # Move over and rise to safe Z height
G1 X3 Y0 Z15 F9000 # Move back to front of bed at safe Z height to shear strings
G1 E3 F500 # Uncomment if you believe exruder will be reset
[gcode_macro TUNE_EXTRUDER]
gcode:
M117 Tuning
G28 X0 Y0 Z0 # HOME ALL AXIS
G90 # ABSOLUTE POSITIONING
G92 E0 # SET EXTRUDER TO ZERO VALUE
M190 S60
M104 S215
M109
M82
G01 E100 F50 # ADVANCE 100MM OF FILAMENT
M140 S0
M104 S0
G90 E0 # Return to absolute positioning
[gcode_macro BLTOUCH_RESET]
gcode:
BLTOUCH_DEBUG COMMAND=reset
# Lighting Control
[gcode_macro lights_on]
gcode:
SET_PIN PIN=caselight VALUE=100
[gcode_macro lights_off]
gcode:
SET_PIN PIN=caselight VALUE=0
[gcode_macro lights_toggle]
gcode:
{% if printer["output_pin caselight"].value == 100 %}
lights_off
{% else %}
lights_on
{% endif %}
[gcode_macro GOTO_CENTER]
gcode:
LIFT_Z
G90
G0 X175 Y175 F6000
[gcode_macro LIFT_Z]
gcode:
G91
G0 Z15 F2000
G90
[gcode_macro SAVE_AT_END]
variable_save: 0
gcode:
SET_GCODE_VARIABLE MACRO=SAVE_AT_END VARIABLE=save VALUE=1
[gcode_macro SAVE_IF_SET]
gcode:
{% if printer["gcode_macro SAVE_AT_END"].save == 1 %}
{printer.gcode.action_respond_info("Saving was requested - saving and restarting now")}
SAVE_CONFIG
{% endif %}
[gcode_macro TUNE_HOTEND]
gcode:
M106 S64
M117 Hotend PID Cal
PID_CALIBRATE HEATER=extruder TARGET=245
M117 Restarting...
SAVE_AT_END
[gcode_macro TUNE_HOTBED]
gcode:
M117 Hotbed PID Cal
PID_CALIBRATE HEATER=heater_bed TARGET=100
M117 Restarting...
SAVE_AT_END
[gcode_macro heat_soak]
gcode:
{% if printer.toolhead.status == "Ready" %}
G28
G1 Z10
G1 X150 Y150 F6000
M140 S100
UPDATE_DELAYED_GCODE ID=heatsoakDelay DURATION=600
{% else %}
M117 "Load disabled while printing!"
{% endif %}
[delayed_gcode heatsoakDelay]
gcode:
M117
SET_PIN PIN=caselight VALUE=1
G4 P250
SET_PIN PIN=caselight VALUE=0
G4 P250
SET_PIN PIN=caselight VALUE=1
G4 P250
SET_PIN PIN=caselight VALUE=0
## Tuning Adjustments
## Adjust Z (SET_GCODE_OFFSET) based on each filament type (based on bed temp)
[gcode_macro TEMPADJUSTOFFSET]
gcode:
#ABS
{% if printer.heater_bed.target >= 100 %}
{% endif %}
#PETG
{% if printer.heater_bed.target > 65 and printer.heater_bed.target < 100 %}
SET_GCODE_OFFSET Z=0 MOVE=1
SET_GCODE_OFFSET Z_ADJUST=0.05 MOVE=1
{% endif %}
#PLA
{% if printer.heater_bed.target <= 65 %}
SET_GCODE_OFFSET Z=0 MOVE=1
SET_GCODE_OFFSET Z_ADJUST=0.1 MOVE=1
{% endif %}
## Pressure Advance Adjustments
## Use a different PA setting for each filiment type (uses bed temp to determine)
[gcode_macro TEMPADJUSTPA]
gcode:
#ABS
{% if printer.heater_bed.target >= 100 %}
SET_PRESSURE_ADVANCE ADVANCE=0.05585
{% endif %}
#PETG
{% if printer.heater_bed.target > 65 and printer.heater_bed.target < 100 %}
SET_PRESSURE_ADVANCE ADVANCE=0.0785
{% endif %}
#PLA
{% if printer.heater_bed.target <= 65 %}
SET_PRESSURE_ADVANCE ADVANCE=0.0325
{% endif %}

209
macros.d/purge.cfg Normal file
View File

@ -0,0 +1,209 @@
#######################################################################################################################################
# Sample macro config to be used in conjunction with the Decontaminator Purge Bucket & Nozzle Scrubber mod. Created by Hernsl
# (hernsl#8860 on Voron Design discord) and edited by Edwardyeeks (edwardyeeks#6042 on Voron Design Discord).
# The goal of this macro is to provide a nozzle scrubbing and purging routine that is easily copied/referenced into your printer.cfg.
# Users can simply change parameters and enable/disable options in the first half. Descriptions are laid out in sequence to be read
# first; PLEASE READ CAREFULLY.
# This sample config assumes the following: The user has implemented the default decontaminator purge bucket & nozzle scrubber mod
# for the VORON 1/2.
# Features in this macro: option of putting the bucket at the rear or front of the bed. Purge routine that can be enabled/disabled.
# By default, bucket is located at rear left of bed and purge routine is enabled.
# Default parameters are set for safe speeds and movements. Where necessary, tweak the parameters for the nozzle scrub procedure
# to fit your printer.
# To avoid adding length of lines to your main printer.cfg config file, one can upload a config file separately into klipper and
# include it into the main printer config. Upload nozzle_scrub.cfg to the same directory as printer.cfg. Usually, it is in /home/pi/.
# Once uploaded, add the following to your printer.cfg in the Macros section: [include /home/pi/nozzle_scrub.cfg]
# Those running mainsail will need to use the following location instead: [include /home/pi/klipper_config/nozzle_scrub.cfg]
#######################################################################################################################################
# Name of the macro is clean_nozzle.
[gcode_macro clean_nozzle]
# If you are putting your purge bucket at the rear left of the bed as per default installation, enable True on your location_bucket_rear
# variable. If you want to put your purge bucket elsewhere (perhaps the front), then set it to False. See diagrams and description
# further below on how to set your XY position.
variable_location_bucket_rear: True
# If you want the purging routine in your bucket enabled, set to True (and vice versa).
variable_enable_purge: True
# These parameters define your filament purging. Update as necessary. If you decided to not enable purge, you can ignore this section.
variable_purge_len: 10 ; Amount of filament, in mm, to purge.
variable_purge_spd: 150 ; Speed, in mm/s, of the purge.
variable_purge_temp_min: 235 ; Minimum nozzle temperature to permit a purge. Otherwise, purge will not occur.
# Adjust this so that your nozzle scrubs within the brush. Currently defaulted to be a lot higher for safety. Be careful not to go too low!
variable_brush_top: 1.75 ;10
# These parameters define your scrubbing, travel speeds, safe z clearance and how many times you want to wipe. Update as necessary.
variable_clearance_z: 5 ; When traveling, but not cleaning, the clearance along the z-axis between nozzle and brush.
variable_wipe_qty: 3 ; Number of complete (A complete wipe: start left, go right, go left) wipes.
variable_prep_spd_xy: 3000 ; Travel (not cleaning) speed along x and y-axis in mm/min.
variable_prep_spd_z: 1500 ; Travel (not cleaning) speed along z axis in mm/min.
variable_wipe_spd_xy: 5000 ; Nozzle wipe speed in mm/min.
# These parameters define the size of the brush. Update as necessary. A visual reference is provided below. Note that orientation of
# parameters remain the same whether bucket is at rear or front.
#
# ← brush_width →
# _________________ ↑
# | | ↑ If you chose location_bucket_rear = True, Y position is acquired
# brush_start (x) | | brush_depth from your stepper_y position_max. Adjust your brush physically in
# |_________________| ↓ Y so that the nozzle scrubs within the brush.
# (y) ↓
# brush_front
# __________________________________________________________
# PRINTER FRONT
#
#
## For V1.8, you may need to measure where your brush is on the x axis and input manually into any of the variable_brush_start uncommented.
## For V2.4 250mm build, uncomment this below:
#variable_brush_start: 25
## For V2.4 300mm build, uncomment this below:
#variable_brush_start: 50
## For V2.4 350mm build, uncomment this below:
variable_brush_start: 75
# This value is defaulted from brush location in CAD (rear left). Change if your brush width is different.
variable_brush_width: 52
## These are only used if location_bucket_rear is False. You specify a custom location in y axis for your brush - see diagram above. ##
variable_brush_front: 0
variable_brush_depth: 0
# These parameters define the size of your purge bucket. Update as necessary. If you decided to not enable purge, you can ignore
# this section. A visual reference is provided below. Note that orientation of parameters remain the same whether bucket is at rear
# or front.
#
# bucket_gap
# ← ---- →
# __________________________________________
# | | | |
# | | | |
# bucket_start (x) | |______| |
# | | | |
# | | | |
# |_________________|. . . |_________________|
# ← ------------- → ← ------------- →
# bucket_left_width bucket_right_width
# _______________________________________________________________________________________
# PRINTER FRONT
#
## For V2.4 250mm build, uncomment below
#variable_bucket_left_width: 42
## For V2.4 300mm build, uncomment below
#variable_bucket_left_width: 67
## For V2.4 350mm build, uncomment below
variable_bucket_left_width: 92
# These values are defaulted from bucket geometry in CAD (rear left location). Change only if you're using a custom bucket.
variable_bucket_right_width: 40
variable_bucket_gap: 22
# For V1.8, you may need to measure where your bucket start is and input into bucket_start. Otherwise, a value of 0 is for a default
# installation of purge bucket at rear left.
variable_bucket_start: 0
###############################################################################################################################################
###############################################################################################################################################
### From here on, unless you know what you're doing, it's recommended not to change anything.
###############################################################################################################################################
###############################################################################################################################################
# Placeholder. The variable will contain at random a number representing the left or right bucket.
variable_bucket_pos: 1
gcode:
# First, check if the axes are homed.
{% if "xyz" in printer.toolhead.homed_axes %}
## Save the gcode state in this macro instance.
SAVE_GCODE_STATE NAME=clean_nozzle
## Set to absolute positioning.
G90
## Grab max position of Y-axis from config to use in setting a fixed y position for location_bucket_rear = True.
{% set Ry = printer.configfile.config["stepper_y"]["position_max"]|float %}
## Check if user enabled purge option or not.
{% if enable_purge %}
### Randomly select left or right bin for purge.
SET_GCODE_VARIABLE MACRO=clean_nozzle VARIABLE=bucket_pos VALUE={(range(0, 1) | random)}
### Raise Z for travel.
G1 Z{brush_top + clearance_z} F{prep_spd_z}
### Check if user chose to use rear location.
{% if location_bucket_rear %}
G1 Y{Ry} F{prep_spd_xy}
{% else %}
G1 Y{brush_front + (brush_depth / 2)} F{prep_spd_xy}
{% endif %}
### Position for purge. Randomly selects middle of left or right bucket. It references from the middle of the left bucket.
G1 X{bucket_start + (bucket_left_width / 2) + (bucket_pos * bucket_gap) + (bucket_pos * (bucket_right_width / 2))}
### Perform purge if the temp is up to min temp. If not, it will skip and continue executing rest of macro.
{% if printer.extruder.temperature >= purge_temp_min %}
M83 ; relative mode
G1 E{purge_len} F{purge_spd}
G92 E0 ; reset extruder
{% endif %}
{% endif %}
## Position for wipe.
G1 Z{brush_top + clearance_z} F{prep_spd_z}
G1 X{brush_start} F{prep_spd_xy}
## Check if user chose to use rear location.
{% if location_bucket_rear %}
G1 Y{Ry}
{% else %}
G1 Y{brush_front + (brush_depth / 2)}
{% endif %}
## Move nozzle down into brush.
G1 Z{brush_top} F{prep_spd_z}
## Perform wipe.
{% for wipes in range(1, (wipe_qty + 1)) %}
G1 X{brush_start + brush_width} F{wipe_spd_xy}
G1 X{brush_start} F{wipe_spd_xy}
{% endfor %}
## Clear from area.
M117 Cleaned!
G1 Z{brush_top + clearance_z} F{prep_spd_z}
G1 X{bucket_left_width / 4} F{prep_spd_xy}
## Restore the gcode state to how it was before the macro.
RESTORE_GCODE_STATE NAME=clean_nozzle
{% else %}
## raise error will stop any macros that clean_nozzle is referenced in from proceeding for safety.
{ action_raise_error("Please home your axes!") }
M117 Please home first!
{% endif %}

91
macros.d/start_end.cfg Normal file
View File

@ -0,0 +1,91 @@
######################################################################
# Start Print and End Print
######################################################################
# Replace the slicer's custom start and end g-code scripts with
# START_PRINT and END_PRINT.
[gcode_macro START_PRINT]
variable_parameter_T_BED: 60
variable_parameter_T_EXTRUDER: 190
gcode:
CLEAR_PAUSE
# Perform a G28 'home' (if needed), wait for the bed to finish heating and do a QGL
SMARTHOME
SMARTQGL
# Start preheating the bed
M117 Heating bed/toolhead
_LCD_KNOB COLOR=RED BLINK=1
M140 S{T_BED}
M104 S{params.T_EXTRUDER|float*0.75}
G0 Z30 F1800
G0 X175 Y175 Z10 F6000
# Perform a G28 'home' (if needed), wait for the bed to finish heating and do a QGL
M190 S{T_BED}
;LOAD_MESH_TEMP BED_TEMPERATURE{T_BED}
BED_MESH_PROFILE LOAD=default
# Hover over purge bucket, wait for the hotend to finish, then purge/wipe and rehome Z
G0 X46 Y350 Z10 F18000
M109 S{T_EXTRUDER}
clean_nozzle
G28 Z
# Move the nozzle near the bed
G0 X4.1 Y0.1 Z2.0 F6000
G1 Z0.3 F6000
# Prime line
PRIME_EXTRUDER
M117
[gcode_macro END_PRINT]
variable_print_done: 'false'
gcode:
SAVE_GCODE_STATE NAME=STATE_PRINT_END
##### Get Boundaries #####
{% set max_x = printer.toolhead.axis_maximum.x|float %}
{% set max_y = printer.toolhead.axis_maximum.y|float %}
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_x = printer.toolhead.position.x|float %}
{% set act_y = printer.toolhead.position.y|float %}
{% set act_z = printer.toolhead.position.z|float %}
##### Calculate save move #####
{% if act_x < (max_x - 20.0) %}
{% set x_safe = 20.0 %}
{% else %}
{% set x_safe = -20.0 %}
{% endif %}
{% if act_y < (max_y - 20.0) %}
{% set y_safe = 20.0 %}
{% else %}
{% set y_safe = -20.0 %}
{% endif %}
{% if act_z < (max_z - 2.0) %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
M400
G92 E0
G1 E-2 F1800
G91
G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing
TURN_OFF_HEATERS
M107
G90
G0 X46 Y350 F18000 ; Park over purge bucket
BED_MESH_CLEAR
M300 ; Play a tone
_LCD_KNOB COLOR=GREEN
UPDATE_DELAYED_GCODE ID=_CLEAR_DISPLAY DURATION=10
SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=print_done VALUE='"true"'
RESTORE_GCODE_STATE NAME=STATE_PRINT_END

110
macros.d/tunes.cfg Normal file
View File

@ -0,0 +1,110 @@
[gcode_macro SONG_SMB_FLAGPOLE]
gcode:
M300 S196.0 P156 ;G3
M300 S261.6 P156 ;C4
M300 S329.6 P156 ;E4
M300 S392.0 P156 ;G4
M300 S523.3 P156 ;C5
M300 S659.3 P156 ;E5
M300 S784.0 P413 ;G5
M300 S659.3 P413 ;E5
M300 S207.7 P156 ;G#3
M300 S261.6 P156 ;C4
M300 S311.1 P156 ;D#4
M300 S415.3 P156 ;G#4
M300 S523.3 P156 ;C5
M300 S622.3 P156 ;D#5
M300 S830.6 P413 ;G#5
M300 S622.3 P413 ;D#5
M300 S233.1 P156 ;A#3
M300 S293.7 P156 ;D4
M300 S349.2 P156 ;F4
M300 S466.2 P156 ;A#4
M300 S587.3 P156 ;D5
M300 S698.5 P156 ;F5
M300 S932.3 P413 ;A#5
M300 S000.0 P001 ;silence
M300 S932.3 P156 ;A#5
M300 S000.0 P001 ;silence
M300 S932.3 P156 ;A#5
M300 S000.0 P001 ;silence
M300 S932.3 P156 ;A#5
M300 S000.0 P001 ;silence
M300 S1046.5 P700 ;C6
[gcode_macro SONG_FF_VICTORY]
gcode:
M300 S2349 P53
M300 S0 P53
M300 S2349 P53
M300 S0 P53
M300 S2349 P53
M300 S0 P53
M300 S2349 P428
M300 S932 P428
M300 S2093 P428
M300 S2349 P107
M300 S0 P214
M300 S2093 P107
M300 S2349 P857
[gcode_macro SONG_ZELDA_TREASURE]
gcode:
G4 P1000 ; wait
M300 S392 P200 ; G4
M300 S440 P200 ; A4
M300 S493.88 P200 ; B4
M300 S554.37 P200 ; C#5
M300 S392 P195 ; G4
M300 S440 P195 ; A4
M300 S493.88 P195 ; B4
M300 S554.37 P195 ; C#5
M300 S415.3 P190 ; G#4
M300 S466.16 P190 ; A#4
M300 S523.25 P190 ; C5
M300 S587.33 P190 ; D5
M300 S415.3 P185 ; G#4
M300 S466.16 P185 ; A#4
M300 S523.25 P185 ; C5
M300 S587.33 P185 ; D5
M300 S440 P180 ; A4
M300 S493.88 P180 ; B4
M300 S554.37 P180 ; C#5
M300 S622.25 P180 ; D#5
M300 S440 P175 ; A4
M300 S493.88 P175 ; B4
M300 S554.37 P175 ; C#5
M300 S622.25 P175 ; D#5
M300 S466.16 P169 ; A#4
M300 S523.25 P169 ; C5
M300 S587.33 P169 ; D5
M300 S659.25 P169 ; E5
M300 S466.16 P163 ; A#4
M300 S523.25 P163 ; C5
M300 S587.33 P163 ; D5
M300 S659.25 P163 ; E5
M300 S493.88 P158 ; B4
M300 S554.37 P158 ; C#5
M300 S622.25 P158 ; D#5
M300 S698.46 P158 ; F5
M300 S523.25 P151 ; C5
M300 S587.33 P151 ; D5
M300 S659.25 P151 ; E5
M300 S739.99 P151 ; F#5
M300 S554.37 P144 ; C#5
M300 S622.25 P144 ; D#5
M300 S698.46 P144 ; F5
M300 S783.99 P144 ; G5
M300 S587.33 P137 ; D5
M300 S659.25 P137 ; E5
M300 S739.99 P137 ; F#5
M300 S830.61 P137 ; G#5
G4 P750 ; wait
[gcode_macro SONG_PORTAL_ALIVE]
gcode:
M300 S3135 P166
M300 S2959 P166
M300 S2637 P166
M300 S2637 P166
M300 S2959 P166

21
other.cfg Normal file
View File

@ -0,0 +1,21 @@
## Other settings
# This enables a 'force_move' command ignoring all homing, Z-stops etc. Useful in debugging.
[force_move]
enable_force_move: True
# Support for gcode arc (G2/G3) commands.
[gcode_arcs]
resolution: 0.12
# Enables G10 (retract) and G11 (unretract) GCODE commands
[firmware_retraction]
retract_length: 1 # 1mm for direct drive/afterburner
retract_speed: 20
unretract_extra_length: 0
unretract_speed: 10
# File location of stored varibales
[save_variables]
filename: ~/config/.variables.stb

8
pi.cfg Normal file
View File

@ -0,0 +1,8 @@
[mcu rpi]
serial: /tmp/klipper_host_mcu
## Rasberry Pi CPU Temperature
[temperature_sensor cpu]
sensor_type: rpi_temperature
min_temp: 0
max_temp: 85

View File

@ -0,0 +1,44 @@
#This file contains common pin mappings for the BigTreeTech SKR 2.
# To use this config, the firmware should be compiled for the
# STM32F407 with a "32KiB bootloader".
# The "make flash" command does not work on the SKR 2. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR 2
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[board_pins]
aliases:
# BLTouch (Servo/Probe)
SERVO0=PA1,
PROBE=PC14,
# RGB
RGB=PA8
# Limit Switches
X_STOP=PC1,
Y_STOP=PC3,
Z_STOP=PC0,
E0_STOP=PC2,
E1_STOP=PA0,
# Steppers
X_STEP=PB13, X_DIR=PB12, X_ENABLE=PB14, X_UART=PC11, X_TX=PC10,
Y_STEP=PB10, Y_DIR=PB2, Y_ENABLE=PB11, Y_UART=PC11, Y_TX=PC10,
Z_STEP=PB0, Z_DIR=PC5, Z_ENABLE=PB1, Z_UART=PC11, Z_TX=PC10,
E0_STEP=PB3, E0_DIR=PB4, E0_ENABLE=PD2, E0_UART=PC11, E0_TX=PC10,
TEMP_0=PA0,
TEMP_BED=PC3,
FAN=PC6,
FAN1=PC7,
HEAT_0=PC8,
HEAT_BED=PC9,
# EXP1 header
EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
EXP1_2=PA15, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB15, EXP1_10=<5V>

94
printer.cfg Normal file
View File

@ -0,0 +1,94 @@
## Voron V2.4
# Inspiration from /u/VonThing & Floris Remmen
# Uses multiple config files.
#####################################################################
# Machine definitions
#####################################################################
[include machine.cfg]
[include pi.cfg]
#####################################################################
# Macros
#####################################################################
[include macros.d/*.cfg]
#####################################################################
# Caselight Control
#####################################################################
[include caselight.cfg]
#####################################################################
# Homing Routines
#####################################################################
[include homing.cfg]
#####################################################################
# Bed Mesh
#####################################################################
[include bed_mesh.cfg]
#####################################################################
# Calibration
#####################################################################
[include input_shaper.cfg]
#####################################################################
# Display
#####################################################################
[include display.cfg]
#####################################################################
# Idle/Timeout Routine
#####################################################################
[include idle_timeout.cfg]
#####################################################################
# Moonraker + Webclient
#####################################################################
[include webclient.cfg]
#####################################################################
# Other
#####################################################################
[include other.cfg]
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [stepper_z]
#*# position_endstop = -0.918
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 20.763
#*# pid_ki = 1.073
#*# pid_kd = 100.443
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 39.324
#*# pid_ki = 0.920
#*# pid_kd = 420.279
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.012500, 0.062500, 0.065000, 0.047500, 0.030000, 0.025000, 0.042500
#*# 0.005000, 0.037500, 0.032500, 0.012500, -0.015000, -0.022500, 0.005000
#*# -0.010000, 0.022500, 0.012500, -0.007500, -0.027500, -0.027500, 0.002500
#*# -0.010000, 0.025000, 0.020000, 0.000000, -0.020000, -0.017500, 0.027500
#*# -0.020000, 0.012500, 0.007500, -0.017500, -0.032500, -0.017500, 0.040000
#*# 0.010000, 0.042500, 0.035000, 0.012500, -0.007500, 0.005000, 0.062500
#*# 0.045000, 0.067500, 0.057500, 0.025000, 0.005000, 0.012500, 0.067500
#*# tension = 0.2
#*# min_x = 30.0
#*# algo = bicubic
#*# y_count = 7
#*# mesh_y_pps = 2
#*# min_y = 30.0
#*# x_count = 7
#*# max_y = 319.98
#*# mesh_x_pps = 2
#*# max_x = 319.98

131
webclient.cfg Normal file
View File

@ -0,0 +1,131 @@
#####################################################################
# Webclient Settings
#####################################################################
[virtual_sdcard]
path: ~/sdcard
# Enable status panel messages
[display_status]
# This adds pause/resume support
[pause_resume]
# Enable the "M118" and "RESPOND" extended commands.
[respond]
default_type: echo
default_prefix: echo:
#####################################################################
# LCD Menu Items
#####################################################################
[menu __main __octoprint]
type: disabled
[menu __main __sdcard]
type: list
enable: {'virtual_sdcard' in printer}
name: SD Card
[menu __main __sdcard __file]
type: command
name: File: {printer.print_stats.filename}
index: 0
[menu __main __sdcard __load]
type: vsdlist
#type: list
#event_sender: __vsdfiles
enable: {printer.print_stats.filename == "" and (printer.print_stats.state == "standby" or printer.print_stats.state == "error" or printer.print_stats.state == "complete")}
name: Load file
index: 1
[menu __main __sdcard __unload]
type: command
enable: {printer.print_stats.filename != "" and (printer.print_stats.state == "standby" or printer.print_stats.state == "error" or printer.print_stats.state == "complete")}
name: Unload file
index: 2
gcode:
# back is needed to reload the modified menu structure
{menu.back()}
SDCARD_RESET_FILE
[menu __main __sdcard __start]
type: command
enable: {printer.print_stats.filename != "" and (printer.print_stats.state == "standby" or printer.print_stats.state == "error" or printer.print_stats.state == "complete")}
name: Start print
index: 3
gcode:
{menu.exit()}
M24
[menu __main __sdcard __pause]
type: command
enable: {printer.print_stats.state == "printing"}
name: Pause print
gcode:
# back is needed to reload the modified menu structure
{menu.back()}
PAUSE
[menu __main __sdcard __resume]
type: command
enable: {printer.print_stats.state == "paused"}
name: Resume print
gcode:
{menu.exit()}
RESUME
[menu __main __sdcard __cancel]
type: command
enable: {printer.print_stats.state == "paused"}
name: Cancel print
gcode:
{menu.exit()}
CANCEL_PRINT
#####################################################################
# Macros
#####################################################################
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
default_parameter_X: 0 #edit to your park position
default_parameter_Y: 0 #edit to your park position
default_parameter_Z: 120 #edit to your park position
default_parameter_E: 0.2 #edit to your retract length
gcode:
SAVE_GCODE_STATE NAME=PAUSE_state
BASE_PAUSE
G91
G1 E-{E} F2100
G1 Z{Z}
G90
G1 X{X} Y{Y} F6000
[gcode_macro RESUME]
rename_existing: BASE_RESUME
default_parameter_E: 0.2 #edit to your retract length
gcode:
G91
G1 E{E} F2100
G90
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
BASE_RESUME
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
default_parameter_X: 0 #edit to your park position
default_parameter_Y: 0 #edit to your park position
default_parameter_Z: 120 #edit to your park position
gcode:
M104 S0
M140 S0
M141 S0
M106 S0
CLEAR_PAUSE
SDCARD_RESET_FILE
BASE_CANCEL_PRINT