---
title: "ESP32-P4 + RP2350(grblHAL) + W5500 CNC Controller"
url: "https://maker.wiznet.io/TheoIm/projects/esp32-p4-rp2350-w5500-cnc-controller/"
markdown_url: "https://maker.wiznet.io/TheoIm/projects/esp32-p4-rp2350-w5500-cnc-controller/md"
type: "UCC: User Created Content"
author: "TODORO"
author_url: "https://blog.naver.com/cimygy/224076279204?trackingCode=blog_bloghome_searchlist"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "TODORO"
original_url: "https://blog.naver.com/cimygy/224076279204?trackingCode=blog_bloghome_searchlist"
published: "2025-11-17"
language: "en"
hardware: ["WIZnet WIZ850io"]
likes: 0
views: 901
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ESP32-P4 + RP2350(grblHAL) + W5500 CNC Controller

> Todoro’s CNC uses ESP32-P4 for UI, RP2350 for motion, and W5500 for Ethernet+SD—simple, stable, and fully networked CNC control.

Original author: TODORO (source: https://blog.naver.com/cimygy/224076279204?trackingCode=blog_bloghome_searchlist)

## Components

- **WIZnet WIZ850io** x 1 ([docs](https://docs.wiznet.io/Product/ioModule/WIZ850io))

## Article

[**Todoro**](https://blog.naver.com/cimygy)**'s CNC system** combines ESP32-P4 for UI, RP2350 for motion control, and W5500 for networking—delivering a simple, stable, and fully networked CNC platform with clearly separated responsibilities.

## PROJECT OVERVIEW

This project comes from **Todoro**, a well-known Korean maker active on the Naver blog platform, recognized for detailed circuit design, PCB work, and high-quality CNC/embedded development.

His latest build combines **ESP32-P4, RP2350, and WIZnet W5500** into a next-generation CNC controller with three distinct functional layers:

1. **HMI / Display Layer**

2. **Real-time CNC Motion Layer**

3. **Network & File Management Layer**

Below is a complete breakdown of the system architecture.

---

## 🔷 Ultra-Simple System Overview — **How This CNC System Is Structured**

Todoro’s CNC platform uses **two different MCUs** and **one Ethernet engine**, each with a dedicated role:

**[ESP32-P4] ESP32-P4 Module **(**Core **/ MIPI / Base)
→ Handles **UI, touch display, web viewer, user interaction**

![](https://maker.wiznet.io/upload/ckeditor5/183849667%5F1763393003%2Epng)

**[ESP32-P4] MIPI CAM Module** (Core / **MIPI **/ Base)
→ Handles CAM

![](https://maker.wiznet.io/upload/ckeditor5/611469355%5F1763542231%2Epng)

**[ESP32-P4] Base Board** (Core / MIPI / **Base**)
→ BASE board for combining the Core board and the MIPI board, and the final assembled view

![](https://maker.wiznet.io/upload/ckeditor5/611469355%5F1763542207%2Epng)

![](https://maker.wiznet.io/upload/ckeditor5/183849667%5F1763393147%2Epng)

**[grblHAL Board] RP2350 Board**
→ Handles **motion control, G-code execution, stepper/driver control**

![](https://maker.wiznet.io/upload/ckeditor5/183849667%5F1763392986%2Epng)

**[grblHAL Board] WIZ850io (W5500) + microSD Module**
→ Provides **Wired Ethernet, file storage, G-code upload, remote monitoring**

![](https://maker.wiznet.io/upload/ckeditor5/183849667%5F1763392970%2Epng)

**[grblHAL Board] Breakout Board**
→ A 5-axis breakout board supporting PWM/0–10V spindle control, limit/coolant/door/switch inputs, user M-code outputs, and UART/I²C expansion for MPG and keypads.

![](https://maker.wiznet.io/upload/ckeditor5/611469355%5F1763542590%2Epng)

![](https://maker.wiznet.io/upload/ckeditor5/611469355%5F1763542514%2Epng)

This screen shows the web interface enabled by the expansion board using the **WIZ850io (W5500)** Ethernet module and a **Micro SD card module**.
With Ethernet connectivity, the device can host a full web dashboard where users can upload **G-code files**, store them on the T-Flash (microSD) card, and start machining directly from the network.

The interface allows real-time monitoring of machine status—from any browser, even remotely—making it easy to check parameters, temperatures, IO pins, and system messages right from a smartphone or PC.

![](https://maker.wiznet.io/upload/ckeditor5/611469355%5F1763542757%2Epng)

📊** Overall Architecture**

![](https://maker.wiznet.io/upload/ckeditor5/183849667%5F1763392733%2Epng)

---

## ① Project Purpose

The goal is to build a **modern, high-performance CNC controller** that is both maker-friendly and architecturally clean.

### Clear Role Distribution

- **RP2350 + grblHAL**: Real-time G-code processing and precise motion control

- **ESP32-P4**: Smooth, responsive UI environment

- **WIZnet W5500**: Reliable industrial-grade Ethernet without CPU overhead

### Three Essential Capabilities Enabled by W5500

1. **Network File Transfer**: Send and receive G-code files over wired LAN

2. **File Storage**: Store job data on microSD card

3. **Remote Monitoring**: Lightweight web interface for machine status

Because all **TCP/IP processing runs inside the W5500 hardware**, the RP2350 remains fully dedicated to motion control.

**In short**: W5500 transforms the RP2350-based CNC controller into a stable, network-ready platform.

### What is grblHAL? Understanding the Motion Control Brain

**grblHAL** is an advanced, open-source CNC motion controller firmware—a next-generation evolution of the original Grbl project that pioneered affordable CNC control.

#### What It Does

| Function | Description |
| --- | --- |
| **G-code Interpreter** | Reads standard CNC programming language (G-code) |
| **Motion Planning** | Calculates smooth, precise toolpath trajectories |
| **Real-Time Control** | Generates step/direction signals for stepper motors at microsecond precision |
| **Hardware Abstraction Layer (HAL)** | Supports multiple MCU platforms (RP2040, RP2350, STM32, ESP32, etc.) |

#### Why grblHAL for This Project?

**Traditional Grbl limitations**:

- Single-platform (Arduino/ATmega328)

- Limited expansion options

- Basic feature set

**grblHAL advantages**:

- **Multi-platform**: Runs on modern MCUs like RP2350

- **Modular architecture**: Easy to add Ethernet, SD card, displays

- **Industrial features**: RS274 NGC support, advanced kinematics, CAM integration

- **Active development**: Community-driven with regular updates

#### The RP2350 Advantage

Running **grblHAL **on **RP2350** provides:

✅ **Dual-core processing**: Motion control + peripheral management
✅ **PIO (Programmable I/O)**: Hardware-level step generation without CPU overhead
✅ **High clock speed**: 300MHz+ ensures smooth motion at high speeds
✅ **Expansion capability**: Enough resources for Ethernet (W5500) + SD card + more

**Result**: Industrial-grade CNC control at maker-friendly cost—grblHAL + RP2350 handles complex 3D toolpaths while W5500 manages network file transfer in parallel, with zero interference between systems.

---

## ② Communication Structure & Typical Workflow

### 🔄 How the System Operates

`![](https://maker.wiznet.io/upload/ckeditor5/183849667%5F1763392781%2Epng)`

### Process Flow

| Step | Component | Action |
| --- | --- | --- |
| **File Upload** | W5500 | Receives G-code over Ethernet, stores to SD |
| **Motion Execution** | RP2350 | Loads file, processes through **grblHAL** |
| **Local Monitoring** | ESP32-P4 | Displays real-time status on screen |
| **Remote Monitoring** | W5500 | Serves web interface for status checking |

Throughout the entire workflow:

- **ESP32-P4** handles UI interaction

- **RP2350** maintains motion timing and control**(with grblHAL)**

- **W5500** manages all networking tasks

This clean separation results in a **stable, responsive, and easily extensible** CNC controller.

---

## ③ Software Perspective: How It Works Inside RP2350

The RP2350 **never handles TCP/IP networking overhead**. Instead, it communicates with W5500 using simple **SPI register operations**, while W5500 internally manages all Ethernet activity.

### Efficient Data Flow

![](https://maker.wiznet.io/upload/ckeditor5/397665397%5F1763454333%2Epng)

1. **W5500 manages** TCP sockets and network connections

2. **Files stored directly** to SD card without RP2350 involvement

3. **RP2350 reads files** and processes through grblHAL

4. **PIO generates** precise motion signals

5. **Motion control remains stable** — no network processing burden

---

## ④ Expansion Potential: Future Possibilities

### 🏭 Industrial Protocol Support

- **MODBUS-TCP**: Widely used in industrial automation

- **EtherNet/IP**: Allen-Bradley ecosystem compatibility

- **OPC-UA**: Industry 4.0 standard communication

### 📊 Advanced Features

- Remote job management via SD card logging

- System diagnostics and telemetry

- Multi-machine coordination

### 🔧 Reusability Across Platforms

This architecture can be adapted for:

- **CNC machines**

- **Robotics systems**

- **3D printers**

- **Factory automation devices**

---

## Conclusion

Todoro's CNC controller demonstrates how **proper architecture** can create a system that is simultaneously **powerful, stable, and maintainable**. By assigning clear roles to each component—UI to ESP32-P4, motion to RP2350, and networking to W5500—the design achieves **professional-grade performance** while remaining accessible to makers.

This approach forms a **solid foundation** for anyone building network-enabled industrial control systems, whether for CNC, robotics, or automation applications.

---

Source: https://maker.wiznet.io/TheoIm/projects/esp32-p4-rp2350-w5500-cnc-controller/
