Skip to main content

Introduction to lighting control

This is a summary of how lighting control works. It introduces the control protocols DMX and Art-Net, assuming no background in lighting technology.


A lighting fixture (strobe, moving head, LED bar, smoke machines, etc) is controlled with the DMX protocol. Every lighting fixture has a DMX in -and- a DMX out connector.

Moving head DMX connectors

Similarly, conventional lighting can be controlled using a dimmerpack with DMX input and output.


Fixtures mirror their DMX input to their output, so the fixtures are all connected like a daisy chain. At the beginning of the chain is the lighting controller, in this case Beam, which generates the DMX data.


DMX is nothing more than a collection of 512 values between 0 and 255, transmitted 30 times per second by a lighting controller.

These values are sent over cables with XLR connectors (3-pins, sometimes 5-pins).


All fixtures connected in a daisy chain receive the same full set of 512 DMX values.

Every lighting fixture picks out a select number from the 512 values it receives. How many it uses depend on how many channels the fixture has, and which ones it uses depends on an offset you specify on the fixture itself. For advanced fixtures this is usually done using a small backlit panel or for more primitive fixtures, using DIP-switches, all as specified in the fixture's manual.

This offset is called the fixture address. It simply tells the fixture which of the 512 values it receives should be used to control its channels.

Let's say our moving head has 15 channels and is set to address 163. This means it will look at the incoming values and pick

  • 163rd for channel 1,
  • 164th for channel 2,
  • ...
  • 178th for channel 15.

To figure out what address a fixture should have, you need to know how many channels the preceding fixtures have. The task is to prevent fixtures from overlapping, which would result in one DMX value controlling multiple fixture channels.

When setting up a set of lighting fixtures, also called a lighting grid, the usual workflow is to first make a patch list on paper, just a list of all fixtures you have installed, with their addresses set up so all channels are laid out sequentially, one fixture after the other.

A patch list example:

FixtureNumber of channelsAddress
Moving head 1151
Moving head 21516
Strobe 1431
Strobe 2435

This is a process people call patching the fixtures. It is done every time there is a new configuration of fixtures.

After all addresses are set on the fixtures, the information has to be repeated in the lighting controller, in an interface usually called the patch editor. Now, the lighting controller knows what fixtures to control with what values in the series of 512 that it will send out.

So what if all the channels of your fixtures amount to more 512 different values? Then you need an extra DMX output on your lighting controller. This new line is again connected to the additional fixtures in a daisy chain, just like the first line. One line is known as one universe.

Outputting DMX from a PC

The most standard way to control lighting fixtures is with a lighting desk. However, modern lighting desks are nothing more than a box with buttons and faders, connected to a computer. In principle, a standalone computer with a MIDI controller can do the same. The only thing we need, apart from software, is a solution to transmit DMX from a computer.

There are several DMX output modules that connect to a computer via USB.

Example of a USB DMX interface

However, you can imagine that when outputting multiple universes of DMX, at some point it will get messy to use a multitude of these smaller boxes.

The better option is to transmit all DMX values of all values over a single ethernet cable, and use special boxes to take the ethernet cable as input and send the values out through a number of XLR outputs. This type of box is called a DMX node.

Example of DMX node

The protocol used to send DMX values over ethernet is called Art-Net.


Art-Net logo

The purpose of Art-Net is nothing more than to send DMX values over ethernet, using UDP packets. Every packet contains the 512 values and a universe index. Since ethernet connections can carry an almost unlimited amount of these packets per second, this allows transmitting many universes over a single cable.


The maximum number of universes that can be sent over an Art-Net connection is 256. When using more than 16 universes (only likely in large shows) it becomes relevant to know that the 256 universes are split into 16 subnets, each of which represents 16 universes.

Most fixtures don't have direct Art-Net input, so node boxes take the packets for one of the universes from the ethernet connector and output them to an XLR connector, also called a DMX port. There are various brands and models for DMX nodes, but they usually don't have more than 8 XLR output connectors, meaning you will have to specify on the node which universes to take from the Art-Net input and output as DMX. How to do that varies per model and can always be found in their manuals.

DMX nodes come in a big range of pricing and features. An example of a cheap single-output node we have used with good results is the Enttec ODE.

Enttec ODE

An example of a higher-range node we have used for larger events is from ELC:

ELC node

Expensive DMX nodes are often provided for rental by the same rental companies that rent out fixtures.

Finally it is good to know that ethernet cables can be connected just like any network. If you want to have multiple nodes, for example for different locations on stage, you can use a network switch to copy the network signals to multiple locations.

Network switch

For more information about networking, see Network terminology.

Numbering convention

An on-going debate in the lighting world is the question what number to give the first value in a series. What address do I give the first fixture in my patch list: 1 or 0? The same question holds for universes.

When seeing this value as an address, 1 makes most sense. But when seeing it as an offset, 0 makes more sense.

On fixtures the address approach is most common, designating the first channel to be 1. But in universe numbering, especially in Art-Net interfaces, 0 is often used to indicate the first universe. It is usually easy to find out what the convention is in a given situation, as long as you are aware that different interfaces can use different conventions.

Beam uses the convention that 1 is always the first entry, both in fixture addresses and in universe numbers.