Skip to main content

Art-Net in-depth

Sometimes it pays off to know a little bit more about the technology you are using. This can help with troubleshooting or with understanding manuals of other components your setup relies on.

Two components of the Art-Net protocol

The Art-Net specification consists of two different components:

  1. Part A: the protocol that Art-Net uses to send the actual values. This is basically an UDP packet with a header that identifies it as an Art-Net packet and contains some extra information such as how many values it carries, followed by the actual values (one byte each, a maximum of 512 values).
  2. Part B: the mechanism for polling existence of and information about the nodes in the network. This is not strictly needed for using Art-Net but it can make the connection process easier. It also enables to use unicast networking with more than one Art-Net device (see Network terminology).

Part A

Part A specifies the byte make-up of the most essential type of Art-Net UDP packet. It carries up to 512 values, a universe and subnet index and a few extra bytes that are used to check if packets are received in the correct order. For part A to work, all a controller needs to do is make sure these packets end up at the IP addresses of the nodes converting them to DMX. For all gritty details, the specification can be found in the Art-Net specification document, page 20-21.

Part B

The preferred way of working with multiple network devices is to send Art-Net packets to the IP addresses of each available node separately, using unicast. To do that you need to know their IP addresses. Part B is used to auto-detect all IP addresses of systems that can handle Art-Net on the network. It also receives additional information about the nodes, such as their names.

In order for your computer to work with part B, its IP should be in the range of 2.x.x.x or 10.x.x.x, with a subnet mask of 255.0.0.0. For part A to work, this is not necessary, as long as the UDP packets are sent to the IP(s) where you want them to be used it's all fine.

Part B is essentially doing the same as when you type ping 2.255.255.255 and ping 10.255.255.255 in Terminal, look at the IPs in the replies and compose a list of the addresses of devices that you know can receive Art-Net. This is why, when working with part B, you need your computer to be in one of those IP ranges.

Beam's approach

Beam only distributes part A packets at the moment. It allows you to manually set the node IP address in its settings. To reach multiple nodes, a broadcast IP address can be used (i.e. 255.255.255.255), so the packets get picked up by each node in the network. This works as long as the nodes don't actively refuse messages that are sent by broadcast, which is the case with a small number of lesser-known node brands.