How we picked the HALO Gen5 LED layout

v7.2 ships with a completely new status-LED scheme. There are still three LEDs in a row on the board — same hardware, same positions — but what they show has changed. The shape of the difference:

This post is about why we made that switch.

The role-based scheme didn't survive the workshop

The original idea — one LED per role — works on paper. In a rack with the front panel visible, you can tell which port is doing what at a glance.

In practice, the dualETH spends most of its life in racks where the front panel isn't visible, on truss where it's the wrong way up, or in a flight case where you can only see one corner. When something's wrong, the question isn't "which role is the issue" — it's "which port is the issue, and is it sending or receiving". The LEDs needed to answer that question first.

Per-direction is more honest

Each port is fundamentally either receiving (DMX in) or transmitting (Art-Net / sACN out, or pixel data). Mapping LEDs to that dimension means:

The HALO Gen5 specifically has three LEDs in a chain: the natural mapping is Port A RX, Port A TX, Port B TX. (Port B is TX-only on this hardware, which is why there's no LED 3.)

What each colour means

The new scheme uses pulse and colour together:

The solid-red "wrong direction" indicator is rendered at half brightness so it doesn't overpower the pulsing colours on the other two LEDs. That detail took two passes to get right — at full brightness it washed out everything else.

What we removed

The old code had pre-shuffled GRB palette constants, a dim-and-mask brightness control, and a one-second "blink red on error" overlay on a status LED that didn't exist anymore. Cleaning those out felt good. Anyone digging through the firmware history will see we deleted more code than we added, which we count as a win.

Browser mirror

v7.2.1 followed up by mirroring the same LEDs into the web UI's status page. The browser shows three dots that match what the hardware is doing, with the pulse animation handled in CSS so it stays smooth without needing fast polling. If your unit's in a rack and you can't see the front panel, the status page now shows you what someone in the room would see.

Feedback wanted

The current scheme is the second one this product has had. Whether there's a third in its future depends on what the people running these in real installations tell us — if you've got opinions, drop us an email. The most useful kind of feedback is "I had a problem and the LEDs didn't help me find it because…" — that's the kind of thing that drives the next revision.