The project
In my job, I usually deal with electronic and mechanical designs (mostly FPGA and RF circuits), and this allows me to work both with electronic CADs and professional CNCs. Furthermore, over the past few years I built several CNCs (laser-plasma-mill-lathe) with my friends as a hobby, ranging from simple amateur items to semi-professional units.
In self-built CNCs, most people tend to use a software called MACH3, which allows you to transform any PC into a CNC controller by using the parallel port. Personally, I have often used MACH3 and only have positive things to say about it, but the problem is that nowadays parallel ports are no longer mounted on PCs, and the controller boards that replace the parallel port for the connection with MACH3 can significantly increase the cost of the system.
In the DIY world, GRBL (a CNC controller based on Arduino) has now taken over MACH3’s place, at least in its simplest forms. Of course, it can’t provide the complete functionality and the power of a controller such as MACH3, but in many cases it is more than sufficient for general purposes, because the post-processor’s CAD can take over the tasks that the controller can’t perform.
The problem is that, although GRBL is popular and well-functioning, it’s taken over all the resources available on the Arduino processor, thus marking the end of the development on that platform. The porting made by Bart Dring on the ESP32 platform by Espressif caught my attention exactly because it can solve this problem. With a dual-core 32-bit processor at 240MHz and many more resources than Arduino, this is a platform worth investing time on.
Anyway, please don’t think this ESP32 can be used exclusively with Arduino or only when a “Wifi/Bluetooth” connection is needed. This chipset is so versatile that it can also be used as a simple dual core microcontroller, as it offers a considerable computing power. Furthermore, Espressif has done a great job providing a development toolchain with very well-documented APIs.
As far as the CNC project based on the ESP32 chipset is concerned, Bart Dring (the author of the porting) also did an excellent job integrating all the related source codes into a single project, thus bringing out all the potential offered by the Espressif ESP32 chipset.
Given my passion for electronics and mechanics and considering the implications of Bart’s project, I immediately started testing its functionalities with a small prototype I made on a breadboard. I took my little ‘toy’ CNC which still worked with MACH3 and, after replacing the control board with the ESP32, I saw that everything worked properly from the very first time.
That’s why I decided to develop another small board which could easily be used by my friends. Having the most varied types of self-built CNCs, they always went crazy when using and connecting the various Arduino-based boards using the GRBL firmware, and this could be the end of their problems.
What follows is what I came up with during the Christmas holidays.