-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprobe.cfg
218 lines (187 loc) · 6.72 KB
/
probe.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
#####################################################################
# Probe
#####################################################################
[probe]
## Inductive Probe - is not used for Z height, only Quad Gantry Leveling
## In Z+ position, if your probe is NO instead of NC, add change pin to ^PA3
pin: ^PA3
x_offset: 0
y_offset: 19.75
z_offset: 6 #2.5
speed: 3.5
lift_speed: 8.0
samples: 3
samples_result: median
sample_retract_dist: 1.5
samples_tolerance: 0.01
samples_tolerance_retries: 10
#####################################################################
# Z Calibration
#####################################################################
[z_calibration]
switch_offset: 0.500 # using Higher number = closer to bed
max_deviation: 2.0
speed: 200 # the moving speed in x and y
samples: 3
probe_nozzle_x: 230 # coordinates for clicking the nozzle on the z-endstop
probe_nozzle_y: 357
probe_switch_x: 222 # coordinates for clicking the probe's body on the z-endstop
probe_switch_y: 333
######################################################################
# BMP280 Environmental Sensor
######################################################################
# [temperature_sensor bmp280_sensor]
# sensor_type: BME280
# i2c_address: 118
# i2c_mcu: mcu
# i2c_bus: i2c1a
# i2c_speed: 100000
# #gcode_id: AMB
# ##QUERY_BME280 SENSOR='bme280 my_sensor'
# ##Could simply enter QUERY_BME280 as well ???
# [gcode_macro QUERY_BME280]
# gcode:
# {% set sensor = printer["bme280 bme280_sensor"] %}
# {action_respond_info(
# "Temperature: %.2f C\n"
# "Pressure: %.2f hPa\n"
# "Humidity: %.2f%%" % (
# sensor.temperature,
# sensor.pressure,
# sensor.humidity))}
#####################################################################
# Macros
#####################################################################
## customize QUAD GANTRY LEVEL gcode
[gcode_macro QUAD_GANTRY_LEVEL]
rename_existing: BASE_QUAD_GANTRY_LEVEL
gcode:
SAVE_GCODE_STATE NAME=QUAD_GANTRY_LEVEL
CG28
SECURE_ATTACH_PROBE
BASE_QUAD_GANTRY_LEVEL
{% if params.CALIBRATE|default('true') == 'true' %}
CALIBRATE_Z RESET_SETTINGS=false
{% else %}
PROBE_PARK_LATER
{% endif %}
# reset accel current
RESTORE_GCODE_STATE NAME=QUAD_GANTRY_LEVEL
## customize CALIBRATE Z gcode
[gcode_macro CALIBRATE_Z]
rename_existing: BASE_CALIBRATE_Z
gcode:
CG28
SECURE_ATTACH_PROBE
BASE_CALIBRATE_Z
PROBE_PARK_LATER
# attaching the probe if not already attached
[gcode_macro SECURE_ATTACH_PROBE]
gcode:
QUERY_PROBE
_PROBE_ACTION action=attach
_CHECK_PROBE action=check_attach
# docking the probe if not already docked
[gcode_macro SECURE_DOCK_PROBE]
gcode:
QUERY_PROBE
_PROBE_ACTION action=dock
_CHECK_PROBE action=check_dock
[gcode_macro _CHECK_PROBE]
variable_probe_state: 0
default_parameter_action:
gcode:
QUERY_PROBE
_PROBE_ACTION action={ ACTION }
[gcode_macro _PROBE_ACTION]
variable_ticks: 0
variable_reset_ticks: 10
variable_delay_ticks: 60
default_parameter_action:
gcode:
{% set state = not printer.probe.last_query %}
SET_GCODE_VARIABLE MACRO=_CHECK_PROBE VARIABLE=probe_state VALUE={ state }
# attach/dock probe
{% if not state and params.ACTION == 'attach' %}
_ATTACH_PROBE
{% endif %}
{% if state and params.ACTION == 'dock' %}
_DOCK_PROBE
{% endif %}
# check if probe fails to attach/detach
{% if state and params.ACTION == 'check_dock' %}
{ action_raise_error("Probe dock failed!") }
{% endif %}
{% if not state and params.ACTION == 'check_attach' %}
{ action_raise_error("Probe attach failed!") }
{% endif %}
# this attaching from above is more silent but would
# be dangerous if the probe is already attached!
#[gcode_macro _ATTACH_PROBE]
#gcode:
# SAVE_GCODE_STATE NAME=_ATTACH_PROBE
# SET_GCODE_OFFSET Z=0.0 ; reset offset - will be restored
# G90 ; absolute positioning
# G0 X252.5 Y300 Z10 F12000 ; move to mag-probe
# G0 Z0.0 F540 ; move down to mag-probe
# G0 Y285 F6000 ; move out
# G0 Z10 F540 ; move up
# RESTORE_GCODE_STATE NAME=_ATTACH_PROBE
[gcode_macro _ATTACH_PROBE]
gcode:
SAVE_GCODE_STATE NAME=_ATTACH_PROBE
SET_GCODE_OFFSET Z=0.0 ; reset offset - will be restored
G90 ; absolute positioning
G0 X9 Y290 F12000 ; move to mag-probe
G0 Y357 F6000 ; move in
G0 Y307 F6000 ; move out
RESTORE_GCODE_STATE NAME=_ATTACH_PROBE
[gcode_macro _DOCK_PROBE]
gcode:
SAVE_GCODE_STATE NAME=_DOCK_PROBE
SET_GCODE_OFFSET Z=0.0 ; reset offset - will be restored
G90 ; absolute positioning
G0 X9 Y290 F12000 ; move to mag-probe
G0 Y357 F6000 ; move in
G0 X55 F6000 ; move right
RESTORE_GCODE_STATE NAME=_DOCK_PROBE
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
SECURE_ATTACH_PROBE
_BED_MESH_CALIBRATE {% for p in params
%}{'%s=%s' % (p, params[p])}{%
endfor %}
PROBE_PARK_LATER
[gcode_macro PROBE_ACCURACY]
rename_existing: _PROBE_ACCURACY
gcode:
#store current nozzle location
SAVE_GCODE_STATE NAME=original_nozzle_location
SECURE_ATTACH_PROBE
PARKCENTER Z={printer.configfile.settings.quad_gantry_level.horizontal_move_z}
_PROBE_ACCURACY {% for p in params
%}{'%s=%s' % (p, params[p])}{%
endfor %}
PROBE_PARK_LATER
#restore current nozzle location
RESTORE_GCODE_STATE NAME=original_nozzle_location MOVE=1
[gcode_macro PROBE_PARK_LATER]
gcode:
SET_GCODE_VARIABLE MACRO=_PROBE_ACTION VARIABLE=ticks VALUE="'{printer['gcode_macro _PROBE_ACTION'].reset_ticks}'"
UPDATE_DELAYED_GCODE ID=PROBE_PARK_LATER_TICK DURATION={printer['gcode_macro _PROBE_ACTION'].delay_ticks}
[delayed_gcode PROBE_PARK_LATER_TICK]
initial_duration: 0
gcode:
SET_GCODE_VARIABLE MACRO=_PROBE_ACTION VARIABLE=ticks VALUE="'{printer['gcode_macro _PROBE_ACTION'].ticks - 1}'"
{% if printer['gcode_macro _PROBE_ACTION'].ticks <=1 %}
SECURE_DOCK_PROBE
{% else %}
## tick one more time
UPDATE_DELAYED_GCODE ID=PROBE_PARK_LATER_TICK DURATION={printer['gcode_macro _PROBE_ACTION'].delay_ticks}
{% endif %}
## gcode doing actual parking called by PROBE_PARK after some checks
[gcode_macro PROBE_PARK_FORCE]
gcode:
## disable later parking timer if it's working
UPDATE_DELAYED_GCODE ID=PROBE_PARK_LATER_TICK DURATION=0