“The blog post details a new CNC controller I designed. I have probably designed 40-50 different controllers over the years, but this one has me really excited. My past controllers were generally application specific. My recent controllers have all been for the Grbl_ESP32 firmware. The I/O on the ESP32 is very flexible, but somewhat limited in pin count. There have always been enough pins to control the machine, but not enough to make a general purpose CNC controller that can target any machine.
Recently, support for I2S shift register chips has been added to the firmware. The shift register scheme supports high-speed (125 kHz step rate), jitter-free stepping with up to 32 output pins (28 on this board due to connector limitations). 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. This would allow you to pick the features you wanted and not have to pay for the ones you don’t need. It would also allow for some amount of future proofing. As new requirements are identified, new modules could be added”