-
Notifications
You must be signed in to change notification settings - Fork 0
/
printer-20221126_092517.cfg
838 lines (709 loc) · 24.3 KB
/
printer-20221126_092517.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
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
# This file contains pin mappings for the LDO Kit using BigTreeTech Octopus V1 as the main controller.
# To use this config, the firmware should be compiled for the STM32F446 with a "32KiB bootloader"
# Enable "extra low-level configuration options" and select the "12MHz crystal" as clock reference
# after running "make", copy the generated "klipper/out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the Octopus with that SD card.
# See docs/Config_Reference.md for a description of parameters.
## Voron Design VORON2 250/300/350mm BigTreeTech Octopus V1 TMC2209 UART config
## *** THINGS TO CHANGE/CHECK: ***
## MCU paths [mcu] section
## Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file
## Z Endstop Switch location [safe_z_home] section
## Homing end position [gcode_macro G32] section
## Z Endstop Switch offset for Z0 [stepper_z] section
## Probe points [quad_gantry_level] section
## Min & Max gantry corner postions [quad_gantry_level] section
## PID tune [extruder] and [heater_bed] sections
## Thermistor types [extruder] and [heater_bed] sections
## Probe pin [probe] section
## Fine tune E steps [extruder] section
[mcu]
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_440050000151303530353135-if00
restart_method: command
##--------------------------------------------------------------------
[printer]
kinematics: corexy
max_velocity: 500
max_accel: 10000
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
#####################################################################
# X/Y Stepper Settings
#####################################################################
## B Stepper - Left
## Connected to MOTOR0
## Endstop connected to DIAG0
[stepper_x]
step_pin: PF13
dir_pin: PF12
enable_pin: !PF14
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:400 #set to 200 for 1.8 degree stepper
endstop_pin: PG6
position_min: 0
##--------------------------------------------------------------------
position_endstop: 350
position_max: 350
##--------------------------------------------------------------------
homing_speed: 25 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PC4
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 0
## A Stepper - Right
## Connected to MOTOR1
## Endstop connected to DIAG1
[stepper_y]
step_pin: PG0
dir_pin: PG1
enable_pin: !PF15
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:400 #set to 200 for 1.8 degree stepper
endstop_pin: PG9
position_min: 0
##--------------------------------------------------------------------
position_endstop: 355
position_max: 355
##--------------------------------------------------------------------
homing_speed: 25 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PD11
interpolate: false
run_current: 0.8
sense_resistor: 0.110
#stealthchop_threshold: 0
#####################################################################
# Z Stepper Settings
#####################################################################
## Z0 Stepper - Front Left
## Connected to MOTOR2_1
## Endstop connected to DIAG_2
[stepper_z]
step_pin: PF11
dir_pin: PG3
enable_pin: !PG5
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32
endstop_pin: PG10
## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0)
## (+) value = endstop above Z0, (-) value = endstop below
## Increasing position_endstop brings nozzle closer to the bed
## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config
#position_endstop: -0.5
##--------------------------------------------------------------------
position_max: 310
##--------------------------------------------------------------------
position_min: -5
homing_speed: 8
second_homing_speed: 3
homing_retract_dist: 3
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PC6
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
## Z1 Stepper - Rear Left
## Connected to MOTOR3
[stepper_z1]
step_pin: PG4
dir_pin: !PC1
enable_pin: !PA0
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z1]
uart_pin: PC7
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
## Z2 Stepper - Rear Right
## Connected to MOTOR4
[stepper_z2]
step_pin: PF9
dir_pin: PF10
enable_pin: !PG2
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z2]
uart_pin: PF2
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
## Z3 Stepper - Front Right
## Connected to MOTOR5
[stepper_z3]
step_pin: PC13
dir_pin: !PF0
enable_pin: !PF1
rotation_distance: 40
gear_ratio: 80:16
microsteps: 32
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z3]
uart_pin: PE4
interpolate: false
run_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
#####################################################################
# Extruder
#####################################################################
## Connected to MOTOR_6
## Heater - HE0
## Thermistor - T0
[extruder]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PD4
## Update value below when you perform extruder calibration
## If you ask for 100mm of filament, but in reality it is 98mm:
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
## 22.6789511 is a good starting point
rotation_distance: 22.6789511 #Bondtech 5mm Drive Gears
## Update Gear Ratio depending on your Extruder Type
## Use 50:10 for Stealthburner/Clockwork 2
## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)
## Use 80:20 for M4, M3.1
gear_ratio: 50:10 #BMG Gear Ratio
microsteps: 32
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: PA1
## Validate the following thermistor type to make sure it is correct
## See https://www.klipper3d.org/Config_Reference.html#common-thermistors for additional options
sensor_type: ATC Semitec 104NT-4-R025H42G
sensor_pin: PF4
min_temp: 0
max_temp: 295
max_power: 1.0
min_extrude_temp: 180
#control = pid
#pid_kp = 26.213
#pid_ki = 1.304
#pid_kd = 131.721
## Try to keep pressure_advance below 1.0
pressure_advance: 0.04
## Default is 0.040, leave stock
#pressure_advance_smooth_time: 0.040
## E0 on MOTOR6
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 extruder]
uart_pin: PE1
interpolate: false
run_current: 0.5
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Bed Heater
#####################################################################
[include bedfans.cfg]
[heater_bed]
## SSR Pin - HE1
## Thermistor - TB
heater_pin: PA2
## Validate the following thermistor type to make sure it is correct
## Keenovo branded bed heaters should use Generic 3950
## LDO branded bed heaters will have the sensor type labelled on the heater
## See https://www.klipper3d.org/Config_Reference.html#common-thermistors for additional options
sensor_type: Generic 3950
sensor_pin: PF3
## Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .
max_power: 0.68
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769
#####################################################################
# Probe
#####################################################################
[probe]
## Inductive Probe - DIAG7
## This probe is not used for Z height, only Quad Gantry Leveling
pin: PG15
x_offset: 0
y_offset: 25.0
z_offset: 0
speed: 10.0
samples: 5
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.006
samples_tolerance_retries: 3
#####################################################################
# Fan Control
#####################################################################
[fan]
## Print Cooling Fan - CNC_FAN0
pin: PA8
kick_start_time: 0.5
## Depending on your fan, you may need to increase this value
## if your fan will not start. Can change cycle_time (increase)
## if your fan is not able to slow down effectively
off_below: 0.10
[heater_fan hotend_fan]
## Hotend Fan - CNC_FAN1
pin: PE5
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
## If you are experiencing back flow, you can reduce fan_speed
#fan_speed: 1.0
[controller_fan controller_fan]
## Controller fan - CNC_FAN2
pin: PD12
kick_start_time: 0.5
heater: heater_bed
fan_speed: 0.5
idle_timeout: 300
idle_speed: 0.25
#[heater_fan exhaust_fan]
# Exhaust fan - CNC_FAN3
#pin: PD13
#max_power: 1.0
#shutdown_speed: 0.0
#kick_start_time: 5.0
#heater: heater_bed
#heater_temp: 95
#fan_speed: 1.0
#####################################################################
# LED Control
#####################################################################
#[output_pin caselight]
## Chamber Lighting - CNC_FAN5
#pin: PD15
#pwm:true
#shutdown_value: 0
#value:0
#cycle_time: 0.01
#####################################################################
# Additional Sensors
#####################################################################
[thermistor CMFB103F3950FANT]
temperature1: 0.0
resistance1: 32116.0
temperature2: 40.0
resistance2: 5309.0
temperature3: 80.0
resistance3: 1228.0
[temperature_sensor chamber_temp]
## Chamber Temperature - T1
sensor_type: CMFB103F3950FANT
sensor_pin: PF5
min_temp: 0
max_temp: 100
gcode_id: chamber_th
[temperature_sensor RPi]
sensor_type: temperature_host
######################################################################
## Input Shaper Settings ##
######################################################################
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
probe_points:
175, 175, 20
[input_shaper]
shaper_freq_x: 47.4
shaper_type_x: mzv
shaper_freq_y: 33.6
shaper_type_y: mzv
#####################################################################
# Homing and Gantry Adjustment Routines
#####################################################################
[idle_timeout]
timeout: 5400
#[safe_z_home]
# XY Location of the Z Endstop Switch
# Update -10,-10 to the XY coordinates of your endstop pin
# (such as 157,305) after going through Z Endstop Pin
## Location Definition step.
#home_xy_position:232,350
#speed:100
#z_hop:10
#z_hop_speed:10
[quad_gantry_level]
## Use QUAD_GANTRY_LEVEL to level a gantry.
## Min & Max gantry corners - measure from nozzle at MIN (0,0) and
## MAX (250, 250), (300,300), or (350,350) depending on your printer size
## to respective belt positions
#--------------------------------------------------------------------
## Gantry Corners for 350mm Build
## Uncomment for 350mm build
gantry_corners:
-60,-10
410,420
# Probe points
points:
50,25
50,275
300,275
300,25
#--------------------------------------------------------------------
speed: 100
horizontal_move_z: 10
retries: 5
retry_tolerance: 0.0075
max_adjust: 10
[bed_mesh]
speed: 300
horizontal_move_z: 15
##--------------------------------------------------------------------
## Uncomment below for 250mm build
#mesh_min: 40, 40
#mesh_max: 210,210
## Uncomment for 300mm build
#mesh_min: 40, 40
#mesh_max: 260,260
## Uncomment for 350mm build
mesh_min: 40, 40
mesh_max: 310,310
##--------------------------------------------------------------------
fade_start: 0.6
fade_end: 10.0
probe_count: 5,5
algorithm: bicubic
relative_reference_index: 12
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE8, EXP1_2=PE7,
EXP1_3=PE9, EXP1_4=PE10,
EXP1_5=PE12, EXP1_6=PE13, # Slot in the socket on this side
EXP1_7=PE14, EXP1_8=PE15,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_2=PA5,
EXP2_3=PB1, EXP2_4=PA4,
EXP2_5=PB2, EXP2_6=PA7, # Slot in the socket on this side
EXP2_7=PC15, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<5V>
#####################################################################
# Displays
#####################################################################
[display]
# mini12864 LCD Display
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
contrast: 63
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP2_6
spi_software_sclk_pin: EXP2_2
[neopixel btt_mini12864]
# To control Neopixel RGB in mini12864 display
pin: EXP1_6
chain_count: 3
initial_RED: 0.3
initial_GREEN: 0.3
initial_BLUE: 0.3
color_order: RGB
## Set RGB values on boot up for each Neopixel.
## Index 1 = display, Index 2 and 3 = Knob
[delayed_gcode setdisplayneopixel]
initial_duration: 1
gcode:
# ALL WHITE
SET_LED LED=btt_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1 TRANSMIT=0
SET_LED LED=btt_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=2 TRANSMIT=0
SET_LED LED=btt_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=3
#--------------------------------------------------------------------
#####################################################################
# Macros
#####################################################################
[include klicky-probe.cfg]
[include mainsail.cfg]
[include stealthburner.cfg]
[include variables.cfg]
[gcode_macro G32]
gcode:
status_homing
G28
QUAD_GANTRY_LEVEL
G28
G0 X175 Y175 Z30 F3600
#--------------------------------------------------------------------
[gcode_macro PRINT_START]
# Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
# Load variables
{% set BED_TEMP = params.BED_TEMP|default(60)|int %}
{% set extruder_temp = params.EXTRUDER_TEMP|default(215)|int %}
# Heatsoak time of the bed in minutes and chamber temperature wanted
{% set SOAK = params.SOAK|default(printer["gcode_macro _USER_VARIABLES2"].print_default_soak)|int %}
{% set CHAMBER_TEMP = params.CHAMBER|default(printer["gcode_macro _USER_VARIABLES2"].print_default_chamber_temp)|int %}
{% set CHAMBER_MAXTIME = params.CHAMBER_MAXTIME|default(printer["gcode_macro _USER_VARIABLES2"].print_default_chamber_max_heating_time)|int %}
# 2 ----- BED HEATSOAK -------------------------------------
# Heatsoak the bed if SOAK time is set and bed is not already warming up to the correct temperature (+-8°C).
# We make the assumption that the soak is not needed if the bed is already at the correct target.
# We also use the recirculating filter under the bed (if available) at full power to spread the heat
# during the heatsoak if a specific temperature need to be reached.
{% if status_leds_enabled %}
STATUS_LEDS COLOR="HEATING"
{% endif %}
{% if (SOAK > 0) and (printer.heater_bed.target < (BED_TEMP - 8)) %}
# If the machine is equiped by a chamber temperature sensor and a recirculating filter (check is automatic under the hood),
# then we look if a specific chamber temperature is needed and we power on the recirculating filter to spread the heat
{% if (CHAMBER_TEMP > 0) and filter_enabled %}
START_FILTER SPEED=1
{% endif %}
# Put the bed temperature target and wait for the soak
HEATSOAK_BED TEMP={BED_TEMP} SOAKTIME={SOAK}
{% else %}
# If the machine is equiped by a chamber temperature sensor and a recirculating filter (check is automatic under the hood),
# then we look if a specific chamber temperature is needed and we power on the recirculating filter to spread the heat
{% if (CHAMBER_TEMP > 0) and filter_enabled %}
START_FILTER SPEED=1
{% endif %}
# Only heat the bed to the target and continue
HEATSOAK_BED TEMP={BED_TEMP} SOAKTIME=0
{% endif %}
# 3 ----- CHAMBER HEATSOAK ----------------------------------
# If a setpoint is defined and a sensor available, then we wait to reach the chamber temperature (with a timeout in case it's winter...)
# We heat up the extruder a little bit to speed up the process by using the hotend fan. If there is one, the recirculating filter
# is also be powered on from the previous step and kept like that to act as bed fans
{% if chamber_sensor_enabled %}
{% if CHAMBER_TEMP > 0 %}
M109 S{EXTRUDER_TEMP - 50}
# Wait for the temperature of the chamber to be reached (default max: 15min)
HEATSOAK_CHAMBER TEMP={CHAMBER_TEMP} MAXTIME={CHAMBER_MAXTIME}
{% endif %}
{% endif %}
#HEAT_SOAK {% 0 if params.BED_TEMP < 100 else 50 %}
# Pre-heat extruder to 150
M104 S150
status_heating
# Set GCODE offset
# SET_GCODE_OFFSET Z=0
# Home
M117 Homing
G32 ; home all axes
status_calibrating_z
CALIBRATE_Z
G1 Z20 F3000 ; move nozzle away from bed
# Reset extruder
G92 E0
# Set extruder temperature
M117 Waiting on nozzle
M109 S{extruder_temp}
# Nozzle brushy
CLEAN_NOZZLE
# Move Z axis up a little to prevent scratching heat bed
G1 Z2.0 F3000
# Move to start position
G1 X0.1 Y20 Z2.0 F5000.0
# Wait for Extruder temperature
M109 S{extruder_temp}
M117 Purging
# Move to start for purge line
G1 X0.1 Y20 Z0.3 F5000.0
# Draw 1st line
G1 X0.1 Y150.0 Z0.3 F1500.0 E15
# Move to side a little
G1 X0.4 Y150.0 Z0.3 F5000.0
# Draw 2nd line
G1 X0.4 Y20 Z0.3 F1500.0 E30
# Reset extruder
G92 E0
# Move Z up a little
G1 Z5.0 F3000
M117 Printing
status_printing
[gcode_macro PRINT_END]
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
# safe anti-stringing move coords
{% set th = printer.toolhead %}
{% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %}
{% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %}
{% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %}
SAVE_GCODE_STATE NAME=STATE_PRINT_END
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-5.0 F1800 ; retract filament
TURN_OFF_HEATERS
G90 ; absolute positioning
G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing
G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 125} F3600 ; park nozzle at rear
G0 Z50
M107 ; turn off fan
status_off
BED_MESH_CLEAR
RESTORE_GCODE_STATE NAME=STATE_PRINT_END
M117 Complete
[gcode_macro M600]
gcode:
{% set x = params.X|default(50)|int %}
{% set y = params.X|default(0)|int %}
{% set z = params.X|default(10)|int %}
SAVE_GCODE_STATE NAME=M600_state
PAUSE
G91
G1 E-.8 F2700
G1 Z{z}
G90
G1 X{x} Y{y} F3000
G91
G1 E-50 F1000
RESTORE_GCODE_STATE NAME=M600_state
# Turn printer off
[gcode_macro POWER_OFF_PRINTER]
gcode:
{action_call_remote_method("set_device_power", device="printer", state="off")}
[gcode_macro LOAD_FILAMENT]
gcode:
{% set EXTRUDER_TEMP = params.EXTRUDER|default(230)|int %}
M104 S{EXTRUDER_TEMP}
G28
G90
G0 Z15
G0 X175 Y50 Z25
M109 S{EXTRUDER_TEMP}
M83 ; set extruder to relative
G1 E25 F1800 ; quickly load filament to down bowden
G1 E25 F300 ; slower extrusion for hotend path
G1 E15 F150 ; prime nozzle with filament
M82 ; set extruder to absolute
[gcode_macro UNLOAD_FILAMENT]
gcode:
{% set EXTRUDER_TEMP = params.EXTRUDER|default(230)|int %}
M104 S{EXTRUDER_TEMP}
G28
G90
G0 Z15
G0 X175 Y50 Z25
M109 S{EXTRUDER_TEMP}
M83 ; set extruder to relative
G1 E10 F300 ; extrude a little to soften tip
G1 E-50 F1800 ; retract filament completely
M82 ; set extruder to absolute
[gcode_macro CLEAN_NOZZLE]
variable_start_x: 270
variable_start_y: 354
variable_start_z: 0.2
variable_wipe_dist: 40
variable_wipe_qty: 3
variable_wipe_spd: 200
variable_raise_distance: 24.8
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
G90 ; absolute positioning
## Move nozzle to start position
G1 X{start_x} Y{start_y} F6000
G1 Z{start_z} F1500
## Wipe nozzle
{% for wipes in range(1, (wipe_qty + 1)) %}
G1 X{start_x + wipe_dist} F{wipe_spd * 60}
G1 X{start_x} F{wipe_spd * 60}
{% endfor %}
## Raise nozzle
G1 Z{raise_distance}
[gcode_macro _SET_FAN_SPEED]
gcode:
M106 S{ (params.PERCENT | float) * 255 / 100 }
[gcode_macro CENTER]
gcode:
G90
G0 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } Z{ printer.toolhead.axis_maximum.z/2 } F7200
[gcode_macro HEATSOAK_CHAMBER]
description: Heatsoak chamber to a specific temperature with a timeout
gcode:
{% set chamber_sensor_enabled = printer["gcode_macro _USER_VARIABLES2"].chamber_temperature_sensor_enabled %}
{% if chamber_sensor_enabled %}
{% set SETPOINT_TEMP = params.TEMP|default(0)|float %}
{% set MAXTIME = params.MAXTIME|default(printer["gcode_macro _USER_VARIABLES2"].print_default_chamber_max_heating_time)|int %}
{% set verbose = printer["gcode_macro _USER_VARIABLES2"].verbose %}
{% for _ in range(1, MAXTIME) %}
_WAIT_CHAMBER_TEMP TEMP={SETPOINT_TEMP}
{% endfor %}
{% if verbose %}
RESPOND MSG="Chamber temperature OK !"
{% endif %}
{% endif %}
[gcode_macro _WAIT_CHAMBER_TEMP]
# This macro is needed to allow klipper populate a new value in the printer[...].temperature variable
# as each variables are populated only once at the beginning of every macro call
gcode:
{% set chamber_sensor_enabled = printer["gcode_macro _USER_VARIABLES2"].chamber_temperature_sensor_enabled %}
{% if chamber_sensor_enabled %}
{% set chamber_sensor_name = printer["gcode_macro _USER_VARIABLES2"].chamber_temperature_sensor_name %}
{% set SETPOINT_TEMP = params.TEMP|default(0)|float %}
{% set CURRENT_TEMP = printer["temperature_sensor " ~ chamber_sensor_name].temperature|float %}
{% if CURRENT_TEMP <= SETPOINT_TEMP %}
RESPOND MSG="Heating up the chamber : {CURRENT_TEMP}/{SETPOINT_TEMP}"
G4 P{60000 * 1} # wait a minute and check again if called in a loop
{% endif %}
{% endif %}
[gcode_macro HEATSOAK_BED]
description: Heatsoak bed at specified temperature and wait for a specific amount of time
gcode:
{% set SETPOINT_TEMP = params.TEMP|default(0)|int %}
{% set TIME = params.SOAKTIME|default(8)|int %}
{% set verbose = printer["gcode_macro _USER_VARIABLES2"].verbose %}
{% if verbose %}
RESPOND MSG="Heating up bed..."
{% endif %}
M190 S{SETPOINT_TEMP}
{% if TIME > 0 %}
{% for _ in range(1, TIME) %}
RESPOND MSG="Heatsoak..."
G4 P{60000 * 1}
{% endfor %}
{% else %}
RESPOND MSG="No heatsoak needed, continue"
{% endif %}
{% if verbose %}
RESPOND MSG="Bed temperature OK"
{% endif %}
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 47.911
#*# pid_ki = 1.432
#*# pid_kd = 400.656
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 25.560
#*# pid_ki = 2.793
#*# pid_kd = 58.467
#*#
#*# [stepper_z]
#*# position_endstop = -0.985