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.
Todoro'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:
- HMI / Display Layer
- Real-time CNC Motion Layer
- 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
[ESP32-P4] MIPI CAM Module (Core / MIPI / Base)
→ Handles CAM
[ESP32-P4] Base Board (Core / MIPI / Base)
→ BASE board for combining the Core board and the MIPI board, and the final assembled view
[grblHAL Board] RP2350 Board
→ Handles motion control, G-code execution, stepper/driver control
[grblHAL Board] WIZ850io (W5500) + microSD Module
→ Provides Wired Ethernet, file storage, G-code upload, remote monitoring
[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.
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.
📊 Overall Architecture
① 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
- Network File Transfer: Send and receive G-code files over wired LAN
- File Storage: Store job data on microSD card
- 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
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
- W5500 manages TCP sockets and network connections
- Files stored directly to SD card without RP2350 involvement
- RP2350 reads files and processes through grblHAL
- PIO generates precise motion signals
- 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.

