HAL FDM/FFF Conventions
This file contains conventions for building HAL configurations for 3D-printers aka FDM/FFF machines. The goal is to make FDM related components and user interfaces compatible with each other by using the same names in the HAL configuration.
Abbreviations
Abbreviation | Name |
---|---|
FDM |
Fused Deposition Modeling |
HBP |
Heated Build Platform |
HBC |
Heated Build Chamber |
En |
Extruder n |
Fn |
Fan n |
Ln |
Light n |
Sn |
Servo n |
Pn |
Probe n |
VE |
Velocity Extrusion |
Analog Output
# | Name |
---|---|
0 |
HBP target temperature |
1 |
HBC target temperature |
2 - 11 |
E0-E9 target temperature |
12 - 21 |
F0-F9 speed |
22 - 25 |
S0-S3 pulse duration |
26 |
L0 red value |
27 |
L0 green value |
28 |
L0 blue value |
29 |
L0 white value |
30 - 37 |
L1-L2 RGBW values |
38 |
Probe selection (for homing) |
39 |
Buzzer frequency |
40 |
Buzzer duration |
41 |
VE line area |
42 |
VE jog velocity |
43 |
VE jog length |
44 |
filament diameter |
Analog Input
# | Name |
---|---|
0 |
HBP measured temperature |
1 |
HBC measured temperature |
2 - 11 |
E0-E9 measured temperature |
12 - 21 |
F0-F9 speed |
22 - 25 |
S0-S3 pulse duration |
26 |
L0 red value |
27 |
L0 green value |
28 |
L0 blue value |
29 |
L0 white value |
30 - 37 |
L1-L2 RGBW values |
38 |
unused |
39 |
Buzzer frequency |
40 |
Buzzer duration |
41 |
VE line cross section |
42 |
VE line width |
43 |
VE line height |
44 |
VE filament diameter |
45 |
VE jog velocity |
46 |
VE jog length |
47 |
VE retract length |
48 |
VE retract velocity |
49 |
VE extrude scale |
Digital Output
# | Name |
---|---|
0 |
Probe enable |
1 |
Extruder enable |
2 |
Buzzer trigger |
12 |
VE jog trigger |
13 |
VE jog continuous |
14 |
VE jog direction |
Digital Input
# | Name |
---|---|
0 |
HBP temperature in range |
1 |
HBC temperature in range |
2 - 11 |
E0-E9 temperature in range |
HAL Remote Components
HBP, HBC and Extruders
Heated build platform, heated build chamber and extruders have the same
interface. The name of the remote components are fdm-hbp
, fdm-hbc
and fdm-e<n>
.
Example interface:
newcomp fdm-e0 timer=100 newpin fdm-e0 fdm-e0.temp.meas float in newpin fdm-e0 fdm-e0.temp.set float io newpin fdm-e0 fdm-e0.temp.standby float in newpin fdm-e0 fdm-e0.temp.limit.min float in newpin fdm-e0 fdm-e0.temp.limit.max float in newpin fdm-e0 fdm-e0.temp.in-range bit in newpin fdm-e0 fdm-e0.error bit in newpin fdm-e0 fdm-e0.active bit in ready fdm-e0
Fans
Fans and other PWM controlled devices have a very simple interface:
newcomp fdm-f0 timer=100 newpin fdm-f0 fdm-f0.set float io ready fdm-f0
Lights
newcomp fdm-l0 timer=100 newpin fdm-l0 fdm-l0.r float io newpin fdm-l0 fdm-l0.g float io newpin fdm-l0 fdm-l0.b float io newpin fdm-l0 fdm-l0.w float io ready fdm-l0