Free forever·no account, no tracking, no third-party requests ·open data, free API
Stage 2 of 7 · The signal1 of 6 in this stage13 min read

DMX on the wire

DMX512 is a 250 kbit/s serial signal on an RS-485 bus, and almost everything that goes wrong with it is electrical rather than logical. Three questions, answered properly.

Question one

Is one fixture one unit load?

No, and this is the single most useful thing on this page. The limit in the standard is 32 unit loads per segment, not 32 fixtures. A unit load is defined by the current a standard RS-485 receiver draws — roughly a 12 kΩ input impedance — and it is a property of the receiver chip inside the fixture, not of the fixture itself.

Modern receiver chips are commonly built at a fraction of a unit load. A fixture with a 1/8 UL receiver presents an eighth of the electrical burden of an old 1 UL one, which is why a line can legitimately carry well over a hundred modern fixtures, and why a rig of twenty-year-old dimmer packs still stops at thirty-two.

The figure is in the fixture manual, usually near the DMX connector pinout. If it is not stated, assume 1 UL and be pleasantly surprised.

32 UL
rule
The line is rated in unit loads, not in boxes. Count the electrical load, not the fixtures — then check the manual, because the two numbers are rarely the same.

Question two

Why does a DMX line need a terminator?

A twisted pair has a characteristic impedance — around 120 Ω for DMX cable. When the signal reaches the end of the cable and finds nothing there, that energy has nowhere to go, so it turns around and travels back up the line. That returning energy is a reflection, and it lands on top of the data still arriving.

A 120 Ω resistor across the pair at the far end matches the impedance of the cable. The signal arrives, the resistor absorbs it, and nothing comes back. That is the whole job.

rule
A terminator is not a formality and it is not optional on a long run. It is a 120 Ω resistor that gives the signal somewhere to stop.

Question three

Then why does an unterminated rig often work?

Because a reflection takes time to come back, and on a short cable it returns while the same bit is still being transmitted — so it lands harmlessly on top of itself. DMX runs at 250 kbit/s, which is 4 µs per bit, and signal travels down copper at roughly two thirds the speed of light. The round trip only starts to eat into the next bit once the cable is long enough for the delay to matter.

That is exactly what makes it dangerous. A missing terminator does not produce a fault you can find at focus. It produces a rig that is fine at ten metres and flickers at eighty, fine cold and marginal warm, fine until someone adds one more fixture and the line gets a little longer.

Topology

Daisy chain, never a Y-split

DMX is a bus. One line leaves the desk, passes through each device, and ends in a terminator. Splitting it passively into three branches creates three unterminated stubs, each of which reflects, and none of which can be terminated correctly because they all share one driver.

When a rig needs to branch, it needs an opto-splitter: an active device that receives the line properly, terminates it, and re-transmits a fresh signal on each output. Each output is then its own segment with its own 32 unit load budget and its own terminator.

rule
Branch with an opto-splitter, not a Y-cable. Each splitter output is a new segment: new unit-load budget, new terminator.

Question four

How does a one-way wire carry an answer back?

DMX512 has no return path. One transmitter drives the pair, every receiver listens, and nothing a fixture might want to say has anywhere to go. Which makes RDM — ANSI E1.20 — look impossible until you see the trick, which is that it does not add a return path. It takes turns.

The controller sends a packet and then stops driving the line, and while it is quiet a responder drives the same pair back the other way. Half duplex on one differential pair, arbitrated entirely by timing. That is the whole idea, and everything awkward about RDM in the field follows from it: the wire is now bidirectional in a rig full of equipment that was built on the assumption that it never would be.

RDM packets are told apart from level data by their start code. Ordinary DMX carries start code 0x00; RDM uses 0xCC. A fixture that checks start codes ignores anything that is not 0x00 and never notices RDM exists. A fixture that does not check will treat 0xCC packets as if they were levels, which is why switching RDM on for the first time in an old rig can produce flicker or jumps that look exactly like a data fault and are not.

rule
RDM does not add a wire. It borrows the one that is there, by having the controller shut up long enough for a fixture to answer.

Question five

Why does discovery find nothing through a perfectly good splitter?

Because a splitter is a one-way amplifier unless somebody designed it not to be. It takes the incoming pair, buffers it, and drives several outgoing pairs. DMX passes through beautifully. A response coming back the other way meets the output of a buffer and stops there, silently.

So the rig looks completely healthy — every fixture responding to levels, no errors anywhere — and discovery finds nothing at all, which is a confusing failure to sit in front of. An RDM-aware splitter has to detect the quiet window and turn its buffers around inside it, and then turn them back before the controller starts transmitting again. That is real work, done to a tight timing budget, and it is why RDM-aware splitters cost more and why one non-aware unit anywhere in a chain removes RDM from everything downstream of it.

The same applies to anything else in the path: opto-isolators, buffers, DMX-over-Ethernet gateways, and cheap USB dongles that turn their transceiver around too slowly. Every one of them has to be in on it. And because a long line, a missing terminator or a marginal cable all eat into the same timing budget, RDM tends to fail intermittently on exactly the lines that were already marginal for DMX — which makes it a rather good, if annoying, test of a rig you thought was fine.

Question six

How does a controller find devices it has never met?

Every RDM device has a 48-bit UID: a 16-bit manufacturer ID from the ESTA registry, and a 32-bit device ID. That is 281 trillion possible addresses and a controller cannot ask them one at a time.

So it plays a binary search, out loud, with collisions as the signal. It broadcasts DISC_UNIQUE_BRANCH over a range of UIDs, meaning roughly “anybody in this range, speak now”. If nothing is in the range, silence. If exactly one device is, it answers cleanly and gets found. If several are, they all answer at once, the responses collide into garbage — and that garbage is itself the answer, because it says the range contains more than one device. The controller splits the range in half and asks both halves. Each device it finds is told to be quiet, and the search continues until nothing answers anywhere.

Two consequences. It takes a while, and on a big or marginal line it takes minutes, which is why a console can sit there apparently doing nothing after you press discover. And it can miss devices, because a collision that happens to look like a valid response, or a response that arrives fractionally late, sends the search down the wrong branch. Running discovery twice and comparing the count is not superstition.

One box, many devices

Sub-devices and proxies, and why a rack answers for things that cannot speak

Two parts of RDM exist because the world is not made of identical fixtures on one wire, and both turn up the first time you point a controller at real installed kit.

A sub-device is a logical device inside a physical one. A twelve-way dimmer rack is a single box with a single UID, but it is twelve dimmers, and each of them has its own address, its own curve, its own lamp hours. RDM handles that by letting a message be directed at a sub-device number instead of at the root: root device zero is the box itself and carries the things that belong to the box — the fan, the mains, the firmware — while sub-devices 1 to 12 each carry the things that belong to one channel. Ask the root for a DMX start address and you get the rack’s; ask sub-device 7 and you get that dimmer’s. Multi-cell LED battens work the same way, which is why one fixture can report twelve independent addresses without twelve UIDs.

A proxy is a device that answers on behalf of others. It has its own UID, it declares itself a proxy, and it holds a list of the UIDs behind it — typically a gateway onto a segment that does not speak RDM, or a system with its own internal bus. A controller discovering the line finds the proxy, asks it what it is fronting for, and gets a list rather than having to run the binary search through it. The devices behind it appear in the patch as real devices, because as far as the controller is concerned they are.

The consequence worth carrying: a UID appearing on your line does not mean that thing is physically on your line. It may be behind a proxy on another bus entirely, which is excellent for getting a whole installed system into one patch and confusing the first time you go looking for a fixture with a torch.

And then

RDMnet is a different animal

E1.33, RDMnet, carries the same RDM message set over IP instead of over the DMX pair. That removes the turnaround timing problem entirely — a network is already bidirectional — and replaces it with a broker, a discovery mechanism built on DNS-SD, and all the ordinary questions of a show network.

It is genuinely a different thing rather than a faster version of the same thing, and the two coexist: RDMnet to a gateway, plain RDM from the gateway down the DMX line to the fixtures. Which means the splitter problem is still yours, it has just moved further from the console.

Want the numbers rather than the explanation?

The unit-load budget calculator, the DMX address tool, the refresh-rate and RDM cost calculator and the RDM UID decoder are on the field tools page, and work offline once loaded. Protocol detail lives on DMX512, RDM and RDMnet.

Check yourself

3 questions on the mechanism rather than the trivia. Nothing is scored and you can answer again — the explanation under a wrong answer is the point of it.

  1. 1A DMX segment is rated at 32 unit loads. You have 40 fixtures on it and it works. What is the most likely explanation?

  2. 2An unterminated DMX run has worked every night for a year. Then it starts dropping out. What changed?

  3. 3You need to feed three positions from one console output. What do you use?

Answers are kept in this browser on this device. Nothing is sent anywhere.

You can now answer
  • Is one fixture one unit load?
  • Why does DMX need termination?
  • What is a reflection?
Kept in this browser on this device. Nothing is sent anywhere.

Where to go next

These pages are a chain rather than a library — the next one along usually answers the question this one raised.

Everything on this page, in the index

Each of these has its own entry with sources, ports, gotchas and an open gap where a field is missing.