-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathemulator_other_features.cfg
557 lines (516 loc) · 21.5 KB
/
emulator_other_features.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
[gcode_macro START_PRINT]
gcode:
{% set BED_TEMP = params.BED_TEMP|default(70)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(220)|float %}
{% set ACCELERATION = params.ACCELERATION|default(4000)|float %}
{% set DECELERATION = params.DECELERATION|default(ACCELERATION)|float %}
{% set PRESSURE_ADVANCE = params.PRESSURE_ADVANCE|default(0)|float %}
{% set SMOOTH_TIME = params.SMOOTH_TIME|default(0.04)|float %}
{% set CORNER_VELOCITY = params.CORNER_VELOCITY|default(5)|float %}
# Use absolute coordinates
G90
M83
# Home the printer
G28
#Set bed mesh profile
BED_MESH_PROFILE LOAD=default
#Set max acceleration
SET_VELOCITY_LIMIT ACCEL={ACCELERATION}
#Set max deceleration
SET_VELOCITY_LIMIT ACCEL_TO_DECEL={DECELERATION}
#Set square corner velocity
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={CORNER_VELOCITY}
# Turn off pressure advance
SET_PRESSURE_ADVANCE ADVANCE=0
# Start bed heating
#RESPOND MSG="Warming Bed and Nozzle to no-ooze temp"
M140 S{BED_TEMP}
# Start nozzle heating to no ooze temp
M104 S100
# Move to edge of bed while heating nozzle
G92 E0.0; reset extrusion distance
G1 X0 Y-115 Z0.3 F4000; go outside print area
G92 E0.0; reset extrusion distance
# Wait for bed final temp
M190 S{BED_TEMP}
# Set final nozzle temp
#RESPOND MSG="Warming nozzle to final temperature and moving close to bed"
M104 S{EXTRUDER_TEMP}
#Wait for bed and nozzle heating
M190 S{BED_TEMP}
M109 S{EXTRUDER_TEMP}
# Extrude about 40 mm by printing a 90 degree arc
#RESPOND MSG="Starting prime lines"
G1 E30 F1000 ; de-retract and push ooze
#G3 X54.672 Y-112.668 I54.672 J105.105 E24
#RESPOND MSG="Arc 1 Complete"
G92 E0.0
#G1 E-10 F3000 ; retract 5mm
#G1 X0 Y0 F10000
#G1 E10 F1500; de-retract
#G92 E0.0 ; reset extrusion distance
#RESPOND MSG="Preparing to print"
#M82 ; extruder absolute mode
SET_PRESSURE_ADVANCE ADVANCE={PRESSURE_ADVANCE}
SET_PRESSURE_ADVANCE SMOOTH_TIME={SMOOTH_TIME}
[gcode_macro END_PRINT]
gcode:
# Turn off bed, extruder, and fan
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
# Move nozzle away from print while retracting
G91 ; relative coordinates
G92 E0
G1 E-2 F300 ; retract filament a bit before lifting
G1 Z5 E-5 F6000 ; raise platform from current position
G90 ; absolute coordinates
G1 X-125 Y0 F3000 ; present print
G92 E0
# Home and disable motors
G28
M84
# This variant is for delta printers.
# Home, get position, throw around toolhead, home again.
# If MCU stepper positions (first line in GET_POSITION) are greater than a full step different (your number of microsteps), then skipping occured.
# We only measure to a full step to accomodate for endstop variance.
# Example: TEST_SPEED_DELTA SPEED=300 ACCEL=5000 ITERATIONS=10
[gcode_macro TEST_SPEED_DELTA]
gcode:
# Speed
{% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %}
# Iterations
{% set iterations = params.ITERATIONS|default(5)|int %}
# Acceleration
{% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %}
# Bounding inset for large pattern (helps prevent slamming the toolhead into the sides after small skips, and helps to account for machines with imperfectly set dimensions)
{% set bound = params.BOUND|default(20)|int %}
# Size for small pattern box
{% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %}
# Large pattern
# Max positions, inset by BOUND
{% set radius_bound = printer.toolhead.axis_maximum.x - bound %}
{% set xy_max_pos = ((radius_bound ** 2) / 2) ** 0.5 %}
{% set x_min = xy_max_pos * -1 %}
{% set x_max = xy_max_pos %}
{% set y_min = xy_max_pos * -1 %}
{% set y_max = xy_max_pos %}
# Small pattern at center
# Set small pattern box around center point
{% set x_center_min = smallpatternsize / 2 * -1 %}
{% set x_center_max = smallpatternsize / 2 %}
{% set y_center_min = smallpatternsize / 2 * -1 %}
{% set y_center_max = smallpatternsize / 2 %}
# Save current gcode state (absolute/relative, etc)
SAVE_GCODE_STATE NAME=TEST_SPEED_DELTA
# Output parameters to g-code terminal
{ action_respond_info("TEST_SPEED_DELTA: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) }
# Home and get position for comparison later:
G28
G90
G4 P1000
GET_POSITION
# Go to starting position
G0 X{x_min} Y{y_min} Z{printer.toolhead.axis_maximum.z/2} F{speed*60}
# Set new limits
SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2}
{% for i in range(iterations) %}
# Large pattern
# Diagonals
G0 X{x_min} Y{y_min} F{speed*60}
G0 X{x_max} Y{y_max} F{speed*60}
G0 X{x_min} Y{y_min} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60}
G0 X{x_min} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60}
# Box
G0 X{x_min} Y{y_min} F{speed*60}
G0 X{x_min} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60}
# Small pattern
# Small diagonals
G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_max} Y{y_center_max} F{speed*60}
G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60}
G0 X{x_center_min} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60}
# Small box
G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_min} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60}
{% endfor %}
# Restore max speed/accel/accel_to_decel to their configured values
SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel}
# Re-home and get position again for comparison:
G28
G4 P1000
GET_POSITION
# Restore previous gcode state (absolute/relative, etc)
RESTORE_GCODE_STATE NAME=TEST_SPEED_DELTA
##########################################################[EMULATORS / FILAMENT COMPATABILITY]##################################################################################################
[gcode_macro Cartesian_filament]
description: lower acceration / velocity max to print cartesian optimised filaent. eg low melt pla /silk 'like blends' prone to bad overhangs / tearing infill with delta jerk /acc values.
gcode:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=8.0
SET_VELOCITY_LIMIT ACCEL=650
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=650
SET_VELOCITY_LIMIT VELOCITY=150
[gcode_macro Super_racer]
description: lower acceration / velocity max to print cartesian optimised filaent. eg low melt pla /silk 'like blends' prone to bad overhangs / tearing infill with delta jerk /acc values.
gcode:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5.0
SET_VELOCITY_LIMIT ACCEL=4000
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=4000
SET_VELOCITY_LIMIT VELOCITY=110
[gcode_macro Super_racer_performance]
description: lower acceration / velocity max to print cartesian optimised filaent. eg low melt pla /silk 'like blends' prone to bad overhangs / tearing infill with delta jerk /acc values.
gcode:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=45.0
SET_VELOCITY_LIMIT ACCEL=6000
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=4000
SET_VELOCITY_LIMIT VELOCITY=400
[gcode_macro Corexy_voron_ratrig]
description: lower acceration / velocity max to print cartesian optimised filaent. eg low melt pla /silk 'like blends' prone to bad overhangs / tearing infill with delta jerk /acc values.
gcode:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=8.0
SET_VELOCITY_LIMIT ACCEL=3000
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=1500
SET_VELOCITY_LIMIT VELOCITY=300
############################################################################################################################################################
#MACROS
############################################################################################################################################################
[save_variables]
filename: ~/variables.cfg
[homing_override]
gcode:
{% set CONFIG_A = printer.configfile.settings['tmc2209 stepper_a'].run_current|float %}
{% set CONFIG_B = printer.configfile.settings['tmc2209 stepper_b'].run_current|float %}
{% set CONFIG_C = printer.configfile.settings['tmc2209 stepper_c'].run_current|float %}
{% set SAFE = 0.75 %}
SET_VELOCITY_LIMIT velocity=60
SET_TMC_CURRENT STEPPER=stepper_a CURRENT={SAFE}
SET_TMC_CURRENT STEPPER=stepper_b CURRENT={SAFE}
SET_TMC_CURRENT STEPPER=stepper_c CURRENT={SAFE}
G28
SET_TMC_CURRENT STEPPER=stepper_a CURRENT={CONFIG_A}
SET_TMC_CURRENT STEPPER=stepper_b CURRENT={CONFIG_B}
SET_TMC_CURRENT STEPPER=stepper_c CURRENT={CONFIG_C}
SET_VELOCITY_LIMIT velocity={printer.configfile.settings.printer.max_velocity}
[delayed_gcode LOAD_GCODE_OFFSETS]
initial_duration: 6
gcode:
{% if printer.save_variables.variables.z_offset %}
{% set zoffset = printer.save_variables.variables.z_offset %}
SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}
{ action_respond_info("Loaded Z offset from saved variables [%s]" % (zoffset)) }
{% endif %}
[delayed_gcode CALIBRATION_ROUTINE]
initial_duration: 7
gcode:
{% set svv = printer.save_variables.variables %}
{% if svv.calibration_active == 0 %} # If calibration wasn't stopped early, run calibration at boot
M117 Preheating bed
M190 S{svv.bed_temp}
M117 Running delta calibrate
SAVE_VARIABLE VARIABLE=calibration_active VALUE=3
_DELTA_CALIBRATE_SAFE
M400
SAVE_VARIABLE VARIABLE=calibration_active VALUE=1
SAVE_CONFIG
{% elif svv.calibration_active == 1 %}
SAVE_VARIABLE VARIABLE=calibration_active VALUE=3
M117 Preheating bed
M190 S{svv.bed_temp}
M117 Preheat finsihed calibrating bed mesh
_CALIBRATE_BED_MESH
{% else %}
SAVE_VARIABLE VARIABLE=calibration_active VALUE=3
{% endif %}
[gcode_macro CALIBRATE]
gcode:
SAVE_VARIABLE VARIABLE=bed_temp VALUE='"{printer.heater_bed.target}"'
SAVE_VARIABLE VARIABLE=calibration_active VALUE=3
G28
G91
G0 Z-50 F1500
G28
G91
G0 Z-50 F1500
G28
G91
G0 Z-50 F1500
G28
G91
G0 Z-50 F1500
G28
G91
G0 Z-50 F1500
ENDSTOP_PHASE_CALIBRATE stepper=stepper_a
ENDSTOP_PHASE_CALIBRATE stepper=stepper_b
ENDSTOP_PHASE_CALIBRATE stepper=stepper_c
M400
G28
SAVE_VARIABLE VARIABLE=calibration_active VALUE=0
SAVE_CONFIG
[gcode_macro _DELTA_CALIBRATE_SAFE]
gcode:
{% set CONFIG_A = printer.configfile.settings['tmc2209 stepper_a'].run_current|float %}
{% set CONFIG_B = printer.configfile.settings['tmc2209 stepper_b'].run_current|float %}
{% set CONFIG_C = printer.configfile.settings['tmc2209 stepper_c'].run_current|float %}
{% set SAFE = 0.75 %}
G28
G91
SET_GCODE_OFFSET Z=0 MOVE=0
g0 z-150 F6000 #40 stock
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1
SET_VELOCITY_LIMIT ACCEL=650
SET_VELOCITY_LIMIT VELOCITY=50
SET_TMC_CURRENT STEPPER=stepper_a CURRENT={SAFE}
SET_TMC_CURRENT STEPPER=stepper_b CURRENT={SAFE}
SET_TMC_CURRENT STEPPER=stepper_c CURRENT={SAFE}
DELTA_CALIBRATE
M400
G0 Z20 F3000
G0 Y0 F7800
G0 X0 F7800
G28
[gcode_macro _CALIBRATE_BED_MESH]
gcode:
{% set CONFIG_A = printer.configfile.settings['tmc2209 stepper_a'].run_current|float %}
{% set CONFIG_B = printer.configfile.settings['tmc2209 stepper_b'].run_current|float %}
{% set CONFIG_C = printer.configfile.settings['tmc2209 stepper_c'].run_current|float %}
{% set SAFE = 0.75 %}
G28
SET_GCODE_OFFSET Z=0 MOVE=0
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1
SET_VELOCITY_LIMIT ACCEL=650
SET_VELOCITY_LIMIT VELOCITY=80
SET_TMC_CURRENT STEPPER=stepper_a CURRENT={SAFE}
SET_TMC_CURRENT STEPPER=stepper_b CURRENT={SAFE}
SET_TMC_CURRENT STEPPER=stepper_c CURRENT={SAFE}
BED_MESH_CALIBRATE
G1 Z50 F3000
G1 X0 F7800
G1 Y0 F7800
G28
SET_TMC_CURRENT STEPPER=stepper_a CURRENT={CONFIG_A}
SET_TMC_CURRENT STEPPER=stepper_b CURRENT={CONFIG_B}
SET_TMC_CURRENT STEPPER=stepper_c CURRENT={CONFIG_C}
M117 Calibration Complete
SAVE_VARIABLE VARIABLE=calibration_active VALUE=3
SAVE_VARIABLE VARIABLE=bed_temp VALUE='"{0}"'
SET_GCODE_OFFSET Z_ADJUST=+0.2 MOVE=0
SET_VELOCITY_LIMIT velocity={printer.configfile.settings.printer.max_velocity}
SAVE_CONFIG
[gcode_macro SET_GCODE_OFFSET]
rename_existing: _SET_GCODE_OFFSET
gcode:
{% if printer.save_variables.variables.z_offset %}
{% set zoffset = printer.save_variables.variables.z_offset %}
{% else %}
{% set zoffset = {'z': None} %}
{% endif %}
{% set ns = namespace(zoffset={'z': zoffset.z}) %}
_SET_GCODE_OFFSET {% for p in params %}{'%s=%s '% (p, params[p])}{% endfor %}
{%if 'Z' in params %}{% set null = ns.zoffset.update({'z': params.Z}) %}{% endif %}
{%if 'Z_ADJUST' in params %}
{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({'z': 0}) %}{% endif %}
{% set null = ns.zoffset.update({'z': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}
{% endif %}
SAVE_VARIABLE VARIABLE=z_offset VALUE="{ns.zoffset}"
############################################################################################################################################################
#IF ENABLED KEEP WALL ACCELERATION THE SAME WITH PRESSURE ADVANCE THIS ALSO APPLIES TO M205. DO NOT FORGET KLIPPER DOES NOT USE JERK THE VALUES ARE NOT THE SAME AND SCALE WITH ACC.
#THIS IS BOTH FOR COMPATABILITY WITH CERTAIN SLICERS AND FOR DYNAMIC ACC
[gcode_macro M204]
rename_existing: M204.1
gcode:
{% set f = params.F|default(0.85)|float %} # DEFAULT 0.85 = 85 PERCENT OF SET ACCELERATION VIA SLICER FOR ACCEL TO DECEL
{% if 'S' in params %}
{% set s = params.S|float %}
SET_VELOCITY_LIMIT ACCEL={s} #ACCEL_TO_DECEL={ s * f }
{% else %}
{% if 'P' in params %}
{% set p = params.P|float %}
{% if 'T' in params %}
{% set t = params.T|float %}
{% if p < t %}
SET_VELOCITY_LIMIT ACCEL={p} #ACCEL_TO_DECEL={ p * f }
{% else %}
SET_VELOCITY_LIMIT ACCEL={t} #ACCEL_TO_DECEL={ t * f }
{% endif %}
{% else %}
SET_VELOCITY_LIMIT ACCEL={p} #ACCEL_TO_DECEL={ p * f }
{% endif %}
{% elif 'T' in params %}
{% set t = params.T|float %}
SET_VELOCITY_LIMIT ACCEL={t} #ACCEL_TO_DECEL={ t * f }
{% endif %}
{% endif %}
############################################################################################################################################################
[gcode_macro M205]
gcode:
{% if 'X' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}
{% elif 'Y' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}
{% endif %}
############################################################################################################################################################
[gcode_macro PID_Bed]
gcode:
PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60, true)}
SAVE_CONFIG
############################################################################################################################################################
[gcode_macro PID_Hotend]
gcode:
G28
G91
M106 S{params.FAN|default(256)}
G1 Z-50 F1500
PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(220)}
G28
SAVE_CONFIG
############################################################################################################################################################
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
gcode:
##### set defaults #####
{% set x = params.X|default(-25) %} #edit to your park position
{% set y = params.Y|default(25) %} #edit to your park position
{% set z = params.Z|default(30)|float %} #edit to your park position
{% set e = params.E|default(1) %} #edit to your retract length
##### calculate save lift position #####
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% set lift_z = z|abs %}
{% if act_z < (max_z - lift_z) %}
{% set z_safe = lift_z %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
##### end of definitions #####
PAUSE_BASE
G91
{% if printer.extruder.can_extrude|lower == 'true' %}
G1 E-{e} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
G1 Z{z} F900
G90
G1 X{x} Y{y} F6000
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
############################################################################################################################################################
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
END_PRINT
CANCEL_PRINT_BASE
############################################################################################################################################################
[gcode_macro UNLOAD_FILAMENT]
gcode:
SAVE_GCODE_STATE NAME=unload_state
G91 # Relative positioning
M117 Heating...
M109 S{params.TEMP|default(220, true)} # Heat up hotend to provided temp or 220 as default as that should work OK with most filaments.
M117 Unloading filament...
G0 E50 F400 # Purge
G0 E-50 F1500 # Quick Retract
G0 E-600 F2000 # Unload the rest of the filament
M117 Filament unloaded!
RESTORE_GCODE_STATE NAME=unload_state
############################################################################################################################################################
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
##### set defaults #####
{% set e = params.E|default(1) %} #edit to your retract length
#### get VELOCITY parameter if specified ####
{% if 'VELOCITY' in params|upper %}
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
{%else %}
{% set get_params = "" %}
{% endif %}
##### end of definitions #####
G91
{% if printer.extruder.can_extrude|lower == 'true' %}
G1 E{e} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
RESUME_BASE {get_params}
############################################################################################################################################################
[gcode_macro LOAD_FILAMENT]
gcode:
SAVE_GCODE_STATE NAME=load_state
G91 #Relative positioning
M117 Heating...
M109 S{params.TEMP|default(220, true)} #Heat up hotend to provided temp or 220 as default as that should work OK with most filaments.
M117 Loading filament...
G0 E610 F2000 # Load the filament into the hotend area.
G4 P1000
G0 E50 F200 # Purge
M400
TURN_OFF_HEATERS
M117 Filament loaded!
RESTORE_GCODE_STATE NAME=load_state
############################################################################################################################################################
#MISC SENSORS / AUXILARY HARDWARE/ optional features remove # to enable
############################################################################################################################################################
[endstop_phase stepper_a]
endstop_align_zero: false
[endstop_phase stepper_b]
endstop_align_zero: false
[endstop_phase stepper_c]
endstop_align_zero: false
[gcode_macro M600]
description: FILAMENT CHANGE
gcode:
SAVE_GCODE_STATE NAME=M600_state
PAUSE
G92 E0
M117 Ejecting remaining filament
G0 E-0.4 F1500 # Quick Retract
G0 E-510 F1000 #eject remaining filament
M117 load with fluid,klipperscreen
RESTORE_GCODE_STATE NAME=M600_state
[filament_switch_sensor my_sensor]
switch_pin: PA4
pause_on_runout: False
runout_gcode:
PAUSE
M400 #Wait for current moves to finish:
M117 Ejecting remaining filament
G0 E-0.4 F1500 # Quick Retract
G0 E-510 F1200 #eject remaining filament
insert_gcode:
M117 Check temps if cold set temps to print settings 1st.
[gcode_arcs]
resolution: 1.0
#[skew_correction] #https://www.klipper3d.org/skew_correction.html # Only use this if you have to its better to square the machine vs compensate.
[virtual_sdcard]
path: ~/printer_data/gcodes
[pause_resume] #not a copy fluidd needs this
[display_status]
[temperature_sensor rpi_temperature]
sensor_type: temperature_host
[temperature_sensor mcu_temperature]
sensor_type: temperature_mcu #note remove this for skr1.3 configs
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC5, EXP1_3=PD13, EXP1_5=PE14, EXP1_7=PD11, EXP1_9=<GND>,
EXP1_2=PE13, EXP1_4=PC6, EXP1_6=PE15, EXP1_8=PD10, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_3=PE8, EXP2_5=PE11, EXP2_7=PE12, EXP2_9=<GND>,
EXP2_2=PA5, EXP2_4=PE10, EXP2_6=PA7, EXP2_8=<RST>, EXP2_10=<3.3v>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp1"
# See the sample-lcd.cfg file for definitions of common LCD displays.