Press "Enter" to skip to content

cnc4fun Posts

We are back!

In these months of pandemic and social distancing, we’ve been working hard to bring you some new projects! We will soon release a new CNC controller suitable for all of you who have professional needs.

The test phase is almost over!

We will soon publish all the key features of the new controller, but first let us tell you about a few features, such as the six-axes control at 350Khz per axis simultaneously!

Leave a Comment

Shop is open!

After weeks of hard work to design, test and improve our idea, we have started a (small) production batch. For this initial run, we have decided to bundle a complete kit that can be used to set up a new CNC machine, convert an old one, or can be used with a laser cutter.

In the ‘wonder’ box you will find:

  • ESP32 CNC BOARD V.1.1
  • I/O Expansion board
  • CNC Pendant V1.0
  • a bag of high-quality connectors
  • DB25 cable for the CNC Pendant

All the boards are assembled and tested, so in order to create your machine you will just need a CNC frame and your favorite stepper drivers (3x).

These are very versatile and reliable boards, suitable for every need. We hope you will appreciate them! To buy one just head to the “shop” section of our site.


Repairing and retrofitting an old CNC

This is an example of how we repaired and reconverted an old CNC that belongs to a friend using our CNC4FUN boards.

We will release the updated source codes within the end of 2019, and our little online shop will open at the beginning of 2020, so you’ll finally be able to purchase our board kits!

First laboratory tests with our boards and the new stepper motor drivers.
This is how the inner part of the CNC electronics box looks once our boards and the new drivers have been installed
The cardboard box containing the old pieces we dismantled: notice how much space has been freed up thanks to the new boards.
The electronics box is mounted again inside its CNC lodging.
Another picture of the inside of the electronics box, with the boards and drivers already installed and connected.
The CNC is ready for the function tests: now it’s as good as new!
We also added a feeler to find the Zero point, another of the items we designed and developed.
The manual controller (pendant). We fitted the board inside a special 3D-printed lodging and connected it to the CNC machine.
Leave a Comment

Web interface

In order to improve the user experience, besides the hardware I’ve also decided to make some changes to the original firmware. Here below you will find some screenshots of what I added or changed in order to make the system more user-friendly.

Although the CNC control web interface by Barton Dring was already well implemented, I thought it would be useful to add some control buttons and a new page dedicated to diagnostics.

Let’s start from the dashboard.

As you can see here below, I added two buttons to the standard version: RESET and UNLOCK, which are needed to initialize the GRBL “engine” through the web interface. If the system crashes, you will be able to restart the CNC without having to reconnect to it through the serial port.

I also pre-loaded some useful macros: PWM Spindle-test, Spindle ON, Spindle OFF, Work Home, Work Load. These are just a starting point, but you can still change them according to your needs.

PWM Spindle-Test executes a spindle test cycle, testing the PWM output from 0-100%-0 in 40 steps at 1-second intervals.

Work Home brings the CNC to the coordinates 0,0,0 of the piece that is being milled (G54).

Work Load positions the CNC to the most useful ‘parking’ coordinates to load or unload a new piece to be milled (the last macro must be set by the user to the needed coordinates).

In order to modify the macros, just open the Macro Editor window with the blue button located on the top left part of the screen (see below).

The files containing the macros need to be uploaded to the virtual disk of the ESP32 before being opened. Press the green button in the “ESP3D Settings” section to access the virtual disk.

In the “Probe” section of the dashboard I added the option “Retract after touch”. I decided to add this parameter because I find it quite annoying that the tool remains in contact with the measuring sensor when the measurement cycle has ended. This parameter allows to set the distance from the probe sensor at which the tool must return once the measurement is done.

Let’s talk about the GRBL configuring screen now.

Some pretty common GRBL configuration parameters could originally be configured only by recompiling the source codes, which is not an easy task and is also quite a nuisance for some people. In order to avoid this, I added parameters $50 to $59 to the GRBL configuring section. In this way, it will be easy for you to quickly customize your CNC.

  • $50 Use I2C I/O Expander, tells the CNC controller whether the I/O expansion board is present or not.
  • $51 Pendant Enable, enables the external pendant keyboard.
  • $52 Spindle off on 0 speed, switches off the spindle engine if the speed is set to zero (useful when you are working with a LASER).
  • $53, $54, $55, $56 set the CNC parking position when the DOOR button is pressed.
  • $57 PWM frequency, sets the PWM frequency of the spindle speed control (15/20 KHz can be okay to control a spindle in DC, but more often than not lasers for non-professional use can’t work at frequencies that are higher than 500/1000 Hz). This parameter allows you to set whatever frequency you need.
  • $58 Servo wake up time, sets the waiting time before the machine can move after it has been unlocked (time varies according to the reaction time of the user’s CNC actuators)
  • $59 Homing cycle, this parameter sets the bitmask that tells the controller on which axis the homing is done. In this way, you can exclude the axes that don’t mount the travel limit switches.

One new page I added is the I/O DEBUG section, which is useful to check the board inputs and outputs during the CNC installation.

This page is vital for those who are about to build their own CNC machine. In this way, when you are assembling the various parts you can check that all the connections and the positioning of the various travel limit switches are correct, thus drastically reducing accidental breakdowns due to wrongly-placed sensors or wrong wiring.

WARNING:  the test screen is independent from the controller and operates physically on the hardware PINs. 


The assembly is almost done!

Although the time at our disposal for this project is not much, we are doing our best to assemble the boards and prepare the internal firmware for you, so that we’ll soon be ready to deliver the first batch.

We will keep you updated on the project status. Stay tuned!


The boards are updated to 1.1 version!

Here’s a recap of the situation:

After the first tests, everything seems to be working fine.
As shown in the videos that I posted in the past few weeks, the controller has been functioning properly both in “MILL” and in “LASER” mode.
These tests have given me the chance to check the hardware and think about some improvements I could make to the boards that will be produced.
Here are the results:

Errors I fixed

  1. I corrected the position of 4 out of the 8 mounting holes both on the motherboard and on the expansion board (1mm offset on the X axis)
  2. I corrected the silk screen names “CHARGE PUMP” and “DIGITAL ENA” of the JP3 jumper (expansion board) because they had been swapped by mistake.
  3. I changed the power supply of IC2 (74HC14) to 5 Volts. It was connected at 3.3 Volts by mistake, but should be powered at 5V (otherwise the signals on the LPT would be mixed, some at 3.3V and some at 5V).
Motherboard version 1.1

Improvements and modifications

  1. I added dual footprint for the ESP32 module (900mils and 1000mils) to increase the possibility of using different boards available on the market.
  2. In order to improve safety, I eliminated the DOOR button and inserted a PANIC! button in its place.
  3. I added the DRIVER-ENABLE pin coming from the CPU-ESP32 in order to be able to switch the steppers on and off via software.
  4. I added a PANIC button to disable the stepper motors, the spindle PWM and the spindle ENABLE. For safety reasons, the PANIC button has a higher priority over the software control coming from the ESP-32 DRIVER-ENABLE pin.
  5. I added the direct drive of a small spindle (100/150W) working in PWM.
  6. I added a step-down DC/DC converter in order to unify the power souces (CPU-STEPPER-SPINDLE) if needed. By using a few jumpers, all the power supplies can also be unified in order to use a single power supply unit.
  7. The full kit (motherboard + expansion board) can now work with three different power supplies:
    a) 12Vcc for the motherboard
    b) 12-40V max for the stepper motors
    c) 12-48V max for the spindle working in PWM

The next step will be testing the latest PCB version (1.1). If no other errors are detected, I will then start thinking about producing a first lot of boards.

Stay tuned!

Expansion Card version 1.1
Leave a Comment

Test Motherboard + Expansion Card

Today we are testing the complete version of the project (motherboard + expansion card + stepper driver) on my toy CNC. As you can see from the photos, the steppers are directly controlled by the drivers mounted on the expansion card. It seems to work properly!

Leave a Comment