Wiznet makers

TheoIm

Published February 02, 2026 ©

60 UCC

27 WCC

7 VAR

0 Contests

0 Followers

0 Following

Original Link

alumina

A Networked Machine Control Case Study Using WIZnet W5500 and Embassy Async

COMPONENTS
PROJECT DESCRIPTION

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?

FeatureW5500
TCP/IP OffloadingHardware-level processing
MCU LoadVery low
Real-time CapabilityMore stable than Wi-Fi
Industrial EnvironmentStrong EMI/noise resistance
PoE SupportAvailable
MCU IndependenceSPI-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

 
rust
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:

FeatureBenefit
Hardware TCP/IPReduces MCU load
SPI interfaceMCU-agnostic
Deterministic latencySuitable for real-time control
Proven industrial useStable and reliable
PoE compatibilityEnables 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 아키텍처

rust
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/IPMCU 부하 감소
SPI 인터페이스MCU 종속성 없음
결정적 지연 시간실시간 제어에 적합
검증된 산업 적용 실적안정적이고 신뢰할 수 있음
PoE 호환성단일 케이블 배포 가능

Alumina에서 W5500은 전용 Ethernet NIC로 기능하여, MCU가 실시간 작업에 집중할 수 있게 한다.

Q5. ESP32 Wi-Fi를 그냥 사용하면 안 되는가?

Wi-Fi는 유용하지만, 많은 산업 시나리오에서는 다음이 문제이다:

  • 지연 시간이 예측하기 어렵다
  • EMI/노이즈 내성이 약하다
  • 결정적 타이밍을 보장하기 어렵다

Alumina는 신뢰성, 타이밍, 내구성이 편의보다 더 중요한 상황에서 W5500 Ethernet을 사용한다. Wi-Fi는 초기 설정이나 보조 통신의 옵션으로서는 유지된다.

Documents
Comments Write