Wiznet makers

scott

Published May 15, 2026 ©

123 UCC

20 WCC

45 VAR

0 Contests

0 Followers

0 Following

Original Link

Lumox Firmware

Lumox Firmware

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

요약

LumoX는 ESP32와 WIZnet W5500을 결합해 Art-Net UDP 신호를 DMX512로 변환 출력하는 오픈소스 펌웨어입니다. W5500이 이더넷 물리 연결(MAC/PHY)을 전담하고, Wi-Fi와 단일 lwIP 스택으로 통합 운용되어 무대 환경에서 요구되는 이중화된 네트워크 안정성을 저비용 하드웨어로 구현합니다. 공연·전시·이벤트 조명 현장에서 기성 Art-Net 노드의 대안으로 주목할 만한 레퍼런스입니다.


개요

무대 조명 시스템에서 DMX512는 수십 년간 업계 표준 프로토콜로 자리잡아 왔습니다. 그러나 조명 컨트롤러와 픽스처 사이에 물리 케이블 대신 **네트워크(Art-Net)**를 끼워 넣는 순간, 새로운 문제가 생깁니다. Wi-Fi 기반 노드는 전파 간섭, 지연, 순간 단절에 취약하고, 이는 조명 플리커나 프레임 오동작으로 직결됩니다. 공연 중 조명이 오작동하는 것은 단순한 기술 오류가 아니라 현장 사고입니다.

LumoX는 이 문제를 ESP32와 W5500의 조합으로 접근합니다. W5500이 신뢰성 있는 유선 이더넷 인터페이스를 제공하고, 기존 Wi-Fi 연결과 동일한 lwIP 소켓 구조 위에서 통합 운용됩니다. 개발자는 네트워크 인터페이스 전환 로직을 별도로 작성할 필요 없이, 이더넷이 연결되면 자동으로 우선 사용되는 구조를 그대로 활용할 수 있습니다.

대상 사용자는 무대 조명 엔지니어, 미디어 아티스트, 인터랙티브 설치 제작자 등 Art-Net 기반 멀티 유니버스 리그를 구성해야 하는 기술 스태프입니다. PlatformIO 기반 빌드 환경과 브라우저 기반 설정 UI, OTA 업데이트를 제공해 현장 유지보수 부담도 낮췄습니다.


시스템 아키텍처

LumoX의 데이터 흐름은 네트워크 수신 → FreeRTOS 태스크 처리 → 시리얼 출력 3단계로 구성됩니다.

다중 노드 ArtSync 동기화 구조도 지원합니다. 컨트롤러가 각 노드에 ArtDMX 패킷을 전송한 뒤 OpSync를 브로드캐스트하면, 모든 노드가 shadow buffer에 보관하던 프레임을 동시에 원자적으로 출력합니다. 대형 리그에서 노드 간 프레임 출력 시점 차이로 발생하는 화면 찢김(tearing)을 방지하는 핵심 메커니즘입니다.



핵심 기술 특징

듀얼 인터페이스 통합

LumoX의 가장 큰 구조적 특징은 이더넷과 Wi-Fi를 단일 lwIP 스택으로 통합한다는 점입니다. Art-Net UDP 소켓 하나가 두 인터페이스를 동시에 처리하며, 이더넷 링크가 활성화되면 자동으로 우선 사용됩니다. 이더넷이 연결된 상태에서도 AP 모드 Wi-Fi는 유지되어 브라우저로 /config에 접근할 수 있습니다. 네트워크 인터페이스 전환에 별도의 소켓 재구성이 필요 없어 무선·유선 이중화를 코드 복잡도 증가 없이 구현합니다.

FreeRTOS 기반 플리커 하드닝

DMX 출력 안정성은 여러 계층의 방어 구조로 보호됩니다.

  • 전용 Art-Net RX 태스크 — Core 1, 우선순위 4로 독립 실행. HTTP/mDNS/DNS 처리와 완전히 분리되어 웹 트래픽이 패킷 수신 지연을 일으키지 않음
  • portMUX 스핀락 — DMX 버퍼 보호에 FreeRTOS 세마포어 대신 스핀락 사용. Wi-Fi RX 버스트 시 우선순위 역전(priority inversion)으로 인한 ≥5 ms 지연 방지
  • 퍼시스턴트 버퍼 — 네트워크 단절 후에도 마지막 유효값을 ~44 Hz로 계속 출력. 2초 침묵 후 LED 펄스로 상태 알림
  • 단일 송신자 잠금 — 기본 송신자 활성 중 다른 IP 출처의 패킷 차단. 기본 송신자 타임아웃 후 자동 전환

ArtSync 원자적 프레임 플립

멀티 유니버스 구성에서 각 노드는 shadow buffer에 프레임을 누적한 뒤, OpSync 수신 시 원자적 버퍼 교체로 동시 출력합니다. 노드 간 출력 시점 편차 없이 대규모 리그를 운용할 수 있는 근거입니다.

웹 UI + OTA

모든 설정은 브라우저 기반 웹 인터페이스로 처리됩니다. /config에서 Wi-Fi·이더넷·유니버스·디바이스명 설정, /health에서 Art-Net 수신 통계 및 DMX TX 상태 실시간 모니터링, /control에서 512채널 수동 오버라이드가 가능합니다. /update에서는 ElegantOTA로 브라우저 파일 업로드만으로 펌웨어를 갱신합니다. 현장에서 케이블이나 플래셔 없이 유지보수가 가능한 구조입니다.


W5500 적용 구조 — 물리 안정성의 확보

ETH.h + lwIP 통합 방식

LumoX에서 W5500ETH.begin(ETH_PHY_W5500, ...) 호출을 통해 arduino-esp32 v3.x의 ETH.h 드라이버로 초기화됩니다. 이 방식에서는 W5500 내장 TCP/IP 스택이 사용되지 않으며, 모든 IP/UDP 처리는 ESP32 내부의 lwIP가 담당합니다. W5500은 이더넷 MAC/PHY 계층 — 즉 물리적 프레임 송수신과 이더넷 연결 관리만 전담합니다.

구분역할처리 위치
IP/UDP 처리Art-Net 소켓, DHCP, mDNSESP32 lwIP
이더넷 프레임MAC/PHY 레이어W5500
Wi-Fi 프레임MAC/PHY 레이어ESP32 내장 Wi-Fi
소켓 통합단일 UDP 소켓으로 양 인터페이스 처리lwIP (공통)

SPI 연결은 VSPI(SPI3_HOST), 최대 20 MHz 클럭으로 구성됩니다. 인터럽트 핀(GPIO 34)은 기본적으로 폴링 모드(ETH_USE_IRQ=0)로 운용되어 안정성을 우선시합니다.

무대 환경에서 W5500의 의미

공연 현장의 네트워크 환경은 전파 간섭 밀도가 높습니다. 무선 마이크, 인터컴, 관객 스마트폰이 동시에 2.4 GHz/5 GHz 대역을 점유하는 상황에서 Wi-Fi 단독 Art-Net 노드는 구조적으로 취약합니다. W5500이 제공하는 유선 이더넷 인터페이스는 이 환경에서 전파 간섭과 무관한 물리적 신뢰성을 보장합니다. LumoX는 이더넷 연결이 확인되면 자동으로 이더넷을 우선 사용하며, Wi-Fi는 설정 접근용 보조 채널로 유지됩니다.


하드웨어 구성

W5500 SPI 배선

ESP32 GPIOW5500 핀설명
GPIO 5SCSSPI 칩 셀렉트 (Active LOW)
GPIO 18SCLKSPI 클럭 (20 MHz)
GPIO 19MISOSPI 마스터 입력
GPIO 23MOSISPI 마스터 출력
GPIO 34INT인터럽트 (기본: 폴링 모드)
GPIO 33RST하드웨어 리셋 (Active LOW)

DMX 출력 배선 (UART1 → MAX485 → XLR-5)


 

주의사항

  • DMX 체인의 마지막 픽스처에 120 Ω 종단저항을 A-B 핀 사이에 연결
  • MAX485는 5V 동작 권장 → 3.3V 네이티브 운용 시 MAX3485 또는 ISO3088 교체 권장
  • GPIO 34는 Input-only 핀 → IRQ 모드 사용 시 10 kΩ 풀업 저항 필요

비즈니스 가치 및 적용 시나리오

ESP32 + W5500 + MAX485 조합의 BOM 비용은 기성 Art-Net 노드 제품 대비 현저히 낮습니다. PlatformIO 기반 오픈소스 펌웨어이므로 커스터마이징 및 양산 적용도 자유롭습니다.

실제 적용 시나리오:

  • 공연장 멀티 유니버스 리그 — Stage-Left/Right/Truss 노드를 ArtSync로 동기화. 수백 개 픽스처를 프레임 단위 오차 없이 제어
  • 인터랙티브 전시 설치 — 갤러리·박물관 환경에서 Wi-Fi 간섭 없이 안정적인 조명 이펙트 구현. 브라우저 UI로 큐레이터가 직접 조작 가능
  • 클럽·이벤트 조명 — 이더넷 백본을 활용한 고신뢰 Art-Net 노드. 다수 테이블/스팟 조명을 단일 컨트롤러(Resolume 등)로 통합 제어
  • 소규모 방송 스튜디오 — 카메라 조명, 크로마키 조명 등을 소프트웨어 조명 컨트롤러와 연동. OTA로 무중단 펌웨어 업데이트

한계 및 개선 방향

현재 한계

  • 단일 유니버스 구조 — 노드 1개가 DMX 유니버스 1개(512채널)만 처리. 대형 리그에서는 노드 수량이 유니버스 수에 비례해 증가
  • IRQ 폴링 모드 — W5500 인터럽트 기본 비활성화(ETH_USE_IRQ=0). 폴링 방식으로 W5500 수신 이벤트 확인 → [추정] IRQ 모드 대비 소폭의 불필요한 CPU 사이클 소비
  • SPI 버스 전용화 — W5500이 VSPI 버스 단독 점유. 동일 버스에 다른 SPI 장치(디스플레이, 센서 등) 추가 시 버스 충돌 관리 필요
  • lwIP 소프트웨어 스택 경합 — Wi-Fi 트래픽 폭주 시 lwIP UDP 수신 처리 지연 가능성. portMUX 스핀락으로 완화하나 근본적인 소프트웨어 스택 경합은 잔존

개선 방향

  • 멀티유니버스 단일 노드 확장 — FreeRTOS 태스크 구조를 유지하면서 UART 포트 추가 할당 및 유니버스 라우팅 테이블을 도입하면 노드 수 감소 가능
  • W5500 IRQ 모드 전환 — GPIO 34 외부 풀업 + ETH_USE_IRQ=1 설정으로 폴링 오버헤드 제거. 이미 코드에 옵션이 준비되어 있어 하드웨어 수정만으로 전환 가능
  • SPI 클럭 튜닝 — 20 MHz에서 더 높은 클럭(W5500 지원 최대 80 MHz)으로의 상향 여지 검토. 단, ESP32 SPI 드라이버 안정성 확인 필요
  • RDM(Remote Device Management) 지원 — DMX512-A 확장 표준인 RDM을 추가하면 양방향 통신 및 픽스처 자동 인식 가능. 현장 셋업 시간 단축에 기여

FAQ

Q. 이더넷과 Wi-Fi를 동시에 사용할 수 있나요? 네. 두 인터페이스는 병렬로 활성화됩니다. 이더넷 링크가 확인되면 Art-Net 응답에 이더넷을 우선 사용하며, /config에서 "이더넷 연결 시 Wi-Fi 자동 비활성화" 옵션도 제공합니다. 이더넷이 연결된 상태에서도 AP 모드 Wi-Fi는 유지되어 설정 페이지 접근이 가능합니다.

Q. 여러 노드를 동기화하려면 어떻게 해야 하나요? 컨트롤러(QLC+, MagicQ 등)에서 ArtSync 기능을 활성화하면 됩니다. 컨트롤러가 각 노드에 ArtDMX를 전송한 뒤 OpSync 패킷을 브로드캐스트하면, 모든 LumoX 노드가 동시에 프레임을 출력합니다. LumoX 노드 쪽에는 별도 설정이 필요 없습니다.

Q. 비개발자도 직접 셋업할 수 있나요? PlatformIO 빌드 환경 설정까지는 개발 기초 지식이 필요합니다. 다만 플래싱 후에는 브라우저 기반 캡티브 포털로 Wi-Fi/이더넷 설정이 가능하고, 이후 유지보수는 OTA로 처리됩니다. 현장 기술자가 PC 없이 스마트폰만으로 기본 운용이 가능한 구조입니다.

Q. 기존 DMX 장비와 호환되나요? DMX512(ANSI E1.11) 표준을 준수하며, XLR-5 커넥터를 통해 기존 조명 픽스처, 디머, 스모그 머신 등과 직접 연결됩니다. 일부 저가 무빙헤드에서 발생하는 채널 1 오인식 문제는 /config의 "Pin Ch 1 ≥ 1" 옵션으로 해결할 수 있습니다.

Q. W5500 없이 Wi-Fi만으로도 동작하나요? 네. ETH.begin()이 실패해도 펌웨어는 Wi-Fi 모드로 정상 동작합니다. W5500을 연결하지 않으면 Wi-Fi 전용 Art-Net 노드로 활용할 수 있으며, 이후 하드웨어를 추가하면 이더넷 인터페이스가 자동으로 활성화됩니다.


Summary

LumoX is an open-source firmware that bridges Art-Net UDP and DMX512 output using an ESP32 paired with a WIZnet W5500. The W5500 handles the Ethernet physical layer (MAC/PHY), integrating with Wi-Fi over a unified lwIP stack to deliver the dual-interface network reliability that live performance environments demand — at a fraction of the cost of commercial Art-Net nodes. It is a compelling reference for anyone building wired-plus-wireless DMX infrastructure for stage, exhibition, or event lighting.


Overview

DMX512 has been the industry-standard lighting control protocol for decades. But the moment you replace physical cabling with a network layer — using Art-Net — a new class of problems appears. Wi-Fi-only nodes are vulnerable to radio interference, packet jitter, and momentary dropout. On a live stage, any of these translates directly into a lighting flicker or fixture misbehavior. That is not a software bug. It is a production incident.

LumoX addresses this with a hardware pairing of ESP32 and W5500. The W5500 provides a wired Ethernet interface that operates independently of the RF environment, while sharing the same lwIP socket structure as Wi-Fi. Developers do not need separate code paths for each interface — when Ethernet is connected, it is used automatically.

The target audience includes stage lighting engineers, media artists, interactive installation designers, and live event technical staff who need to build and maintain multi-universe Art-Net rigs reliably. A browser-based configuration UI, WebSocket live monitoring, and OTA firmware updates reduce on-site maintenance overhead to a minimum.


Architecture

LumoX data flows through three stages: network receive → FreeRTOS task processing → serial output.

LumoX also supports multi-node ArtSync. The controller sends ArtDMX packets to each node, then broadcasts an OpSync packet. Every node holds its received frame in a shadow buffer and performs an atomic flip to output simultaneously. This eliminates tearing — the visible misalignment between universes that occurs when nodes output at slightly different times on a large rig.


Technical Highlights

Dual-Interface Integration

The defining architectural feature of LumoX is that Ethernet and Wi-Fi share a single lwIP stack. A single Art-Net UDP socket handles both interfaces. When an Ethernet link is detected, it takes priority automatically. Even with Ethernet active, AP-mode Wi-Fi stays up so a browser can reach /config without unplugging the cable. This design achieves wired/wireless redundancy without increasing code complexity — no manual socket teardown or reconnect logic required.

FreeRTOS-Based Flicker Hardening

DMX output stability is protected by multiple layers of defensive design.

  • Dedicated Art-Net RX task — runs on Core 1 at priority 4, fully decoupled from HTTP, mDNS, and DNS. Web traffic cannot delay packet pickup.
  • portMUX spinlock — the DMX buffer is guarded with a spinlock instead of a FreeRTOS semaphore. This prevents priority-inversion stalls of ≥5 ms that occur during Wi-Fi RX bursts.
  • Persistent buffer — after a network dropout, the last valid frame continues streaming at ~44 Hz. A slow LED pulse signals silence after 2 seconds; fixtures hold their state.
  • Single-sender lock — while the primary sender is active, packets from other IP sources are rejected. If the primary times out, the next sender takes over automatically.

ArtSync Atomic Frame Flip

In multi-universe configurations, each node accumulates its frame in a shadow buffer. On OpSync receipt, an atomic buffer swap outputs all nodes simultaneously. This is the structural basis for running large rigs without inter-node timing drift.

Web UI + OTA

All configuration is handled through a browser interface. /config covers Wi-Fi, Ethernet, universe, and device name. /health shows live Art-Net reception stats and DMX TX health metrics. /control provides 512-channel manual override sliders for live debugging. /update serves ElegantOTA for browser-based firmware upload — no flashing tool or USB cable required on site.


Where W5500 Fits — Wired Reliability at the Physical Layer

ETH.h + lwIP Integration

In LumoX, the W5500 is initialized via ETH.begin(ETH_PHY_W5500, ...) using the ETH.h driver built into arduino-esp32 v3.x. In this configuration, W5500's onboard TCP/IP stack is not used. All IP and UDP processing is handled by the ESP32's lwIP. The W5500 is responsible exclusively for the Ethernet MAC/PHY layer — physical frame transmission and reception, and link management.

LayerResponsibilityHandled by
IP / UDP processingArt-Net socket, DHCP, mDNSESP32 lwIP
Ethernet framesMAC/PHY layerW5500
Wi-Fi framesMAC/PHY layerESP32 built-in Wi-Fi
Socket integrationSingle UDP socket across both interfaceslwIP (shared)

The SPI connection uses VSPI (SPI3_HOST) at up to 20 MHz. The interrupt pin (GPIO 34) runs in polling mode by default (ETH_USE_IRQ=0), prioritizing stability over interrupt-driven efficiency.

What W5500 Means for Live Performance

Performance venues are RF-dense environments. Wireless microphones, intercoms, and hundreds of audience smartphones compete across 2.4 GHz and 5 GHz simultaneously. A Wi-Fi-only Art-Net node is structurally exposed to this environment. The wired Ethernet interface provided by the W5500 delivers physical reliability that is immune to radio interference. LumoX automatically prefers Ethernet when the link is confirmed, keeping Wi-Fi as a secondary channel for configuration access only.


Hardware Setup

W5500 SPI Wiring

ESP32 GPIOW5500 PinNotes
GPIO 5SCSSPI chip select (active LOW)
GPIO 18SCLKSPI clock (20 MHz)
GPIO 19MISOSPI master in
GPIO 23MOSISPI master out
GPIO 34INTInterrupt (default: polling mode)
GPIO 33RSTHardware reset (active LOW)

DMX Output Wiring (UART1 → MAX485 → XLR-5)


 

Notes

  • Add a 120 Ω termination resistor between A and B at the last fixture in the chain.
  • MAX485 is rated for 5 V operation. For a 3.3 V native design, replace it with a MAX3485 or ISO3088.
  • GPIO 34 is input-only. If enabling IRQ mode, add a 10 kΩ pull-up resistor.

Business Value and Use Cases

The BOM cost of an ESP32 + W5500 + MAX485 assembly is substantially lower than commercial Art-Net node products. As open-source firmware on PlatformIO, LumoX is straightforward to customize or adapt for production runs.

Practical application scenarios:

  • Multi-universe stage rigs — Synchronize Stage-Left, Stage-Right, and Truss nodes via ArtSync. Hundreds of fixtures output frames with no inter-node timing error.
  • Interactive exhibition installations — Stable DMX lighting effects in gallery and museum environments without Wi-Fi interference. Curators can operate the rig directly from a browser.
  • Club and event lighting — High-reliability Art-Net nodes over an Ethernet backbone, with multiple spots and wash fixtures controlled from a single software controller such as Resolume.
  • Small broadcast studios — Integrate key lights, fill lights, and chroma key fixtures with a software lighting controller. OTA updates allow firmware maintenance without downtime.

Limitations and Future Improvements

Current Limitations

  • Single-universe architecture — Each node handles exactly one DMX universe (512 channels). Large rigs require one node per universe, scaling hardware linearly.
  • IRQ polling mode — W5500 interrupt is disabled by default (ETH_USE_IRQ=0). Polling adds a small but unnecessary CPU overhead compared to interrupt-driven operation. [Inferred]
  • Exclusive SPI bus — W5500 occupies the VSPI bus exclusively. Adding other SPI devices (displays, sensors) to the same bus requires careful bus arbitration.
  • lwIP software stack contention — Under heavy Wi-Fi traffic, lwIP UDP receive processing can be delayed. The portMUX spinlock mitigates the downstream effect, but the underlying software stack contention remains.

Future Improvements

  • Multi-universe single-node expansion — Assigning additional UART ports and introducing a universe routing table within the existing FreeRTOS task structure could reduce the number of nodes required for large rigs.
  • IRQ mode activation — Enabling ETH_USE_IRQ=1 with an external pull-up on GPIO 34 eliminates polling overhead. The option is already present in the codebase; only a hardware change is needed.
  • SPI clock tuning — The W5500 supports up to 80 MHz. Testing higher SPI clock rates may reduce per-frame transfer latency, subject to ESP32 SPI driver stability verification.
  • RDM (Remote Device Management) support — Adding DMX512-A bidirectional communication would enable automatic fixture discovery and addressing, significantly reducing setup time on complex rigs.

FAQ

Q. Can I use Ethernet and Wi-Fi at the same time? Yes. Both interfaces are active in parallel. When the Ethernet link is up, ArtPoll replies prefer Ethernet for reliability. You can also enable "Disable WiFi when ETH up" in /config if you want to reduce RF emissions during a show. Even with Ethernet active, AP-mode Wi-Fi stays open for browser access to /config.

Q. How do I synchronize multiple nodes? Enable ArtSync on your controller (QLC+, MagicQ, etc.). The controller sends ArtDMX to each node, then broadcasts an OpSync packet. All LumoX nodes flip their shadow buffer simultaneously. No additional configuration is required on the nodes themselves.

Q. Is this setup accessible to non-developers? Flashing the firmware requires basic PlatformIO familiarity. After that, first-time setup is handled through a captive portal in AP mode — connect a phone and configure Wi-Fi and Ethernet settings in a browser. Ongoing maintenance runs entirely via OTA. A technician with no laptop can operate the node from a smartphone.

Q. Is it compatible with existing DMX equipment? LumoX complies with the DMX512 standard (ANSI E1.11) and connects directly to fixtures, dimmers, fog machines, and other DMX devices via XLR-5. A known compatibility issue with some low-cost moving heads — where channel 1 at value 0 causes a false frame resync — can be resolved with the "Pin Ch 1 ≥ 1" toggle in /config.

Q. Does it work without a W5500, on Wi-Fi only? Yes. If ETH.begin() fails because no W5500 is connected, the firmware continues normally in Wi-Fi mode. You can start with a Wi-Fi-only setup and add the W5500 later; the Ethernet interface activates automatically once the hardware is present.


 

Documents
Comments Write