DMX512 with 'HMS Protocol'
HMS-RS232-DMX-AH96 Board
Text Mode (Ascii) DMX
Controller
HMS Firmware Protocol DMX512
Controller
Features:
- Footprint (2.8 x 2.8 inches)
- Diagnostic Mode (Cycle DMX) and 'Options' selectable on board
- On board LED's to indicate BrightSign Power and Processor running.
- Serial Setup: 9600 baud, N,8,1
- Individual DMX Channels can be set using the new 'Command' structure.
- Special 'Channel Set Commands' to enhance 'DMX Head' controlling.
- Firmware Upgrade/Custom using a computer and the
'HMS Down Loader' program.
- 48 'Scenes' available for programming (175 scenes by special request)
- Rev 3 Firmware: Option 1 disables the HMS Protocol (simple DMX Bytes, no
commands)
- Rev 3.1 Firmware improved to allow for 256 channel DMX operation.
Description of Operation:
This board is used to interface to any BrightSign with an RS232 port or any
RS232 device (5 volt Jack required if non BrightSign use)
Serial Transmission 'Break' Protocol: The RS232 port
(BrightSign) has to allow 20 milliseconds to elapse between serial data 'bursts'
going out. This 20 millisecond 'rest' time is interpreted by the HMS board
as a 'Break' in serial transmission. This 'Break' condition synchronizes
the HMS board to the serial transmissions from the BrightSign (or other device).
New Command Selection for HMS Protocol: The first byte received by
the HMS board (after 'break condition') sets the receive protocol command.
This new protocol simplifies how many bytes to send from the BrightSign because
the DMX parameter is selectable! The bytes are enclosed in brackets [ ]. Note:
'Speed' = Rate of Fade.
Note: See the 'Not HMS Protocol' for simple DMX
control (no fade) near the bottom of this specification sheet.
Ascii (Text) Mode:
This controller uses Ascii or 'Text' strings. All the commands should be
sent as text. A space or comma separates bytes. A carriage return
ends the command string.
I.E. to send command 22 you send "22 1 255" or "22,1,255" (note: leading
zeroes are discarded. "001" = "1")
- Command 0 thru Command 15 are not applicable to this board (no outputs)
*********DMX SPECIFIC COMMANDS 16-26, and 31 (HMS Protocol)
- Command16: Set DMX Channel Values (Starts at Channel 1)
? bytes [16, #Bytes, DMX_CH1 to DMX_CH100], followed by 'Break'
if '#Bytes' was not received
- Command17: Set Multiple DMX 'Fade Channel' values
? bytes [17, #Bytes, Channel#,'Channel Value', 'Fade Value',
Channel#, 'Channel Value', 'Fade Value',....], followed by 'Break' if '#Bytes'
was not received.
- Command18: Set 1 DMX 'Fade Channel'
3 bytes [18, Channel#, Channel Value, Fade Value]: *1 End
Command
- Command19: Set all 24 DMX Fade values to one value
2 bytes [19, Fade Value] *1 End Command
- Command20: Set the 24 DMX 'Fade Channels' to a pre-set Fade Speed
(values have to be in Channel order!)
17 bytes [20, Ch1_Fade Value, Ch2 Fade Value,... to Ch24_Fade
Value], followed by 'Break' unless all 24 Fade values are sent
- Command21: Set 1 or more DMX channels to a value.
? bytes [21, #Bytes, Channel#, Value, Channel#, Value....],
followed by 'Break' if all the bytes ('#Bytes') was not received
- Command22: Set 1 DMX channel to a value:
New: With Version 2.0 firmware: Setting channel 0 sets channel 256
3 bytes [22, Channel#, Value] *1 End Command
- Command23: Set all DMX channels to one value (channels 1 to 255)
2 bytes [23, Channel Value, 204] *1 End Command
- Command24: Set all 24 DMX ' Fade' channels to one value (channels
1-24)
2 bytes [24, Channel Value, 204] *1 End Command
- Command25: Set all DMX 'Non Fade' channels to one value.
(Channels 1-24 depends on options 1-4), and channels 25 to 'Max Channels'
2 bytes [25, Channel Value,204] *1 End Command
- Command26: Set DMX Channel#, first byte to this channel,
successive bytes to successive channels. Well suited to DMX Head Controlling!
? bytes [26, #Bytes, Start Channel#, Value1, Value2, more
values to #Bytes], followed by 'Break' if '#Bytes' was not received.
- Command27: Set Default Fade Value for Power-up (Value stored and
retrieve at power up)
3 bytes [27,Fade Value, 204]
- Command28: Set All DMX Channels off Instantly (Does not affect the
Fade Values)
2 bytes [28,204]
- Command29: Set the maximum number of DMX channels to transmit (the
default is 50). This value stored in permanent memory.
3 bytes [29,Max Channels, 204] Note: with Firmware 2.0 all 256
channels can be set.
- Commands 30-31 for future development
*********Play/Record and Other 'Scene' Commands 32-36
Link to 'Scene
Format (Protocol)'
- Command32: Play 'Recorded' Scene
3 bytes [32, Scene# (1-48), 204] Note: Contact HMS Electronics
for a 175 scene board.
- Command33: Record 'Scene' (256 byte limit) (Scenes
can be concatenated)
[33, Scene# (1 to 48), 204, 1 to 256 bytes] Note:
Contact HMS Electronics for a 175 scene board.
- Command34: Cancel 'Play Scene'. This command should
be issued prior to any new command if Command32 was last command. This
insures that the 'Play Scene' Command is stopped.
2 bytes [34, 204]
- Command35: Erase Scene (erase all 256 scene bytes)
3 bytes [35, scene#,204]
- Command 36: Set DMX Scene (2.0 firmware). This
'scene' command sets all 256 DMX channels from a scene recorded in memory.
This scene for DMX can be set using the 'Record Scene' command above.
3 Bytes [36, scene#,204]
********Miscellaneous Commands (Useful for Development)
Note: Use you computer to send these commands so that you can
view the data
- Command43: Send the Data for DMX channels 24 to 48
to the Serial Port
[43,204]
- Command44: Send 'Scene Data' to Serial Port: All
256 bytes of the scene are sent out the serial port. Very useful for verifying
command 'data strings'.
3 bytes [44, Scene# (1 to 48), 204]
- Command45: Report the Software version of the board
to the Serial Port
2 bytes [45,204]
- Command46: Report the Goals and Fades for the Fade
channels. I.E. Goal 1, Fade 1, Goal 2, Fade 2,....to Fade 24
2 bytes [46,204]
- Command47: Firmware Upgrade Command is not
available for this 'Text Mode' controller.
To put this board into 'Upgrade Mode', Turn off the
power (to the board), set the options dip switch to all on, then turn on the
power. The HZ LED will flash at 2 Hz and the 'RDY_LED' will be On as an
indication that the board is in 'Firmware Upgrade Mode'). Use the
'HMS_Downloader.exe' program on your Windows based computer. Do not send the
'Download Command' from the HMS Downloader program. Set the Download baud to
38400. After update, unplug the power, return the dip switch to the normal
setting and return the power to the board.
*1: 'End Command' means that this was the end of the command and another
command can be part of the same string (no 'Break' required)
I.E. Turn on DMX channel 1 100%, Turn on DMX channel 50 100%
[22,1,255,22,50,255] (Two command22's in succession)
Notes:
- Any 'Command' followed by a 'break condition' terminates the Command. So,
if zero bytes follow Command=16, Command 16 will simply be terminated at the
break condition.
- If you use 255 for the #bytes, then the command will be terminated at
'Break' and fast flashing (Hz LED) will indicate that the command did not
terminate correctly (#bytes was not received).
- The brackets are not part of the byte sequence! Send decimal bytes no
strings!
- If #bytes is less than the bytes you are sending as part of the protocol,
unexpected results will happen.
- Any 'illegal' command results in 'dumped bytes' until 'Break' condition.
So, if a large string of bytes is sent, and a channel fade number is out of
range (>16), then the remaining bytes of that string are discarded.
- To 'Concatenate' Scenes: see
'Scene Format Protocol'
To Send Multiple Commands (not concatenated) , Send 1 command, then pause for
10 milliseconds, then send the next command and pause and so on except where
designated above.
I.E. if selecting Command12 (Set all 16 DMX fade values): Note if all 16 values
are sent then the next Command can be part of the string.
I.E. [15,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,'new
Command#','bytes for that Command]
Note: Fast Flash of the 1Hz LED (3 Hz). When any command is
terminated with 'Break', fast flashing occurs. When a command is sent
incomplete or out of range, (I.E. set fade for channel 30), because channel 30
is out of range, fast flashing is set. Fast Flashing is cleared upon
complete reception of a command not requiring the 'Break' condition. I.E.
Send 'Command0', to clear the fast flashing after 'Break'.
DMX512 Operation: The DMX first 4 to 'Max Channels' channels (see
command31) are sent every .8 seconds if Option2) or whenever the DMX 'Channel'
bytes change (resulting in instant DMX output). The DMX512 protocol is so
fast that the entire 256 (256 channels) channels of DMX data can be sent out
during 12 milliseconds.
DMX 'Head' Operation. If a DMX dimmer pack is utilized,
setup the dimmer pack to utilize channels 1-4. Then set the DMX 'Head'
start channel to 5 (or whatever channel is allowed). If the DMX 'Head' is
the only DMX device, then set the 'Head' channel to channel 1. If the DMX
'Head' protocol expects to receive 20 bytes (20 channels) then all 20 of those
bytes need to be sent with each DMX 'Head' command sequence. Likewise,
when using the BrightSign to control the DMX Head, the BrightSign should send
all 20 DMX bytes with each Serial Send() command. If the DMX512 'Head' can only
be set for 'even addresses' or multiples of a number (I.E. 20,40,60) then the
bytes for that address (channel) will have to start at the address or channel
set as the base channel.
DMX 'Play Scenes'. A 'scene' file can be created and stored on the SD
card. BrightScript would be used to interpret the 'scene file'. Any
number of scenes could be stored on the SD card. Contact the BrightSign
people if you need help with this programming.
DMX_Demo.AVI (84 mega byte movie demo)
DMX_Demo.mov 6MB (requires Quicktime) Link:
Setting up the Serial Port and Sending Bytes with 'BrightAuthor'.
*****************************************************************
Options:
- Option4 Continuous DMX Transmission. This mode can cause flicker on
some dimmer units. In the 'off' positions, the DMX string is only sent every
time a channel value is changed. In the 'on' position, the DMX string is
transmitted again after 100 milliseconds of the last transmission.
- Option3 'Cycle Diagnostic' Turns on channels 1-4, waits 1 second,
turns off channels 1-4. No Commands are accepted while this diagnostic is
running.
- Option2 Send the DMX Data every .8 seconds.
- Option1 Not HMS Protocol Send the bytes for the DMX
channels (170, DMX Byte, DMX Byte, ....).
.
Not HMS Protocol:
With Option 1 on (SW1-1) the HMS Protocol is not used. Instead, a
simple protocol is used and no Fade! This protocol is that you first send
0xAA (decimal 170) followed by the bytes for DMX channels 1 thru ??.
Note: Fade Command makes 'Fading the lights on and off' an easy task if
utilizing a DMX Dimmer Pack. To Fade up lights just output 0xFF ( 255
decimal) for the channel value for DMX Ch 1 to 24) To Fade down the
lights, just output a zero (decimal) for the channel value and the brightness
will Fade down at 20 millisecond intervals or at the rate specified with the
speed setting.
Note: Fade Speed: The Fade speed value is the number of milliseconds
to increment (increase brightness by '1') or decrement (decrease brightness by
'1') of the channel value. If the channel value is 255, and the speed
value=20, then it takes 20 milliseconds for each step or 5.1 seconds to obtain
full brightness (0 to 255). If the Fade Speed is zero, the new channel
value is output immediately to the DMX channel. So if the channel value
was 0, then 255 and the speed value is 255 (255 milliseconds per step of 1),
then it will take 65535 milliseconds (255 times 255) to finish Fade (1092
seconds). You may want to keep the value below 50.
*****************************************************************
Note: External Supply Voltage: External 5
volts is necessary if not using a BrightSign. The BrightSign supplies 5
volts via pin4 of the DB9 Connector. |
Author: Richard Harkey
Revised: August 27, 2024