DMXion_4Port_Node
A device that converts network signals from a lighting console into physical DMX cable signals.
Building a $2,000 DMX Node for $100 — DMXion_4Port_Node
Summary
"An open-source Art-Net/sACN DMX node built on RP2350 + WIZnet W5500, replicating the grandMA3 onPC 4Port Node 4k — with 4 DMX outputs, PoE, UPS, Wi-Fi module, and an onboard display."
The grandMA3 onPC 4Port Node 4k is a DMX network node used in professional stage lighting. It receives Art-Net or sACN packets and outputs DMX signals across up to four universes. Retail price: $2,000. DMXion_4Port_Node is an open-source project that achieves the same functionality for around $100.
The maker had hands-on experience with a real grandMA3 node at school. Frustrated by the limitations of a Raspberry Pi + USB DMX dongle setup — one universe, complex configuration — the thought "I could build this cheaper myself" became the starting point.
This project passed the review process for Hack Club Blueprint, a hardware grant program for young makers, and received $272.39 in production funding. The PCB design is complete; fabrication has not yet started.
Key Concepts
- What is Art-Net? A protocol that carries DMX512 over Ethernet UDP. A lighting console sends Art-Net packets over the network, and a DMX node receives them and converts them into physical DMX cable signals. sACN (E1.31) serves the same purpose under a different standard.
- What is a DMX node? A converter between a lighting console and actual lighting fixtures. It takes Art-Net/sACN signals arriving over Ethernet and translates them into RS-485-based DMX512 signals for the fixtures.
System Architecture
[Lighting Console / GrandMA3 onPC]
Art-Net UDP / sACN (Universe 0–3)
│
│ Ethernet (EtherCON)
▼
[DMXion_4Port_Node]
RP2350B + WIZnet W5500
│
├── Core0: Art-Net parsing (artnet.parse())
└── Core1: DMX output engine (DmxOutput × 4, ~40Hz)
│
│ UART × 4 → MAX3485 RS-485 transceivers
▼
[DMX Fixtures] (lights, dimmers, moving heads, etc.)
Universe 0 / 1 / 2 / 3
| Component | Details |
|---|---|
| MCU | RP2350B (Cortex-M33 dual-core, 520KB SRAM) |
| Ethernet | WIZnet W5500 (SPI1, GPIO28-31) |
| DMX output | 4 ports, MAX3485 RS-485 transceivers |
| Connectors | Neutrik EtherCON (RJ45), Neutrik XLR-5 × 4, XLR-3 × 4 |
| Status indicators | SK6805 addressable RGB LEDs (Neutrik halo rings) |
| Display | 2-inch 240×320 ST7789 LCD + rotary encoder |
| UPS | Li-Po 3.7V 2000mAh + Nordic nPM1300 PMIC |
| PoE | SI3402-B (IEEE 802.3af) |
| Wi-Fi | ESP8684 module (separate PCB) — README notes wireless operation is possible when used with the battery |
| PCB | 3 boards (main / display / Wi-Fi module), 100×72mm 4-layer |
| Total BOM cost | ~$269 (for 2 units, including shipping) |
RP2350 Dual-Core Architecture
The core design decision is separating Art-Net reception and DMX output across two independent cores.
// Core0: Art-Net reception and buffer update
void loop() {
artnet.parse(); // receive Art-Net packet → update dmxBuffer[i]
}
// Core1: DMX output engine (runs independently)
void loop1() {
for (int i = 0; i < 4; i++) {
dmxOut[i].write(dmxBuffer[i], 512);
}
delay(25); // maintain ~40Hz
}
Even if Core0 blocks on network reception, Core1 continues outputting DMX uninterrupted. Network packet delays on a live show floor won't stall the DMX output.
DMX output uses the RP2350's PIO (Programmable I/O) module rather than UART bit-banging, implementing the DMX512 Break/MAB timing accurately at the hardware level.
WIZnet W5500's Role
The W5500 handles all incoming Art-Net UDP packets. It is connected to SPI1 (GPIO28-31) and driven through the Arduino Ethernet library.
SPI1.setRX(28);
SPI1.setTX(31);
SPI1.setSCK(30);
Ethernet.init(eth_cs); // CS: GPIO29
Ethernet.begin(mac, ip);
artnet.begin();
// Subscribe to 4 universes
for (int i = 0; i < 4; i++) {
artnet.subscribe(i, [i](const uint8_t* data, uint16_t size) {
memcpy(dmxBuffer[i], data, size > 512 ? 512 : size);
});
}
With the W5500's hardwired TCP/IP stack handling UDP socket processing, the RP2350 is free to focus entirely on packet parsing and DMX output.
Hardware Design Highlights
- EtherCON + XLR Neutrik Connectors Standard RJ45 is replaced with a Neutrik EtherCON locking connector — it won't pull out when cables are stepped on or knocked during a show. DMX outputs support both XLR-5 (with RDM) and XLR-3.
- PoE (Power over Ethernet) An onboard SI3402-B IEEE 802.3af PoE controller lets the node receive both data and power over a single Ethernet cable. No separate power run needed for rigging positions.
- UPS A Li-Po battery combined with the Nordic nPM1300 PMIC provides uninterruptible power. If mains power cuts out mid-show, DMX output continues. Battery-only operation for wireless configurations is also possible.
- Neutrik Halo RGB LEDs SK6805 addressable RGB LEDs are placed in the Neutrik halo rings around each XLR connector, showing per-port connection status by color. In a dark venue, port state is visible before plugging in a cable.
Tech Stack
| Component | Details |
|---|---|
| MCU | RP2350B (Raspberry Pi) |
| Ethernet | WIZnet W5500 (Hardwired TCP/IP, SPI1) |
| Firmware language | C++ (Arduino IDE) |
| Network protocols | Art-Net, sACN (E1.31) |
| DMX output | PIO-based DmxOutput × 4, MAX3485 RS-485 |
| PCB design | KiCad, 3 boards, fabricated via JLCPCB |
| 3D design | Onshape |
FAQ
Q. Does this unlock parameters in grandMA3 onPC software? A. No. grandMA3 onPC requires official licensed hardware to unlock parameters. DMXion operates as a standalone node at the Art-Net/sACN protocol level and works with any software that supports those protocols — MA software, QLC+, Resolume, and others.
Q. How is RDM supported? A. The XLR-5 connectors and MAX3485 transceivers provide the hardware foundation for RDM's bidirectional communication. The actual RDM protocol implementation still needs to be written in firmware.
Q. How does the Wi-Fi module connect? A. An ESP8684-based Wi-Fi module PCB connects to the main board via an IDC connector. The README notes that wireless operation is possible when used with the battery, but the specific firmware implementation has not been published.
Q. Can PoE and battery be connected at the same time? A. The nPM1300 PMIC manages power path selection. It automatically chooses between PoE, USB-C, and battery based on priority and handles battery charging simultaneously.
Project Links
- GitHub: https://github.com/NEOgHacking/DMXion_4Port_Node
- Hack Club Blueprint: https://blueprint.hackclub.com/projects/10460
- Author: NEOgHacking (independent maker)
- Hardware: RP2350B + WIZnet W5500
- Reference product: grandMA3 onPC 4Port Node 4k (MA Lighting, $2,000)

