DMX Receiver Base Address

This is a short guide to configuration of base addresses. Each DMX receiver requires a base address in the range 1- 511 decimal. The address determines the first slot that is used by the receiving DMX receiver.

All receivers on a DMX bus are allocated a base address that may be represented by a 9-bit binary number. Starting at the base adrress, a receiver may use the values in one or more consecutive slots as input data to determine its operation or configure its mode..

Here are some examples:

The base address may be expressed in binary. For example a DMX address of 40, sets the binary bits at positions 4 & 6 to a '1' value, or as hexadecimal: 0x28 (the prefix 0x indicates a hexadecimal value).

Base address bit pattern, note the representation is typically shown lsb first.

There are three common ways to set the base address:

Setting the DMX Base Address using DIP Switches

This method usually uses a 10-way DIP switch, which consists of a row of 10 microswitches. Each switch is wired so that when it is “on”, it connects an input to ground (inputs to microcontollers normally float to a logical “1” when they are not connected. It is preferable to add a high-value resistor to the positive supply to ensure predictable operation (known as a pull-up resistor). Many microcontrollers can enable this pull-up resistor internally as a part of the initialisastion of the interface. Since a DMX address requires 9 bits (each binary digit corresponding to: 1 2 4 8 16 32 64 128 256), this leaves one switch spare - this is often used to configure an option (e.g., when set to one it might indicate a self-test mode, or static set of output values).

AVR-based DMX receiver showing the DIP switches (on the left shown highlighed in blue) used for configuration.

DIP switch setting for a base address of 10 (2+8=10). The least significant bit is
usually on the left side, hence switch 1 has a value 1, switch 2 has a value 2, switch
3 has a value 4, switch 4 a value 8, etc. Note: The DMX base address is represented by 9 switches. The 10th switch can be used for other configuration.

DIP switch setting for 24 (16+8=24). Note: 10th bit is used for other configuration.

Multiple Devices

A DMX receiver that requires one or more channels of control data utilises data in the dmx frame, staring at the slot indicated by the base address. For example, a receiver requiring 7 bytes of data that has a base address of 100, would read data from the set of slots: 100,101,102, 103, 104, 105 and 106. The next consecutive DMX receiver could be configured to use a base address of 107.

Example showing slot 7 being read as output 3 of DMX receiver 2, configured with a base address of 5.

Here are some examples:

Two identical DMX receivers with the same base address will be configured to operate exactly the same.

Using fewer switches for configuration

Although DMX allows any base address in the range 1-512, some DMX receivers place constraints on the base address, for instance to only allow addresses to be configured on 8-slot boundaries, or to not support the full range of base address values.

For instance, a manufacturer might choose to allocate some switches for configuration settings. These switch positions could allow a general-purpose board to configure the outputs in various ways: some as digital outputs, some as dimmer (PWM synchronised to mains zero crossing), some as direct PWM for servo control or LED lighting control).

In the examples below, a weighting of 23 (8) is used for the first switch. Therefore, the base address is derived from the DIP switch setting of switches 1 to 5 by multiplying the resulting value by 8 and then adding one to result. This gives a maximum base address of 249. A similar configuration is used for the Milford Instruments DMX receiver (Part number 1-479).

The DIP switch setting for 1 = 8*0+1 (for an 8 channel DMX receiver configured in 8 channel groups). Note: thw switches in positions 6,7,8,9,10 are in this case used for other configuration.

DIP switch setting for decimal 9 = 8*1+1.

The DIP switch setting for 41 = 8*5+1.

Two things to remember are: to check which switch represents the least significant bit of the address, and to note the weighting for the least significant bit (i.e. does switch 0 represent 20 (1) or it could represent some other value, e.g. 22 (4) or 23 (8) ).


See also:

A lot of people find binary manipulation hard to visualise, and some helpful people have built apps for phones, iPads and computers to help people get to grips with this. Example of calculators available on-line are:

Prof. Gorry Fairhurst, School of Engineering, University of Aberdeen, Scotland. (2020)