Skip to content

Latest commit

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Driver capabilities at a glance:

Networking capable:

Processor ->iMXRT1062STM32F7xxSTM32H7xxESP32RP 2040RP 2040RP 2350RP 2350MSP432E401YTMC129x
BoardTeensy 4.xNucleo-F756ZGNucleo-H743ZIPi Pico WPi PicoPi Pico2 WPi Pico2LaunchPadLaunchPad
MCU speed (MHz)6002164502x240125125150150120120
Floating point unit (FPU)yesyesyesyesnonoyesyesyesyes
Non-volatile storageFlash1Flash1Flash1Flash1Flash1Flash1Flash1Flash1EEPROMEEPROM
Number of axesup to 5up to 8up to 83up to 6up to 6up to 6up to 6up to 6up to 6
Auto-squared/ganged axes17yesyesnonoyesyesyesyesnono
Variable spindleyesyesyesyesyesyesyesyesyesyes
Ramped spindlenononoyesnonononoyesyes
Inverted spindle PWMyesyesyesyesyesyesyesyesyesyes
RC Servo/ESC for spindle13yesyesyesyesyesyesyesyesyesyes
ModBus spindle14yes15nonoyesyesyesyesyesnono
Spindle at speedyesyesyesnonononononono
Spindle syncyes4yesyesnonononononono
Closed loop spindle RPMnononononononononono
Native USB streamingyesyesyesnoyesyesyesyesnono
Bluetooth streamingnononoyesyesyesyesyesnono
Telnet streaming (raw)ethernetethernetethernetwifiwifi/ethernet18ethernet18wifi/ethernet18ethernet18ethernetethernet
Websocket streamingethernetethernetethernetwifiwifi/ethernet18ethernet18wifi/ethernet18ethernet18ethernetethernet
HTTP daemon (server)ethernetethernetethernetwifiwifi/ethernet18ethernet18wifi/ethernet18ethernet18ethernetethernet
WebDAV to SD cardethernetethernetethernetwifiwifi/ethernet18ethernet18wifi/ethernet18ethernet18ethernetno (?)
FTP to SD cardethernetethernetethernetwifiwifi/ethernet18ethernet18wifi/ethernet18ethernet18ethernetno (?)
SD Card streamingyesyesyesyesyesyesyesyesnono
I2C Keypadyesyesyesyesyesyesyesyesnono
I2C IO Expandernononoyesyesyesyesyesnono
Digital Aux I/O3/416yesyesno0/8160/8160/8160/816nono
MPG stream inputTBCnonoyesyesyesyesyesyesyes
Manual tool change5yesyesyesyesyesyesyesyesyesyes
Automatic tool change6nononononononononono
Laser PPI mode7yesyesyesnonononononono
Trinamic support8TBC9TBC9TBC9TBC9TBC9TBC9TBC9TBC9TBC9TBC9
Runs as FreeRTOS tasknononoyesnonononooptionno
CNC BoosterPack supportyes10nonoyes10yes10yes10yes10yes1022
WebUI supportyes12yes12yes12yes12yes12yes12yes12yes12yes12no
Compiler/IDEArduinoSTMCubeIDESTMCubeIDEESP IDFVS CodeVS CodeVS CodeVS CodeCCSCCS
Web Builder support19yesyesyesyesyesyesyesyesnono

With floating point unit (FPU):

grblHAL does a lot of floating point math, a FPU will improve performance.

Processor ->STM32F7xxSTM32F4xxSTM32F3xxMSP432TMC123
BoardBTT SKR3 / WeAct MiniSTM32H743Blackpill / Nucleo-F411RE / Nucleo-F446REBlackPillLaunchPadLaunchPad
MCU speed (MHz)45084/100/180724880
Non-volatile storageFlash1Flash1Flash1Flash1EEPROM
Number of axes3up to 6up to 633
Variable spindleyesyesyesyesyes
Ramped spindlenonononoyes
Inverted spindle PWMnononoyesyes
RC Servo/ESC for spindle13yesyesyesyesyes
ModBus spindle14nononoyes15no
Spindle at speedyesyesnoyes3no
Spindle syncyes4yes4noyes4no
Closed loop spindle RPMnonononono
Native USB streamingyesyesyesnono
SD Card streamingyesyesTBCnoyes
I2C Keypadnonoyesyesyes
I2C IO Expandernonononono
Digital Aux I/Ono2/216nonono
MPG stream inputnononoyesyes
Manual tool change5yesyesyesyesyes
Automatic tool change6nononoplannedno
Laser PPI mode7yesyesnonoyes
Trinamic support8TBC9TBC9TBC9TBC9TBC9
CNC BoosterPack supportnonoyes1011
Compiler/IDESTMCubeIDESTMCubeIDESTMCubeIDECCSCCS
Web Builder support19yesyesNonono

Without floating point unit (FPU):

Processor ->RP 20404STM32F1xx11SAM3X8ESAMD21LPC1768/1769PSoC 5MSP430F5529
BoardPi PicoBluepillDueMKRZERORe-Arm / Bigtreetech SKR 1.3 / BTT SKR 1.4CY8CKIT-059LaunchPad
MCU speed (MHz)125728448100/1208025 (16 bit)
Non-volatile storageFlash1Flash1Flash1Flash1Flash1EEPROMno1
Number of axesup to 6up to 6up to 63up to 5323
Auto-squared/ganged axes17yesyesyesnoyesnono
Variable spindleyesyesyesyesyesyesyes
Ramped spindlenonononononono
Inverted spindle PWMyesyesnonononoyes
RC Servo/ESC for spindle13yesyesyesyesyesnoyes
ModBus spindle14yesnononononono
Spindle at speednonononononono
Spindle syncnonononononono
Closed loop spindle RPMnonononononono
Native USB streamingyesyesyesyesyesnono
SD Card streamingyesyesnoyesyesnono
I2C Keypadyesyesnoyesnoyesno
I2C IO Expanderyesnonoyesnonono
Digital Aux I/O0/816nononononono
MPG stream inputyesnononononono
Manual tool change5yesyesyesyesyesyesno
Automatic tool change6nonononononono
Laser PPI mode7nonononononono
Trinamic support8TBC9TBC9TBC9TBC9nonono
CNC BoosterPack supportyes10yes10noyes10nono1
Compiler/IDEVS CodeSTMCubeIDEArduinoArduinoMCUExpressoPSOC CreatorCCS
Web Builder support19yesyesyesnononono


1 Plugin for I2C EEPROM or FRAM available. FRAM is faster and can sustain more write cycles than EEPROM. FRAM is reccomended for the Odometer plugin.
2 Should be fairly easy to extend.
3 In combination with ramped spindle, signals end of ramp - not programmed speed obtained.
4 To be completed (TBC), work in good progress.
5 Protocol extension, requires compatible GCode sender such as ioSender.
6 grblHAL core has functionality and HAL driver entry points are provided, needs verification!
7 Driver specific M codes added for control. PPI = Pulses Per Inch.
8 Initial version ready for TMC2130 drivers, new CNC BoosterPack design for Texas Instrument LaunchPads ready and initial testing ok.
9 Implementation provided for TMC2130, with initial focus on I2C interfaces. Work in good progress - code published.
10 Via "motherboard" that accommodates CNC BoosterPack and processor board. Prototypes made, includes 8-bit I2C GPIO expander (not available/needed for STM32F1xx or IMXRT1062). "motherboards" has option for isolated level-shifted spindle PWM or DC output. BoosterPack has an onboard EEPROM and an I2C level shifter.
11 Requires 128KB of flash (STM32F103CB), some STM32F103C8 based Bluepill boards has that. Not recommended due to limited memories, use a STM32F303 or STM32F411 based Blackpill instead for a board with the same form factor as Red- and Bluepills.
12 Luc's ESP3D-WEBUI. Support both v2 and v3, with auto-detect feature.
13 Set $33=50 (PWM frequency), $34=5, $35=5 and $36=10 to generate a "standard" PWM signal: 20ms repetition rate, 1 - 2ms pulse length range.
14Supports a number of VFDs. Defaults to 19200 baud, implicit spindle at speed. Not supported for all alternative board map files.
15 Auto direction detect only.
16 Dependent on breakout board and plugin configuration.
17 Dependent on breakout board capability. ABC motors will be added from the first motor available and upward, auto-squared/ganged motors from the last and downward.
18 Ethernet is via SPI interface to an external WizNet W5100S or W5500 module. Not necessarily supported by all boards.
19 The Web Builder can be used to create the firmware without installing a toolchain.

Please note that some of the capabilities should be fairly easy to port from one driver to another, but be aware some are dependent on MCU peripheral availability and thus not possible, or hard, to port.

The fastest and most deterministic MCUs seems to be iMRXT1062, STM32H7xx and STM32F7, ESP32 is not bad but it is a bit unstable - maybe due to outstanding bugs in the ESP-IDF and the system architecture - program code is stored off chip in external serial flash.


Excel tables to markdown done with thisDaveJ web-based utility.


2025-02-16

About

Driver overview

Resources

Stars

44 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors