Art Net
Art Net
Art Net
www.Art-Net.info
This document is released without warranty of any kind including but not limited to the
implied warranties of fitness for a particular purpose.
Art-Net™ is a trade mark of Artistic Licence. The Art-Net protocol and associated
documentation is copyright Artistic Licence. Any third parties are welcome to use this
communication protocol without royalty. Please see section on credits for details of
copyright message.
Artistic Licence request that any manufacturer who implements this protocol apply for
an OemCode at the following link: www.art-net.org.uk/?page_id=203
Contents
Document History ........................................................................................................... - 1 -
Art-Net 4: .................................................................................................................... - 5 -
Credits: ....................................................................................................................... - 8 -
Terminology: ............................................................................................................... - 8 -
Node........................................................................................................................ - 8 -
Port-Address ........................................................................................................... - 8 -
Net .......................................................................................................................... - 8 -
Sub-Net ................................................................................................................... - 8 -
Universe .................................................................................................................. - 8 -
Kiloverse .................................................................................................................. - 8 -
Controller ................................................................................................................ - 9 -
IP ............................................................................................................................. - 9 -
Port ......................................................................................................................... - 9 -
Directed Broadcast.................................................................................................. - 9 -
Controller ................................................................................................................ - 9 -
ArtPoll: ...................................................................................................................... - 14 -
Table 2 - OemCode:............................................................................................... - 20 -
ArtPollReply: ............................................................................................................. - 22 -
ArtIpProg: ................................................................................................................. - 31 -
ArtIpProgReply: ........................................................................................................ - 33 -
ArtAddress: ............................................................................................................... - 35 -
ArtDiagData: ............................................................................................................. - 42 -
ArtCommand: ........................................................................................................... - 46 -
ArtTrigger:................................................................................................................. - 48 -
Key......................................................................................................................... - 49 -
SubKey................................................................................................................... - 49 -
Payload.................................................................................................................. - 51 -
ArtDmx:..................................................................................................................... - 52 -
ArtSync: .................................................................................................................... - 57 -
ArtVlc: ....................................................................................................................... - 62 -
ArtInput: ................................................................................................................... - 66 -
ArtFirmwareMaster: ................................................................................................. - 69 -
ArtFirmwareReply:.................................................................................................... - 71 -
ArtTodRequest:......................................................................................................... - 76 -
ArtTodRequest packet definition .......................................................................... - 76 -
ArtTodData: .............................................................................................................. - 78 -
ArtTodControl: .......................................................................................................... - 81 -
ArtRdm: .................................................................................................................... - 83 -
ArtRdmSub: .............................................................................................................. - 85 -
Art-Net 4:
This latest revision of the protocol implements a number of new features and also
simplifies the data transfer mechanism. The changes are all based on feedback from
manufacturers who are using the protocol.
Art-Net 4 incorporates a new scheme to handle gateways that support multiple DMX
ports. Previously, gateways that supported more than four DMX ports would need
multiple IP addresses (multi-homing). This was an annoyance for both users and
developers and indeed could not be achieved on some hardware platforms. The new
scheme allows a gateway (or any Art-Net product) to support over 1000 DMX ports. It is
achieved by adding a field called BindIndex to 4 Art-Net packets, namely: ArtPollReply,
ArtAddress, ArtInput and ArtTodData. The BindIndex allows all Art-Net devices to identify
the ‘page of DMX ports’ to which a packet refers.
The change is, from a developer perspective, very small and will be very quick to a
product design. It has also been added in such a way that it is 100% backwards
compatible with previous releases.
Art-Net can address over 30,000 universes. Previously, each group of 4 DMX ports were
limited to universes from a consecutive block of 16. Art-Net 4 allows this limit to be
resolved as the developer can choose to identify each DMX port individually. This simply
means encoding a single DMX port in each ArtPollReply. Using this mechanism, all DMX
ports can be assigned a fully independent universe.
Universe Addressing:
A theoretical limit of 32,768 universes exists in the Art-Net 4 specification. The actual
number of universes that can be transmitted is dependent upon both the network
physical layer and the casting used. The following table provides a rule of thumb.
Credits:
Any person or entity which implements Art-Net in their products shall include a user
guide credit of: "Art-Net™ Designed by and Copyright Artistic Licence".
Terminology:
Node: A device that translates DMX512 to or from Art-Net is referred to as a Node.
Port-Address: one of the 32,768 possible addresses to which a DMX frame can be
directed. The Port-Address is a 15-bit number composed of Net+Sub-Net+Universe.
IP: The IP is the Internet protocol address. It is expressed in either a long word format
(0x12345678) or dot format (2.255.255.255). Convention is that the former is
hexadecimal and the latter is decimal. The IP uniquely identifies any Nodes or Controllers
on a network.
Subnet Mask: Defines which part of the IP represents the Network address and which
part represents the Node address. Example: A Sub-Net mask of 255.0.0.0 means that the
first byte of the IP is the network address and the remaining three bytes are the Node
address.
Port: Actual data transmission on Art-Net uses the UDP protocol that operates ‘on top
of’ the TCP/IP protocol. UDP data transfer operates by transferring data from a specific
IP:Port on a Node or Controller to a second specific IP:Port on a second Node or
Controller. Art-Net uses only one port of 0x1936.
Directed Broadcast: When a network first connects, the Controller does not know the
number of Nodes on the network, nor does it know their IP addresses. The Directed
broadcast address allows the Controller to send an ArtPoll to all Nodes on the network.
Limited Broadcast: Art-Net packets should not be broadcast to the Limited Broadcast
address of 255.255.255.255.
Controller: A generic term describing an Art-Net device with the primary task of
generating control data. For example, a lighting console.
Packet formats are specified in a manner similar to C-language structures, in which all
data items are considered to be unsigned integers of type INT8, INT16 or INT32
according to the number of bits. There are no hidden padding bytes, except at the very
end of a packet, which may be rounded up to a multiple of 2 or 4 bytes. Extra bytes at
the end of a valid received packet are ignored.
The protocols are generalised for handling future versions with increased numbers of
ports.
Many bit data fields contain unused positions. These may be used in future versions of
the protocol. They should be transmitted as zero and not tested by receivers.
All packet definitions are designed such that their length can be increased in future
revisions, whilst retaining compatibility. For this reason, only minimum packet length is
checked in this protocol.
Protocol Operation
A Node operates in one mode, each Node having a unique IP address derived from its
Ethernet MAC address. The UDP port used as both source and destination is 0x1936.
IP address configuration
The Art-Net protocol can operate on either a DHCP managed address scheme or using
static addresses. By default an Art-Net product will factory start using a Class A IP
address scheme. This allows Art-Net products to communicate directly and without the
need for a DHCP server to be connected to the network.
Nodes report whether they are DHCP capable in the ArtPollReply packet. This document
details packets on the assumption that static addressing is used. When DHCP is used, the
addressing and subnet masks will be modified as dictated by the DHCP server.
The IP address consists of a 32 bit number designated as A.B.C.D. The bytes B.C.D are
calculated from the MAC address. The high byte ‘A’ is set to one of two values as shown
in the following table.
The MAC address is a 48 bit number designated u:v:w:x:y:z. This is a globally unique
number. The upper three bytes ‘u:v:w’ are registered to a specific organisation. The
lower three bytes ‘x:y:z’ are assigned by that organisation. In order to ensure that there
is minimal possibility of IP address conflicts between different manufacturers supporting
Art-Net, the product OEM code is added to the MAC address.
The ‘B’ field of the IP address is calculated by adding the high byte of the OEM code with
the low byte of the OEM code and the ‘x’ field of the MAC address.
On power up, the Node checks its configuration for IP addressing mode. If it has been
programmed to use a custom IP address, the following procedure is not used.
The sub-net mask is always initialised to 255.0.0.0, unless a custom IP address is in use.
This means that the network address is the most significant 8 bits and the Node address
is the least significant 24 bits of the IP address. This is a Class A network address and for
this reason care must be exercised when connecting to other networks. If an installation
requires connection of an Art-Net network to another network that has Internet access,
then the connection must be implemented via a router that filters out the Class A
addresses.
IP address Example
Calculation:
• IP Address A = 2.
• IP Address = 2.168.52.118.
ArtPoll:
Packet strategy.
The Controller may assume a maximum timeout of 3 seconds between sending ArtPoll
and receiving all ArtPollReply packets. If the Controller does not receive a response in
this time it should consider the Node to have disconnected.
The Controller that broadcasts an ArtPoll should also reply to its own message (by
unicast) with an ArtPollReply. It is a requirement of Art-Net that all controllers broadcast
an ArtPoll every 2.5 to 3 seconds. This ensures that any network devices can easily detect
a disconnect.
Art-Net allows and supports multiple controllers on a network. When there are multiple
controllers, Nodes will receive ArtPolls from different controllers which may contain
conflicting diagnostics requirements. This is resolved as follows:
If any controller requests diagnostics, the node will send diagnostics. (ArtPoll->Flags->2).
Targeted Mode
Targeted mode allows the ArtPoll to define a range of Port-Addresses. Nodes will only
reply to the ArtPoll is they are subscribed to a Port-Address that is inclusively in the
range TargetPortAddressBottom to TargetPortAddressTop. The bit field ArtPoll->Flags->5
is used to enable Targeted Mode.
The following table details the legal OpCode values used in Art-Net packets:
Opcodes
Name Value Definition
OpPoll 0x2000 This is an ArtPoll packet, no other data is contained
in this UDP packet.
OpPollReply 0x2100 This is an ArtPollReply Packet. It contains device
status information.
OpDiagData 0x2300 Diagnostics and data logging packet.
OpCommand 0x2400 Used to send text based parameter commands.
OpOutput / OpDmx 0x5000 This is an ArtDmx data packet. It contains zero start
code DMX512 information for a single Universe.
OpNzs 0x5100 This is an ArtNzs data packet. It contains non-zero
start code (except RDM) DMX512 information for a
single Universe.
OpSync 0x5200 This is an ArtSync data packet. It is used to force
synchronous transfer of ArtDmx packets to a node’s
output.
OpAddress 0x6000 This is an ArtAddress packet. It contains remote
programming information for a Node.
OpInput 0x7000 This is an ArtInput packet. It contains enable –
disable data for DMX inputs.
OpTodRequest 0x8000 This is an ArtTodRequest packet. It is used to request
a Table of Devices (ToD) for RDM discovery.
OpTodData 0x8100 This is an ArtTodData packet. It is used to send a
Table of Devices (ToD) for RDM discovery.
OpTodControl 0x8200 This is an ArtTodControl packet. It is used to send
RDM discovery control messages.
OpRdm 0x8300 This is an ArtRdm packet. It is used to send all non
discovery RDM messages.
OpRdmSub 0x8400 This is an ArtRdmSub packet. It is used to send
compressed, RDM Sub-Device data.
OpVideoSetup 0xa010 This is an ArtVideoSetup packet. It contains video
screen setup information for nodes that implement
the extended video features.
The registered OEM codes are detailed in “Art-NetOemCodes.h” which is found in the
SDK directory of the DMX-Workshop installation.
The OEM code defines a specific manufacturer’s product type. The OemCode is returned
in the ArtPollReply.
The following table details the NodeReport codes. TheNodeReport code defines generic
error, advisory and status messages for both Nodes and Controllers. The NodeReport is
returned in ArtPollReply.
The following table details the Style codes. The Style code defines the general
functionality of a Controller. The Style code is returned in ArtPollReply.
The ArtIpProg packet is sent by a Controller to the private address of a Node. If the Node
supports remote programming of IP address, it will respond with an ArtIpProgReply
packet. In all scenarios, the ArtIpProgReply is sent to the private address of the sender.
Fields 5 to 13 contain the data that will be programmed into the node.
The ArtPoll packet sent by controllers defines the destination to which these messages
should be sent.
The following table details the Diagnostics Priority codes. These are used in ArtPoll and
ArtDiagData.
Use of the packet is application specific but in general a single controller will broadcast
the packet to the network.
The Data field contains the command text. The text is ASCII encoded and is null
terminated and is case insensitive. It is legal, although inefficient, to set the Data array
size to the maximum of 512 and null pad unused entries.
The command text may contain multiple commands and adheres to the following syntax:
Command=Data&
The ampersand is a break between commands. Also note that the text is capitalised for
readability; it is case insensitive.
Thus far, two commands are defined by Art-Net. It is anticipated that additional
commands will be added as other manufacturers register commands which have
industry wide relevance.
The following table details the commands defined for use in ArtCommand.
Command Description
SwoutText This command is used to re-programme the label
associated with the ArtPollReply->Swout fields.
Syntax: "SwoutText=Playback&"
SwinText This command is used to re-programme the label
associated with the ArtPollReply->Swin fields.
Syntax: "SwinText=Record&"
In some circumstances a controller may only wish to trigger a single device or a small
group in which case unicast would be used.
The Key is an 8-bit number which defines the purpose of the packet. The interpretation
of this field is dependent upon the Oem field. If the Oem field is set to a value other than
0xffff then the Key and SubKey fields are manufacturer specific.
However, when the Oem field = 0xffff the meaning of the Key, SubKey and Payload is
defined by Table 7.
The following table details the commands defined for use in ArtCommand.
The SubKey is an 8-bit number. The interpretation of this field is dependent upon the
Oem field. If the Oem field is set to a value other than ffff16 then the Key and SubKey
fields are manufacturer specific.
The Payload is a fixed length array of 512, 8-bit bytes. The interpretation of this field is
dependent upon the Oem field. If the Oem field is set to a value other than 0xffff then
the Payload is manufacturer specific.
The Data is output through the DMX O/P port corresponding to the Universe setting. In
the absence of received ArtDmx packets, each DMX O/P port re-transmits the same
frame continuously.
The first complete DMX frame received at each input port is placed in an ArtDmx packet
as above and transmitted as an ArtDmx packet containing the relevant Universe
parameter. Each subsequent DMX frame containing new data (different length or
different contents) is also transmitted as an ArtDmx packet.
Nodes do not transmit ArtDmx for DMX512 inputs that have not received data since
power on.
However, an input that is active but not changing, will re-transmit the last valid ArtDmx
packet at approximately 4-second intervals. (Note. In order to converge the needs of Art-
Net and sACN it is recommended that Art-Net devices actually use a re-transmit time of
800mS to 1000mS).
A DMX input that fails will not continue to transmit ArtDmx data.
Art-Net 4 Protocol Release V1.4 Document Revision 1.4df 12/9/2022 - 52 -
Art-Net 4 Protocol Release V1.4 Document Revision 1.4df 12/9/2022 - 53 -
Unicast Subscription:
ArtDmx packets must be unicast to subscribers of the specific universe contained in the
ArtDmx packet.
The transmitting device must regularly ArtPoll the network to detect any change in
devices which are subscribed. Nodes that are subscribed will list the subscription
universe in the ArtPollReply. Subscribed means any universes listed in either the Swin or
Swout array.
If there are no subscribers to a universe, the controller shall not send ArtDmx. There are
no conditions in which broadcast is allowed.
The ArtDmx packet is intended to transfer DMX512 data. For this reason, the ArtDmx
packet for a specific IP Address should not be transmitted at a repeat rate faster than the
maximum repeat rate of a DMX packet containing 512 data slots.
Synchronous Data:
Data Merging:
The Art-Net protocol allows multiple nodes or controllers to transmit ArtDmx data to the
same universe.
The Node can legitimately handle this situation using one of two methods:
Nodes should document the approach that is implemented in the product user guide.
The Merge option is preferred as it provides a higher level of functionality.
Merge is implemented in either LTP or HTP mode as specified by the ArtAddress packet.
If both sources of ArtDmx fail, the output holds the last merge result.
Merging is limited to two sources, any additional sources will be ignored by the Node.
The Merge implementation allows for the following two key modes of operation.
• Backup: One Controller (Console) can monitor the network for a failure of the
primary Controller. If a failure occurs, it can use the ArtAddress AcCancelMerge
command to take instant control of the network.
When a node provides multiple DMX512 inputs, it is the responsibility of the Node to
handle merging of data. This is because the Node will have only one IP address. If this
were not handled at the Node, ArtDmx packets with identical IP addresses and identical
universe numbers, but conflicting level data would be transmitted to the network.
ArtSync:
Packet strategy.
At power on or reset a node shall operate in non-synchronous mode. This means that
ArtDmx packets will be immediately processed and output.
In order to allow for multiple controllers on a network, a node shall compare the source
IP of the ArtSync to the source IP of the most recent ArtDmx packet. The ArtSync shall be
ignored if the IP addresses do not match.
When a port is merging multiple streams of ArtDmx from different IP addresses, ArtSync
packets shall be ignored.
ArtNzs is the data packet used to transfer DMX512 data with non-zero start codes
(except RDM). The format is identical for Node to Controller, Node to Node and
Controller to Node.
Fields 2, 6, 11, 12 and 13 should be treated as ‘magic numbers’ to detect this packet.
Caution should be exercised when implementing this function in the controller. Keep in
mind that some network traffic may be operating on a node to node basis.
If the reply is not received in this time, the controller aborts the transaction. The large
time period is to allow for Nodes that are writing directly to slow non-volatile memory.
The Node allows a 30 second delay between sending an ArtFirmwareReply and receipt of
the next consecutive ArtFirmwareMaster. If the next consecutive block is not received
within this time, the Node aborts the transaction. In this instance the Node returns to its
previous operating system and sets ArtPollReply->Status and ArtPollReply ->NodeReport
accordingly.
The firmware update file contains a header that defines the Node OEM values that are
valid for this update. The Controller must check this value before sending to a Node. The
Node also checks this data on receipt of the first packet. If the Node receives a packet
with an invalid code, it sends an error response.
The UBEA is the User Bios Expansion Area. This is a limited firmware upload mechanism
that allows third party firmware extensions to be added to a Node.
Manufacturers who implement this feature must document the software interface
requirements.
All firmware and UBEA upload files should be of the following format.
• All RDM discovery commands are proxied; Art-Net devices hold local RDM
device lists and conduct their own discovery.
• All RDM Get / Set commands are non-proxied; they are passed to end devices
for response.
Input Gateway: A device that inputs DMX512 onto the Art-Net network (e.g. Art-Lynx
IP).
Output Gateway: A device that outputs DMX512 from the Art-Net network (e.g. Art-
Lynx OP)
Table of Devices (TOD): The list of RDM devices maintained by both Input and Output
Gateways.
RDM Discovery
Output Gateway Operation
Upon completion of initial RDM discovery, Output Gateways Directed Broadcast their
TOD in an ArtTodData packet.
When an RDM device is added to or removed from the Output Gateway’s TOD (during
incremental discovery), an ArtTodData packet is broadcast automatically.
Input Gateways generate a TOD by monitoring Art-Net traffic. The TOD is then used to
reply to RDM discovery commands by proxy. Operation is as follows:
The network is monitored for ArtTodData packets. If the Sub-Net and Universe fields
match, the Input Gateway adds the TOD contents to its own internal TOD. This allows
Input Gateways to respond to any RDM discovery commands they receive.
Input Gateways do not transmit any RDM discovery messages to the network.
Controller Operation:
Packet strategy.
ArtPollReplyData->BindIndex == ArtTodData-
>BindIndex
Please note that this packet was added at the release of Art-Net II. For backwards
compatibility it is only acceptable to implement this packet in addition to ArtRdm. It
must not be used instead of ArtRdm.
Data Integrity:
Art-Net receivers should check one item:
Please note that whilst the Art-Net SDK, Art-Net View & DMX-Workshop are free of charge, they are not
‘freeware’ and remain copyright Artistic Licence. It is not to be included in commercial products or made
available by Internet without the express written permission of Artistic Licence.
The information contained in this document is subject to change without notice. Artistic Licence. makes no
warranty of any kind with regard to this material, including, but not limited to, the implied warranties of fitness
for a particular purpose.
Artistic Licence shall not be liable for errors contained herein or for incidental or consequential damages in
connection with the furnishing, performance or use of this material.