WebCNC

This project began as an experiment in generative art. Along the way it grew into a software project, a deep dive into machining, precision engineering, and mechatronics, and eventually into a DIY CNC machine.

Around 2017, I started building a pen plotter using Grbl_ESP32, a simple controller board, and materials from a local hardware store.

FluidNC

Grbl_ESP32 was a port of the original Grbl firmware (designed for AVR microcontrollers) to the more powerful ESP32 platform. It added features like WiFi and a WebUI while maintaining compatibility with the standard Grbl G-code protocol. FluidNC is the next-generation successor, developed by the same team. It represents a ground-up, object-oriented redesign of Grbl_ESP32. FluidNC offers significantly more options for building any CNC machine with a cheap ESP32 board.

Key Features of FluidNC:
  • ESP32-based motion control
  • WiFi connectivity for web-based control
  • Support for various CNC configurations
  • Regular updates and active community

Resources:

ESP32 Controller Board
ESP32 Controller Board

However, the interface to manage the machine is based on some 10+ year old code and needs an upgrade. In my opinion, it needed a complete rewrite.

So I started a new project to build a browser-based CNC interface (HMI - Human Machine Interface).

Dashboard (HMI)

The project aims to provide a modern, intuitive interface for controlling CNC machines running FluidNC.

plotter
Completed Penplotter Machine

Code: WebCNC on GitHub ↗

From PenPlotter to CNC

The penplotter works just fine, but it is quite limited. The frame is not very rigid and it cannot carry anything heavier than a pen.

So I started building a large, X/Y/Z CNC machine.

Now using an upgraded version of the controller (6-axis), DM-556 (stepper driver) and large servo motors

The electronics and software is largely functional.

gantry
Status: The gantry table is still very much a work in progress.