grblHAL's HAL interface is based on function pointers that may be used to add functionality without any need to change the core grbl code. They may also be changed on the fly to redirect calls, eg. the SD-card interface utilizes this to temporarily redirect input from the serial stream to the SD card.
NOTE: A plugin needs to be supported by the processor specific driver - as a minimum a initialization call has to be made.
-
EEPROM - for non-volatile storage of settings/data on an external EEPROM or FRAM.
-
Encoder - for adjusting overrides1. Support for jogging is planned.
-
Keypad - for I2C based keypad1. Support for jogging etc. This is an example of an implementation.
-
Networking - for telnet or websocket communication2.
-
Odometer - for logging of distances travelled and machining time. NOTE: For review.
-
Plasma/THC - for plasma machines1. NOTE: Under development, testers wanted.
-
SD card - for executing gcode stored on SD card.
-
Spindle - for spindles controlled via MODBUS. NOTE: Not yet verified, testers wanted.
-
Trinamic - for Trinamic TMC2130 stepper drivers controlled via SPI or I2C1.
-
Laser/PPI - for laser machines. NOTE: Under development, testers wanted.
-
Laser/Coolant - for laser machines. NOTE: Under development, testers wanted.
1 Plugin has $-settings, adding or removing it may cause settings for other plugins to be reset to default values.
2 Driver support code has $-settings, adding or removing this may cause settings for other plugins to be reset to default values.
2020-10-18