Doug Fleenor Design, Inc.
RS-232 to DMX512 Interface, 2 Generation
nd
March 8, 2010 (Software V1.2)
The second generation RS-232 to DMX512 interface has numerous features beyond
the original device. The protocol described in this document supports the new features.
The protocol described for the original RS-232 to DMX512 interface is not supported by
this device. The changes required to move to the new interface are minimal and are
described later in this document.
Connections
The RS-232 signals are available on the front panel DB-9M connector and on the 3 pin
female XLR connector on the rear panel. Please connect to only one of these ports.
You may not use the two ports simultaneously.
The front panel DB-9M connector pinout is:
Pin Number Function
2 Receive data
3 Transmit data
5 Common
The rear panel 3 pin XLR connector pinout is:
Pin Number Function
1 Common
2 Receive data
3 Transmit data
The male and female 5 pin XLR connectors are in parallel. When the interface is
configured for mode zero (DMX output), only the female output connector should be
used. When the interface is configured for mode one (DMX input), the external DMX
source should be connected to the male input connector. The female output connector
can be used to connect to other DMX devices. If the female output “thru” connection is
not used, a 120 terminator should be connected.
The pinout for the 5 pin XLR connectors is:
Pin Number Funciton
1 Common
2 DMX data minus
3 DMX data plus
4 connected from input to output only
5 connected from input to output only
Indicators
The red POWER LED will illuminate when the interface is powered.
The green MIMIC LED has no function at this time
The green SIGNAL LED will flash when an RS-232 command is received while in mode
zero. While in mode one, the SIGNAL LED will turn on when DMX input is present.
Address switches
While in mode one, the address switches select a “channel of interest”. The interface
will report changes in level for the channel of interest in the standard level format
described in the protocol below.
Communication port settings
The RS-232 port is configured with the following settings:
Baud 9600
Start bits 1
Data bits 8
Parity None
Stop bits 1
No handshake signals are required or provided.
The RS-232 port is full duplex and the receiver has a 256 byte circular buffer.
If you are using a Windows computer, the comm port flow control must be set to None.
The FIFO buffers should be disabled.
Protocol
All commands are sent in plain ASCII format. Each command is terminated with a
carriage return <CR>. This is the character used by the interface to trigger any action.
The hexadecimal value for the <CR> is 0x0d.
After receiving a carriage return, the interface with respond with the characters received
followed by “OK” if the command was formatted and processed successfully. If there
was any syntax problem, the interface will respond with the characters received
including the error-causing character and “Error”.
Spaces between commands are optional. All letters can be either upper or lower case.
All channel numbers are in the range of 1-512. All channel levels are in decimal in the
range of 0-255. All preset numbers are in the range of 1-20. All times are in the range
of 0-999. Leading zeros are allowed and are optional. The total number of digits must
not be more than is allowed for the given parameter. For example, sending a preset
number as “005" will cause an error because only two digits are allowed in preset
numbers. Sending “05" as a preset number is acceptable. Similarly, a channel number
of “004" is OK while “0004" would cause an error.
One special command is executed immediately without the <CR> terminator. Sending
the ASCII dollar sign character ($) will cause the interface to immediately reset. This
feature was added as a fallback in case the input buffer becomes overrun. Any
pending actions are aborted when this character is received.
ASCII character Command Parameters
C Channel number 1-3 digit number (range 1-512)
F Fade time for a preset 1-3 digit number (range 0-999)
H Heartbeat (on/off) 1 digit (range 0-1)
L Channel level 1-3 digit number (range 0-255)
M Mode (DMX input/output) 1 digit (range 0-1)
P Play preset 1-2 digit number (range 1-20)
R Record preset 1-2 digit number (range 1-20)
S Slave support 1 digit (range 0-2)
T Channel or preset fade time 1-3 digit number (range 0-999)
U Update software 2 digit number (must be 42)
V Version number none
Z Set all levels to zero none
@ Channel level 1-3 digit number (range 0-255)
? Query 1-3 digit number (range 0-512) or
letter P
$ Reset interface none
Setting a channel level
Commands relating to setting a single channel can be send in a one packet with a
single carriage return at the end. The format for setting a channel to a level is:
C ### L ### <CR> or: C ### @ ### <CR>
For example, setting a channel to a level could be sent as:
C 15 L 255 <CR>
In this example, channel 15 would be set to a level of 255.
A time may also be assigned to the movement of a single channel. The format is:
C ### L ### T ### <CR>
For example:
C 15 L 45 T 5 <CR>
In this example, channel 15 would fade from its current level to a level of 45 in 5
seconds.
Note that multiple channels may not be moved within a single command. The channel