expanseElectronics

Christmas pixel lights with xLights and the dualETH#

Last updated · 5 min read

If you're building a pixel Christmas display (a mega-tree, roofline, window outlines or a few singing props sequenced to music in xLights), you need a controller that turns your sequence into pixel data. The dualETH does that over a normal network cable. It listens for E1.31 (sACN) or Art-Net, the same protocols xLights and Falcon Player (FPP) already speak, and drives WS2812-type pixels directly from each of its two ports.

This guide covers what one dualETH can drive, how to set it up in xLights, and the power and wiring rules that stop pixels flickering.

What one dualETH drives#

  • 2 ports, up to 680 pixels each, so 1,360 pixels per node. Each port uses up to four universes of 170 RGB pixels.
  • WS2812, WS2813 and SK6812 (RGB and RGBW) strips and strings, anything that uses WS2812 timing.
  • E1.31 (sACN) or Art-Net, chosen per port.
  • Powered by USB-C or PoE. The node itself draws about 1 W. The pixels always need their own 5 V supply (see below).

That's a good fit for a first prop, a window or roofline, a small tree, or adding one more prop to an existing show. Big shows with tens of thousands of pixels use many-port controllers. You can also run several dualETHs on one network, each with its own universes.

Not sure? Tell us what you're building at [email protected] and we'll say honestly whether it suits.

Step 1: Set the ports to pixel mode#

  1. Connect the dualETH to your network and open its web page (see dualETH quick start). Give it a fixed IP address so xLights can always find it.
  2. Open Port A, set Mode to WS2812, and set: - Protocol: sACN (E1.31). Use Art-Net if the rest of your show already uses it. - Pixel count: how many pixels are on that port (up to 680). - Pixel config: your strip's colour order (most WS2812B are GRB; if red shows as green, change this).
  3. Do the same for Port B if you're using it.

The default sACN universes are 1–4 on Port A and 5–8 on Port B. Each universe carries 170 pixels (510 channels), so pixels 1–170 are universe 1, 171–340 universe 2, and so on. The full table is in WS2812 pixel mode.

Step 2: Add the controller in xLights#

  1. In xLights, open the Controllers tab and choose Add Ethernet.
  2. Set Protocol to E1.31, and IP Address to the dualETH's fixed IP (unicast is the most reliable on home networks).
  3. Set Start Universe to 1, Universe Count to the number of universes you need (up to 4 for one port, 8 for both), and Channels per universe to 510.
  4. Leave the vendor/model as generic. Then assign your props to the controller's channels on the Layout tab, or just use the start channels that match the universe table above.

FPP (Falcon Player) works the same way: add an E1.31 universe output for each universe, pointing at the dualETH's IP, 510 channels each.

Step 3: Power your pixels properly#

The dualETH cannot power your pixels. It sends the data only; the pixels need their own 5 V power supply.

  • Size the supply for the pixel count. WS2812 pixels draw up to about 60 mA each at full white, so 100 pixels can draw 6 A. Sequences rarely run full white, but size for it and round up.
  • Inject power about every 50 pixels. Otherwise the far end of a run fades to brown or shows wrong colours.
  • Join the grounds. The pixel supply's 0 V must connect to the data ground (XLR pin 1, at the receiver), or the pixels can't read the data reliably.
  • Never power pixels from the node's USB-C. It will brown out after a handful of pixels.

Step 4: Wire the data#

The dualETH's XLR outputs send pixel data as RS-485, the same balanced signal DMX uses, through the same driver chip. WS2812 pixels can't read that directly: they expect plain 5 V data. The upside is that RS-485 travels a long way, so the node can sit indoors well away from your props.

  • Fit an RS-485 differential receiver at the prop. It turns the balanced signal back into 5 V pixel data. Any differential receiver board sold for pixel displays will do.
  • Wire the XLR to the receiver on the DMX pins: pin 1 is ground, pin 2 is data −, pin 3 is data +.
  • Use DMX cable or Cat5 for the long run, not microphone cable. It's the right impedance for RS-485.
  • Keep the receiver close to the first pixel, ideally under a metre. That last stretch is plain 5 V data again.
  • Power the receiver from the pixels' 5 V supply, with its ground joined to the supply's 0 V.

Outdoor displays#

The dualETH isn't weatherproof. Mount it indoors or in a weatherproof enclosure with your power supplies, and run the pixel data and power out to the props.

If something doesn't light#

  • Nothing at all: check the port's LED. Pulsing orange means the port is in pixel mode but no data is arriving: check the IP and universes in xLights match the node.
  • Wrong colours: change Pixel config (colour order).
  • First few pixels fine, then garbage: power injection or a long, unbuffered data run.
  • Flicker on a busy network: see Networking for lighting and Troubleshooting.

Where to buy#

The dualETH is designed and assembled in the UK, from £79.99, and ships in 2–4 working days. Pick the PoE option if you want one network cable to power the node.