According to Bart Dring, he’s designed 40 or 50 different controllers over the years, but most of them were application specific and tied to a specific function. His latest design diverts from those by being a universal, fully modular CNC controller that can function in nearly any machine, and allows users to equip the board with only the features needed.
For this build, Barton took advantage of I2S shift register chips, which have been supported in the Grbl_ESP32 firmware and enabled him to create his versatile controller. The firmware now supports a fast, jitter-free 125kHz step rate with up to 32 output pins, making it an excellent option for new board designs.
“To show off this new capability, I designed the universal controller I always wanted. A universal CNC controller covers a huge variety of options, so I quickly realized I would have to add some modularity to the design,” Barton writes in his project blog. “This would allow you to pick the features you wanted and not have to pay for the ones you don’t need.”
Barton’s design features the main motherboard with an integrated ESP32 module, 5V power supply, a series of headers, and other electronics to regulate voltages and more. The board supports up to six channels for stepper motors, which can either be connected to the main PCB using Pololu-style modules or tied to the board via screw-terminal connectors.
The controller also provides room for five I/O modules, which currently include a four-switch input, a relay output, an RS-485 Modbus, and a 0-10V interface for spindle speed control. What’s more, the I/O specs are completely open source (along with the rest of the controller), so users can develop custom modules to suit their requirements. A complete walkthrough of Barton’s Fully Modular CNC Controller can be found on his project blog for those who would like to recreate it.