Welcome to Tom’s Robotics
The GRBL32 family of CNC/Robotics Controllers is a derivative work of an internal project from my company, which specializes in test equipment and test automation. I was using professional motion controllers (Galil) for one particular project where controlling more than a dozen axes of motion was needed. To reduce cost, I investigated other possibilities including Arduino based hardware running AccelStepper and GRBL solutions. Both solutions worked but were severely limited by the hardware (I feel the need… for speed). I tried some ports to better hardware such as the Arduino DUE, but ultimately settled on the STM32 F1 and F4 controllers. In the end, the dual interrupt design of GRBL won out from the requirement of precise coordinated motion of multiple axes as well as a high step rate of up to 500+KHz; and a fork-n-port of GRBL 1.1f became GRBL32 (perhaps a boring name). Similar to GRBL, GRBL32 is open-source; the repository is on github.
At this time (April 2019), the family has three main components:
- F13: A 3-axis CNC Controller based on the STM32F103C8T6 in module form, aka “Bluepill”. Designed as an upgrade to existing GRBL installations, providing higher resolution for PWM control (Spindle/Laser), smoother motion, and a fast step rate of 250KHz for each axis while under 3-axis coordinated motion.
- F16: A 6-axis CNC Controller based on the STM32F103C8T6 in module form. Designed for GRBL systems upgrading to more than 3 axes, featuring a max step rate of 150KHz for each axis while under 6-axis coordinated motion.
- F46: A 6-axis CNC/Robotics Controller based on the STM32F407VET6. With a max step rate of 550KHz for each axis while under 6-axis coordinated motion. With additional features include multiple additional digital IOs and analog (PWM) controls, the F46’s design is well suited for systems with complex motion requirements. The modular design of the F46 lends well with larger systems with longer cable runs as “ethernet” cables and connectors are used for interconnects between modules.
|Clock||72 MHz||72 MHz||168 MHz|
|Overclock Edition||96 MHz||96 MHz||240 MHz|
|Max Step Rate||250 KHz||150 KHz||550 KHz|
|Digital Outputs (M62/M63)||4||1||8|
|Digital Inputs (M66)||0||0||8|
|Analog (PWM) Outputs (M67)||0||0||8|
|Custom Acceleration Scaling (M100)||Y||Y||Y|
|Separate Limit Pins||N||N||Y|
|On-board USB-Serial (CH340)||Y||Y||Y|
|Connection for WiFi Module (ESP-01)||N||Y||Y|
|Connection for Raspberry Pi Zero W||N||Y||Y|
|Comm Baud Rate||921600||921600||921600|