ArtNetInModule¶
Category: effect | Tags: 🔥🟦🐙
Receives Art-Net DMX frames over UDP and writes pixel data into an EffectsLayer buffer. Acts as an effect source: wired like SineEffect or RipplesEffect, it fills the parent layer each loop tick. Complementary to ArtNetOutModule — together they form a complete send/receive pair.
Multi-universe: reconstructs a pixel buffer split across consecutive universes. Universe i carries pixels [i*170 .. (i+1)*170) as 510 channels. The number of universes consumed matches the layer size automatically.
Controls¶
| Control | Type | Range | Default | Description |
|---|---|---|---|---|
universe_start |
slider | 0-255 | 0 | First Art-Net universe number to accept |
enabled |
toggle | 0/1 | 1 | Enable/disable receiving |
Wiring¶
{
"type": "ArtNetInModule",
"inputs": { "layer": "<effects-layer-id>" }
}
Receiving pipeline¶
ArtNetInModule → EffectsLayer → DriverLayer → PreviewModule (or physical driver)
Two-device Art-Net test¶
Device A (sender):
SineEffectModule → EffectsLayer → DriverLayer → ArtNetOutModule (ip=<Device B IP>)
Device B (receiver):
ArtNetInModule → EffectsLayer → DriverLayer → PreviewModule
With ArtNetOutModule defaulting to broadcast (255.255.255.255), Device B receives without needing the sender's IP configured explicitly.
Health report¶
universe_start=0 packets_rx=1234 handle=3
handle is the UDP socket file descriptor (or slot index on Arduino). A value of -1 means the socket failed to bind (port 6454 in use).
Test coverage¶
Unit tests in tests/test_artnet.cpp:
| Test | Level | What is verified |
|---|---|---|
| Lifecycle without layer | smoke |
No crash when layer_ is null; packets_rx=0 after loop |
| healthReport format | format |
healthReport contains universe_start= and packets_rx= |
| ArtNetOut loopback to ArtNetIn | integration |
Receives packets sent by ArtNetOutModule on 127.0.0.1 |
Live tests (deploy/live_suite.py, deploy/livetest.py):
| Test | Level | What is verified |
|---|---|---|
| test5 Art-Net loopback (PC) | integration |
packets_rx > 0 on PC broadcast loopback |
| Two-device Art-Net (ESP32 receiver) | integration |
packets_rx > 0 on MM-70BC receiving PC broadcast over LAN |
Tags¶
| Emoji | Meaning |
|---|---|
| 🔥 | Effect |
| 🟦 | 2D+ |
| 🐙 | WLED-compatible protocol |