-
Notifications
You must be signed in to change notification settings - Fork 0
/
emulator_other_features.cfg
524 lines (474 loc) · 20.6 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
##########################################################[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=31.0
SET_VELOCITY_LIMIT ACCEL=3700
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=3200
SET_VELOCITY_LIMIT VELOCITY=300
[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: ~/printer_data/config/saved_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
SET_GCODE_OFFSET Z_ADJUST=+0.2 MOVE=0
[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=300
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 F3000
G1 Y0 F3000
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}"
######################################################################################################################
########SPEED TEST##############
######################################################################################################################
# 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.
#TEST_RANGE_DELTA SPEED=300 ITERATIONS= 2 SMALLPATTERNSIZE=20 START_ACCEL=5000 END_ACCEL=10000 ACCEL_STEP=1000
[gcode_macro TEST_RANGE_DELTA]
gcode:
# Speed
{% set speed = params.SPEED|default(100)|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 = params.SMALLPATTERNSIZE|default(20)|int %}
# Acceleration Steps
{% set start_accel = params.START_ACCEL|default(5000)|int %}
{% set end_accel = params.END_ACCEL|default(printer.configfile.settings.printer.max_accel)|int %}
{% set accel_step = params.ACCEL_STEP|default(1000)|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:
CG28
G90
G4 P1000
GET_POSITION
# Perform tests
{% for i in range(((end_accel - start_accel)/accel_step + 1)|int) %}
# 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={start_accel + accel_step * i} ACCEL_TO_DECEL={((start_accel + accel_step * i)/2)|int}
CONSOLE_MESSAGE MSG="Test start for {start_accel + accel_step * i} mm/s^2, at {speed} mm/s for smallsize {x_center_max *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 %}
#get new position
G28
G90
G4 P1000
GET_POSITION
CONSOLE_MESSAGE MSG="Test finished for {start_accel + accel_step * i} mm/s^2, at {speed} mm/s"
{% 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
[gcode_macro CG28]
# Required Macros: CONSOLE_MESSAGE
description: Conditional G28
gcode:
# Check if printer is homed
{% if "xyz" not in printer.toolhead.homed_axes %}
CONSOLE_MESSAGE MSG="Homing printer"
G28
{% else %}
CONSOLE_MESSAGE MSG="Printer already homed"
{% endif %}
[gcode_macro CONSOLE_MESSAGE]
gcode:
{% set msg = params.MSG %}
{action_respond_info(msg)}
############################################################################################################################################################
#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_70]
gcode:
PID_CALIBRATE HEATER=heater_bed TARGET=70
############################################################################################################################################################
[gcode_macro Pid_Hotend]
gcode:
G28
G91
M106 S64
G1 Z-50 F1500
PID_CALIBRATE HEATER=extruder TARGET=260
##############################################################################################################################################################
[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:
G28
TURN_OFF_HEATERS
CANCEL_PRINT_BASE
############################################################################################################################################################
[gcode_macro UNLOAD_FILAMENT]
gcode:
SAVE_GCODE_STATE NAME=unload_state
G91 # Relative positioning
M117 Heating...
M109 S{params.TEMP|default(235, 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-475 F500 # 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(235, true)} #Heat up hotend to provided temp or 220 as default as that should work OK with most filaments.
M117 Loading filament...
G0 E475 F1000 # 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
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: /home/pi/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.