alumina
A Networked Machine Control Case Study Using WIZnet W5500 and Embassy Async
Alumina — A Network-First Platform for Industrial Machine Control
Alumina is a Rust-based platform that unifies machine-control firmware and user interfaces over a network. By combining Rust no_std firmware for MCUs, Rust egui / WASM user interfaces, and Ethernet networking via WIZnet W5500 into a single, coherent architecture, Alumina is designed for industrial and machine control scenarios where real-time performance and network stability are both required — including CNC, robotics, remote equipment control, and PoE-based motion controllers.
What Problem Does Alumina Solve
Limitations of Conventional Industrial Machine Control
Traditional MCU firmware is written primarily in C/C++, which leaves memory safety vulnerable. UI, firmware, and networking are typically developed in isolation from one another. While Ethernet connectivity may exist, the underlying architecture often lacks the asynchronous design and extensibility needed for modern systems. Features like remote control, security, and OTA updates tend to be treated as optional add-ons rather than foundational capabilities.
Alumina's Approach
Alumina brings UI (WASM/egui), firmware (no_std Rust), and networking (W5500) under a single design philosophy. Embassy async enables a modern asynchronous architecture on the MCU itself, and WIZnet W5500 provides the battle-tested Ethernet stability that industrial environments demand.
Why WIZnet W5500
Why W5500 Ethernet Instead of ESP32 Wi-Fi?
| Feature | W5500 |
|---|---|
| TCP/IP Offloading | Hardware-level processing |
| MCU Load | Very low |
| Real-time Capability | More stable than Wi-Fi |
| Industrial Environment | Strong EMI/noise resistance |
| PoE Support | Available |
| MCU Independence | SPI-based interface |
In Alumina, the W5500 functions as a dedicated Ethernet NIC. The MCU is free to focus entirely on motion control, sensor handling, and timing — the tasks where deterministic performance matters most.
Why Embassy Is Necessary
Limitations of the Conventional Approach (Blocking / Polling)
In a traditional blocking or polling loop, network wait states cause motor control delays. Timer, communication, and sensor logic all compete within a single execution loop, making the system difficult to extend or maintain.
Embassy Async Architecture
async fn net_task() { /* TCP / HTTP */ } async fn motion_task() { /* stepper / servo */ } async fn sensor_task() { /* ADC, encoder */ }Network, motion, and sensor tasks are cleanly separated. The combination of W5500 + embassy-net + MACRAW allows real-time control and network communication to operate concurrently. This architecture is well suited to any system that needs to run industrial control and networking simultaneously.
Reference Implementation (STM32F4 + W5500)
The current example uses an STM32F4 paired with a W5500 over SPI at 3 MHz, implementing a TCP listener on port 80. A physical button triggers a network message, which in turn controls an LED — validating the path between physical events and network events.
The architecture positions the MCU as the server. A browser, desktop UI, or PC acts as the client. The equipment itself connects directly to the network, with no intermediary required.
Where Can Alumina Be Used
Network-Based CNC / Motion Controllers
Applicable to milling machines, routers, laser cutters, and plasma cutters. G-code is delivered over the network and executed by the MCU. Multi-MCU synchronization in the style of Klipper is also feasible, enabling PoE Ethernet CNC controllers.
Remote Industrial Equipment Control and Monitoring
Supports remote status checks and browser-based UI for factory equipment. Alumina serves as a lighter alternative to traditional installed SCADA systems.
Distributed Motion Systems
Multiple MCUs connected over Ethernet can be synchronized from a central UI. Precise timing guarantees make this suitable for robotics, automation lines, and AGVs.
Security-Critical Infrastructure Control
Alumina supports encrypted communication, key exchange, and network-based access control — appropriate for mission-critical equipment.
Embedded Web UI + Equipment
The MCU can serve as an HTTP server, hosting SD card file browsing and equipment configuration UIs directly. No dedicated setup PC or software is needed.
PoE-Based Smart Controllers
Power and network delivered over a single cable. Remote sensors and actuators can be managed for factory and building automation scenarios.
Architecture Overview
[ Browser / Desktop UI ]
|
(HTTP / TCP / WASM)
|
[ WIZnet W5500 Ethernet ]
|
SPI
|
[ MCU (Rust no_std + Embassy) ]
|
[ Motors / Sensors / IO ]How Alumina Is Positioned
Alumina is not a simple CNC firmware, nor a basic Rust demo, nor just another W5500 example. It is a network-first industrial machine control platform — built around the principle that networking should be a foundational layer, not an afterthought.
Q1. What is the Alumina project?
Alumina is a Rust-based platform that unifies machine-control firmware and user interfaces over a network.
It combines:
Rust no_std firmware for MCUs
Rust egui / WASM user interfaces
Ethernet and Wi-Fi networking (notably WIZnet W5500)
into a single, coherent system for industrial and machine control.
Q2. Is Alumina just a CNC controller?
No. Alumina is not limited to CNC.
While CNC (router, mill, laser, plasma) is a major use case, Alumina is designed as a general-purpose networked machine-control platform, supporting:
Motion control
Sensors and actuators
Industrial automation
Secure remote operation
Q3. What problem does Alumina solve?
Traditional machine control systems suffer from:
Firmware written in C/C++ with memory-safety risks
UI, networking, and firmware developed independently
Poor support for secure remote control
Tight coupling between timing-critical code and networking logic
Alumina solves this by:
Using Rust end-to-end (UI + firmware)
Separating concerns via async tasks
Treating networking as a first-class feature, not an add-on
Q4. Why does Alumina use WIZnet W5500?
WIZnet W5500 provides industrial-grade Ethernet with hardware TCP/IP offload.
Key reasons:
| Feature | Benefit |
|---|---|
| Hardware TCP/IP | Reduces MCU load |
| SPI interface | MCU-agnostic |
| Deterministic latency | Suitable for real-time control |
| Proven industrial use | Stable and reliable |
| PoE compatibility | Enables single-cable deployments |
👉 In Alumina, W5500 acts like a dedicated Ethernet NIC, allowing the MCU to focus on real-time tasks.
Q5. Why not just use ESP32 Wi-Fi?
Wi-Fi is useful, but for many industrial scenarios:
Latency is less predictable
EMI/noise resistance is weaker
Deterministic timing is harder to guarantee
Alumina uses W5500 Ethernet where reliability, timing, and robustness matter more than convenience.
Wi-Fi remains an option for setup or secondary communication.
Alumina — 네트워크 중심의 산업용 기계 제어 플랫폼
Alumina는 Rust 기반 플랫폼으로, 기계 제어 펌웨어와 사용자 인터페이스를 네트워크를 통해 하나로 통합한다. Rust no_std MCU 펌웨어, Rust egui / WASM 사용자 인터페이스, WIZnet W5500을 통한 Ethernet 네트워킹을 단일 아키텍처로 결합하여, 실시간 퍼포던스와 네트워크 안정성이 동시에 필요한 산업·기계 제어 시나리오에 적합하다. CNC, 로봇, 원격 장비 제어, PoE 기반 모션 컨트롤러 등이 주요 적용 영역이다.
Alumina는 어떤 문제를 해결하나
기존 산업·기계 제어의 한계
기존 MCU 펌웨어는 주로 C/C++로 작성되어 메모리 안전성이 취약하다. UI, 펌웨어, 네트워킹은 서로 분리된 상태로 개발되는 것이 일반적이다. Ethernet 연결은 존재하더라도 현대적인 비동기 설계와 확장성이 부족한 경우가 많다. 원격 제어, 보안, OTA 업데이트 등의 기능은 기본이 아닌 추가 기능으로 취급된다.
Alumina의 접근
Alumina는 UI(WASM/egui), 펌웨어(no_std Rust), 네트워킹(W5500)을 하나의 설계 철학 하에 통합한다. Embassy async는 MCU 자체에서 현대적인 비동기 아키텍처를 가능하게 하고, WIZnet W5500은 산업 환경이 요구하는 검증된 Ethernet 안정성을 제공한다.
WIZnet W5500이 쓰인 이유
ESP32 Wi-Fi가 아닌 W5500 Ethernet인가?
| 항목 | W5500 |
|---|---|
| TCP/IP 오프로딩 | 하드웨어 수준의 처리 |
| MCU 부하 | 매우 낮음 |
| 실시간성 | Wi-Fi 대비 안정적 |
| 산업 환경 | EMI/노이즈에 강한 내성 |
| PoE 지원 | 가능 |
| MCU 독립성 | SPI 기반 인터페이스 |
Alumina에서 W5500은 전용 Ethernet NIC로 기능한다. MCU는 모션 제어, 센서 처리, 타이밍 등 결정적 퍼포던스가 가장 중요한 작업에 완전히 집중할 수 있다.
Embassy가 필요한 이유
기존 방식의 한계 (Blocking / Polling)
기존의 블로킹 또는 폴링 루프에서는 네트워크 대기 중 모터 제어가 지연된다. 타이머, 통신, 센서 로직이 단일 실행 루프 내에서 경쟁하여, 시스템을 확장하거나 유지하기 어렵다.
Embassy Async 아키텍처
async fn net_task() { /* TCP / HTTP */ } async fn motion_task() { /* stepper / servo */ } async fn sensor_task() { /* ADC, encoder */ }네트워크, 모션, 센서 태스크가 깔끔하게 분리된다. W5500 + embassy-net + MACRAW 조합으로 실시간 제어와 네트워크 통신이 동시에 운용된다. 이 아키텍처는 산업 제어와 네트워킹을 동시에 필요로 하는 모든 시스템에 잘 맞는다.
참고 구현 (STM32F4 + W5500)
현재 예제는 STM32F4와 W5500을 SPI (3 MHz)로 연결하여, port 80에서 TCP 리스너를 구현한다. 물리적 버튼 입력이 네트워크 메시지를 트리거하고, 이를 통해 LED를 제어하는 구조로 물리 이벤트와 네트워크 이벤트 간의 경로를 검증한다.
이 아키텍처에서 MCU는 서버 역할을 맡는다. 브라우저, 데스크탑 UI, PC가 클라이언트로 접속하며, 장비 자체가 중간자 없이 네트워크에 직접 연결된다.
어디에 쓸 수 있는가
네트워크 기반 CNC / 모션 컨트롤러
밀링 머신, 라우터, 레이저 커터, 플라즈마 커터에 적용 가능하다. G-code를 네트워크로 전달하여 MCU가 실행하며, Klipper 스타일의 다중 MCU 동기화도 가능하다. PoE Ethernet CNC 컨트롤러로 활용할 수 있다.
원격 산업 장비 제어 및 모니터링
공장 장비의 원격 상태 확인과 브라우저 기반 UI를 지원한다. 기존 설치형 SCADA 시스템의 경량한 대안으로 적합하다.
분산형 모션 시스템
여러 MCU가 Ethernet으로 연결되어 중앙 UI에서 동기화 제어하는 구조를 지원한다. 정확한 타이밍 보장이 가능하여 로봇, 자동화 라인, AGV에 적합하다.
보안이 중요한 인프라 제어
암호화 통신, 키 교환, 네트워크 기반 접근 제어를 지원한다. 미션 크리티컬 장비에 적합하다.
임베디드 Web UI + 장비
MCU가 HTTP 서버 역할을 맡아, SD 카드 파일 브라우징과 장비 설정 UI를 직접 호스팅할 수 있다. 전용 설정 PC나 소프트웨어가 필요 없다.
PoE 기반 스마트 컨트롤러
전원과 네트워크를 단일 케이블로 공급하는 구조를 지원한다. 원격 센서와 액추에이터를 통한 공장·빌딩 자동화에 적합하다.
아키텍처 개요
[ Browser / Desktop UI ]
|
(HTTP / TCP / WASM)
|
[ WIZnet W5500 Ethernet ]
|
SPI
|
[ MCU (Rust no_std + Embassy) ]
|
[ Motors / Sensors / IO ]이 프로젝트의 포지션
Alumina는 단순한 CNC 펌웨어가 아니고, 기본적인 Rust 데모도 아니며, 평범한 W5500 예제에도 해당하지 않는다. 네트워킹을 기본 레이어로, 이후에 추가할 것이 아닌 것으로 두는 원칙 위에 세워진 네트워크 중심의 산업용 기계 제어 플랫폼이다.
Q&A
Q1. Alumina 프로젝트는 무엇인가?
Alumina는 기계 제어 펌웨어와 사용자 인터페이스를 네트워크를 통해 하나로 통합한 Rust 기반 플랫폼이다. 다음을 결합한 것이다:
- Rust no_std MCU 펌웨어
- Rust egui / WASM 사용자 인터페이스
- Ethernet 및 Wi-Fi 네트워킹 (특히 WIZnet W5500)
이를 통해 산업·기계 제어를 위한 단일 통합 시스템이 된다.
Q2. Alumina는 CNC 컨트롤러뿐인가?
아니다. Alumina는 CNC에만 제한되지 않는다.
CNC (라우터, 밀링 머신, 레이저, 플라즈마)는 주요 적용 사례이지만, Alumina는 범용 네트워크 기반 기계 제어 플랫폼으로 설계되었다. 지원하는 영역은 다음과 같다:
- 모션 제어
- 센서와 액추에이터
- 산업 자동화
- 보안 원격 운영
Q3. Alumina는 어떤 문제를 해결하나?
기존 기계 제어 시스템은 다음과 같은 문제를 가진다:
- 메모리 안전성 취약점이 있는 C/C++ 기반 펌웨어
- 독립적으로 개발된 UI, 네트워킹, 펌웨어
- 보안 원격 제어에 대한 부족한 지원
- 타이밍 크리티컬 코드와 네트워킹 로직의 강한 결합
Alumina는 다음과 같이 이를 해결한다:
- UI + 펌웨어 전체에서 Rust 사용
- async 태스크를 통한 관심사 분리
- 네트워킹을 추가 기능이 아닌 제1등 기능으로 취급
Q4. Alumina는 왜 WIZnet W5500을 사용하나?
WIZnet W5500은 하드웨어 TCP/IP 오프로드를 가진 산업 등급의 Ethernet을 제공한다.
주요 이유는 다음과 같다:
| 항목 | 장점 |
|---|---|
| 하드웨어 TCP/IP | MCU 부하 감소 |
| SPI 인터페이스 | MCU 종속성 없음 |
| 결정적 지연 시간 | 실시간 제어에 적합 |
| 검증된 산업 적용 실적 | 안정적이고 신뢰할 수 있음 |
| PoE 호환성 | 단일 케이블 배포 가능 |
Alumina에서 W5500은 전용 Ethernet NIC로 기능하여, MCU가 실시간 작업에 집중할 수 있게 한다.
Q5. ESP32 Wi-Fi를 그냥 사용하면 안 되는가?
Wi-Fi는 유용하지만, 많은 산업 시나리오에서는 다음이 문제이다:
- 지연 시간이 예측하기 어렵다
- EMI/노이즈 내성이 약하다
- 결정적 타이밍을 보장하기 어렵다
Alumina는 신뢰성, 타이밍, 내구성이 편의보다 더 중요한 상황에서 W5500 Ethernet을 사용한다. Wi-Fi는 초기 설정이나 보조 통신의 옵션으로서는 유지된다.
