Skip to content

RectaBot: A grblHAL-Based CNC Control System Using RP2350B and W5500 Ethernet

RectaBot: A grblHAL-Based CNC Control System Using RP2350B and W5500 Ethernet

Aimee0

Published August 28, 2026 · Updated October 13, 2026

Original author: rectabotOriginal source (new tab)

RectaBot: A grblHAL-Based CNC Control System Using RP2350B and W5500 Ethernet

Components

Hardware components

WIZnet parts

Project description

Overview

RectaBot: A grblHAL-Based CNC Control System Using RP2350B and W5500 Ethernet, Overview
https://rectabot.org/

RectaBot은 RP2350B MCU와 WIZnet W5500 Ethernet Controller를 기반으로 개발된 오픈소스 CNC Controller입니다. grblHAL Firmware를 사용하여 최대 5축의 Stepper Motor를 제어하며, Ethernet과 USB를 통해 PC와 연결할 수 있습니다.

W5500은 RP2350B와 SPI0 인터페이스로 연결되어 Ethernet 통신을 담당합니다. PC에서는 전용 오픈소스 소프트웨어인 RectaControl을 통해 G-code 전송, 모터 제어, 장비 상태 모니터링 등을 수행할 수 있습니다.

RectaBot의 주요 특징은 다음과 같습니다.

  • Motion Control: 최대 5축 Stepper Motor 제어
  • Ethernet Communication: W5500 기반 Ethernet 연결 지원
  • Spindle Control: PWM 및 0–10V Analog Speed 출력
  • Digital I/O: 10개의 Optocoupler 절연 입력 및 보조 출력
  • Open Source: Open Hardware 및 grblHAL 기반 Firmware
  • Control Software: RectaControl을 통한 G-code 실행, Jog, Homing 및 상태 모니터링

RectaBot은 CNC 제어 하드웨어와 PC 소프트웨어를 함께 제공하여, Ethernet 기반 CNC 제어 시스템을 구성할 수 있도록 설계되었습니다.

RectaBot: A grblHAL-Based CNC Control System Using RP2350B and W5500 Ethernet, Overview

RectaBot은 최대 5축 모터 제어, 10개의 절연 입력, Ethernet 통신 및 0–10V Spindle 제어를 지원합니다.

특히 Open Hardware와 grblHAL 기반 Open Firmware, 무료 오픈소스 제어 소프트웨어인 RectaControl을 함께 제공한다는 점이 특징입니다.

Technical Architecture

RectaBot: A grblHAL-Based CNC Control System Using RP2350B and W5500 Ethernet, Technical Architecture
https://rectabot.org/#architecture

RectaBot CNC Controller는 RP2350B MCU를 기반으로 모터 제어, Spindle 제어, 외부 입출력 및 Ethernet 통신을 통합한 CNC 제어 보드입니다.

RP2350B는 Dual-core ARM Cortex-M33(150MHz)을 사용하며, PIO를 통해 최대 5개의 Stepper Motor를 제어합니다. 또한 WIZnet W5500을 SPI0 인터페이스로 연결하여 Ethernet 통신을 지원합니다.

Hardware Configuration

ComponentDescription
MCURP2350B, Dual-core Cortex-M33 @ 150MHz
EthernetWIZnet W5500 (SPI0)
Motion ControlPIO 기반 최대 5축 Stepper Motor 제어
SpindlePWM 25kHz, 0–10V Analog Speed
Auxiliary OutputsMist, Flood, Vacuum
CommunicationEthernet, USB, RS422, RS485
Digital Inputs10개 절연 입력 (Limit, E-STOP, Probe 등)

Ethernet Communication

RectaControl은 TCP Telnet(port 23)을 통해 W5500 Ethernet에 연결하여 G-code 명령을 전송하고 CNC 장비의 상태 정보를 수신합니다.

Generated by OpenAI
Generated by OpenAI

이 구조에서 W5500은 Ethernet 통신을 담당하고, RP2350B는 grblHAL을 통해 실제 CNC 모션 제어를 수행합니다.

WIZnet Role in This Project

이 프로젝트에서 W5500은 RP2350B 기반 CNC Controller의 Ethernet 통신을 담당합니다.

RectaBot은 RP2350B의 SPI0 인터페이스를 통해 W5500을 연결하며, W5500을 MACRAW 모드로 사용하고 RP2350B에서 lwIP TCP/IP stack을 처리하는 구조입니다. 즉, W5500은 Ethernet Frame 송수신을 담당하고 TCP/IP 프로토콜은 MCU의 소프트웨어에서 처리합니다. (GitHub)

RectaControl 소스 코드에서 Ethernet 연결은 다음 파일에 구현되어 있습니다.

src/main/transport/ethernet.ts

이 파일은 Node.js의 net.Socket을 사용해 CNC Controller의 TCP port 23에 연결합니다.

constructor(
  private host: string,
  private port = 23
) {}

const sock = net.createConnection({
  host: this.host,
  port: this.port
})

또한 TCP 연결이 성립하더라도 기존 Telnet 세션 때문에 즉시 연결이 종료되는 상황을 처리하도록 설계되어 있습니다.

const SETTLE_MS = 500

연결 직후 일정 시간 동안 세션 상태를 확인하여 실제 사용 가능한 CNC 제어 연결인지 구별합니다. 이를 통해 기존 세션과의 충돌로 발생할 수 있는 재접속 문제를 줄입니다.

RectaControl의 controller.ts에서는 장비 상태 조회와 G-code 전송량을 관리합니다.

ParameterValueDescription
POLL_MS200msIdle 상태 조회
JOB_POLL_MS50msG-code 실행 중 상태 조회
RX_BUFFER127 bytesCharacter-counting 전송 제어 기준

이처럼 RectaBot은 W5500 MACRAW + lwIP 기반 Ethernet 통신을 사용하며, RectaControl은 이를 통해 CNC 장비에 명령을 전송하고 상태 정보를 수신합니다.

Developer Takeaways

RectaControl은 W5500 기반 CNC Controller와 PC Application을 연동하려는 개발자에게 다음과 같은 참고 자료를 제공합니다.

  • USB/Ethernet Transport 분리: src/main/transport/serial.ts와 ethernet.ts를 통해 서로 다른 통신 인터페이스를 공통 Controller 로직에 연결하는 구조를 참고할 수 있습니다.
  • TCP Session Management: Ethernet 연결 과정에서 Timeout, 조기 종료, 기존 Telnet 세션 충돌 등을 처리하는 방법을 확인할 수 있습니다.
  • G-code Streaming: controller.ts의 character-counting flow control을 통해 grblHAL RX Buffer를 고려한 명령 전송 구조를 살펴볼 수 있습니다.
  • CNC Application Integration: Electron 기반 UI에서 Jog, Homing, G-code 실행, 장비 상태 조회 및 Firmware Update를 통합하는 방식을 참고할 수 있습니다.

프로젝트는 GPL-3.0 라이선스로 공개되어 있으며, 소스 코드는 RectaControl GitHub에서 확인할 수 있습니다.

Related Maker Content and Application Value

WIZnet Maker Site에는 W5500을 CNC 제어 시스템에 적용한 다양한 사례가 소개되어 있습니다.

1. Voron-Documentation

grblHAL 기반 CNC 환경에서 WIZ850io(W5500 내장)를 사용한 Ethernet 연결 사례입니다. RectaBot과 유사하게 Ethernet을 통해 CNC Controller에 명령을 전달하며, RectaBot은 전용 Desktop Application인 RectaControl까지 함께 제공한다는 차이가 있습니다.

2. SLB-EXT Closed-Loop Controller

STM32F412와 W5500을 사용하는 grblHAL CNC Controller 사례입니다. RectaBot과 마찬가지로 W5500을 MACRAW 모드로 사용하고 MCU의 lwIP stack에서 TCP/IP를 처리하지만, 서로 다른 MCU 플랫폼을 사용한다는 차이가 있습니다.

3. Ooznest grblHAL ESP32-S3 Board

ESP32-S3 기반 CNC Controller에서 W5500 SPI Ethernet을 사용하는 사례입니다. Wi-Fi와 Ethernet을 함께 지원하는 구성이라는 점에서 RectaBot의 USB/Ethernet 연결 방식과 차이가 있습니다.

이 사례들을 비교하면 W5500이 다양한 MCU 플랫폼에서 CNC Controller의 Ethernet 인터페이스로 활용되는 방식을 살펴볼 수 있습니다. 특히 RectaBot은 W5500 MACRAW + lwIP 통신 구조와 전용 PC 제어 소프트웨어를 함께 제공하여, Ethernet 기반 CNC 제어 시스템을 구현하려는 개발자에게 참고 자료가 됩니다.

FAQ

Q1. RectaControl은 어떤 CNC Controller와 연결할 수 있나요?

RectaBot RP2350B Controller에 맞춰 개발되었으며 grblHAL 프로토콜을 사용합니다. 프로젝트 설명에서는 다른 grblHAL 보드와의 연동도 언급하고 있지만, 보드별 기능 호환성은 별도로 확인해야 합니다. 

Q2. W5500은 CNC 모터를 직접 제어하나요?

아닙니다. W5500은 Ethernet 통신을 담당하며, 실제 G-code 해석과 Motion Planning 및 STEP/DIR 신호 생성은 RP2350B의 grblHAL firmware가 수행합니다. 

Q3. RectaControl에서 USB 대신 Ethernet을 사용할 수 있나요?

가능합니다. RectaControl은 USB Virtual COM과 Ethernet TCP Telnet 연결을 지원하며, Ethernet 연결의 기본 포트는 23입니다. 

Verified Scope and Sources

RectaControl의 공개 자료에서는 W5500 Ethernet 연결, RP2350B 기반 CNC Controller, grblHAL 통신 및 Desktop Application의 구현 구조를 확인할 수 있습니다.

SourceLinkChecked Date
RectaBot Official WebsiteSource2026-10-12
RectaControl Source CodeGitHub2026-10-12
Firmware ConfiguratorSource2026-10-12

첨부된 RectaControl 소스에는 PC 측 Ethernet Transport와 G-code Streaming 로직이 포함되어 있습니다. 다만 MCU firmware의 실제 W5500 socket 초기화 코드, 세부 핀맵 및 장시간 네트워크 성능 측정 결과는 해당 자료만으로 독립 확인되지 않습니다.

RectaControl은 W5500 Ethernet을 CNC 장비의 실제 제어 경로에 적용한 오픈소스 사례입니다. RP2350B와 grblHAL이 모션 제어를 담당하고, W5500이 PC와의 유선 통신을 지원하며, RectaControl이 사용자 인터페이스와 G-code 전송을 수행합니다. 이 구조는 W5500 기반 CNC Controller뿐 아니라 다른 임베디드 장비에서 Ethernet 제어 소프트웨어를 설계할 때도 참고할 수 있습니다.

 

 

Comments

Similar projects you might like

Comments