Skip to content

Latest commit

 

History

History
54 lines (49 loc) · 7.06 KB

ReadMe.md

File metadata and controls

54 lines (49 loc) · 7.06 KB

Driver capabilities at a glance:

MSP432 MSP432E401Y TMC123 TMC129x MSP430F5529 PSoC 5 ESP32 SAMD21 LPC1768/17691 STM32F1xx11 SAM3X8E IMXRT1062
Board LaunchPad LaunchPad LaunchPad LaunchPad LaunchPad CY8CKIT-059 MKRZERO Re-Arm Bluepill Due Teensy 4
MCU speed (MHz) 48 120 80 120 25 (16 bit) 80 2x240 48 100/120 72 84 600
Floating point unit yes yes yes yes no no yes no no no no yes
Non-volatile storage I2C EEPROM EEPROM EEPROM EEPROM I2C EEPROM EEPROM Flash/I2C EEPROM Flash/I2C EEPROM Flash/I2C EEPROM Flash/I2C EEPROM Flash Flash/I2C EEPROM
Number of axes 3 up to 6 3 up to 6 3 32 3 3 up to 5 up to 6 up to 6 up to 5
Variable spindle yes yes yes yes yes yes yes yes yes yes yes yes
Ramped spindle no yes yes yes no no yes no no no no no
Inverted spindle PWM yes yes yes yes yes no yes no no yes no no
RC Servo/ESC for spindle13 yes yes yes yes yes no yes yes yes yes yes ?
Spindle at speed yes no no no no no yes3 no no no no
Spindle sync yes4 no no no no no no no no no no no
Constant surface speed yes no no no no no no no no no no no
Closed loop spindle RPM yes4 no no no no no no no no no no no
Native USB streaming no no no no no no no yes yes? yes yes yes
Bluetooth streaming no no no no no no yes no no no no no
Telnet streaming (raw) no ethernet no ethernet no no wifi no no no no no
Websocket streaming no ethernet no ethernet no no wifi no no no no no
SD Card streaming no TBC no yes no no yes yes yes yes no TBC
I2C Keypad yes no yes no no yes yes yes no yes no TBC
I2C IO Expander no no no no no no yes yes no no no no
MPG stream input yes yes no yes no no no no no no no TBC
Manual tool change5 no yes no yes no no yes yes no no yes yes
Automatic tool change6 planned no no no no no no no no no no no
Laser PPI mode7 no no yes no no no no no no no no no
Trinamic support8 TBC9 TBC9 TBC9 TBC9 no no TBC9 TBC9 no TBC9 TBC9 TBC9
Runs as FreeRTOS task no yes no option no no yes no no no no no
CNC BoosterPack support 1 2 1 2 1 no yes10 yes10 no yes10 no yes10
WebUI support no no no no no no yes12 no no no no no
Compiler/IDE CCS CCS CCS CCS CCS PSOC Creator ESP IDF Arduino MCUExpresso STMCubeIDE Arduino Arduino


1 Not complete and untested, for someone else to finish? Compiles ok.
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.
6 Grbl 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), many STM32F1038B based Blue Pill boards has that too?
12 Luc's ESP3D-WEBUI, backend partially implemented. Work in progress.
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.

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 MSP432E401Y and TMC129x, 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.


2020-02-19