Press "Enter" to skip to content

Month: February 2019

The first prototype

On this page you will find a photo that shows the first prototype that I made.

Follow us for future updates on this! For now, with my work I hope that I have done as much pleasure as possible to the greatest number of people.

Have fun with your CNC!

Leave a Comment

The two boards

My solution consists of two boards, a motherboard and a daughtercard.

Actually, the motherboard itself is already enough to build most CNCs, and the addition of a daughtercard is not strictly needed, unless you want to add some functions.

The daughterboard is only necessary if you want to have additional I/O lines, LPT-like connections or use the embedded stepper drivers.

Leave a Comment

Main features

In addition to the basic features of Bart Dring’s project, I added two functions that I personally find very important for a safer use of CNCs:

  • A potentiometer for real-time MASTER override of the cutting feed speed (basic, but essential)
  • A potentiometer for real-time MASTER override of the spindle feed speed (very useful, but not essential)

The first one in particular is essential to safely verify that, when starting a new work, there are no catastrophic errors, which can range from simple damage and tool crashes to serious injuries to the user caused by stray parts that can hit like bullets. CNCs are dangerous machines, and errors ALWAYS have consequences; in the most unfortunate cases, the consequence may be the price of one’s LIFE!

Having a controller with hardware overrides was essential to me. Given the availability of analog inputs on the ESP32 chipset, I therefore set up the hardware and modified the source code to implement this function.

The latest change I made to the original project, in anticipation of future developments, was adding an expansion with 14 I/O digital lines and providing access to the I2C bus, in order to implement other future features such as adding MPGs, adding the vacuum pumps on/off function, etc.).

Leave a Comment

Main goals

  • Having fun while working on the project
  • Using low-cost hardware resources
  • Having a versatile board that can easily be adapted to the various types of self-built CNCs
  • Implementing basic adaptations to the logical levels and filtering the I/O signals
  • Providing direct connection to high-power servo controllers through various connectors
  • Providing good compatibility with the various already-existing servo controller boards of amateur CNCs that are still using MACH3 LPT-like ports
  • Embedding direct small stepper drivers like those normally used in 3D printers
  • Generating a square wave signal for the “charge-pump ENABLE” signal used by those driver boards (typically MACH3) that need it
  • Supporting dual-mode spindle speed control, both via PWM and via an analog signal for those spindles whose speed regulation is done by reference voltage (0-5V or 0-10V)
  • Providing wiring diagrams and documentation that can be accessible to other people who want to make new software/hardware variations on the board.
Leave a Comment

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.

Thi is the first prototype...

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.

Leave a Comment