For 'Series 3' BrightSigns with USB Port or Serial Port
DMX Controller
USB-S3-DMX
Features:
- Small footprint (2.8 x 2.8 inches)
- Power thru the USB or 5V external 2.1/5.5mm jack using 5V
- On board LED's to indicate Power and Processor running.
- Serial Setup: 38,400 Baud, N,8,1 (standard RS232 communication)
Overview:
The USB is connected thru a USB-Serial 'Prolific' converter chip. This
board appears as a serial device to the BrightSign. In BrightAuthor, be
sure to set the Presentation Properties/Serial port to Port2 for the USB device.
Use 'Port0' for the serial connection Version 7.xx firmware no longer requires
'invert levels' at the BrightSign!.
Operation:
This board uses the 'HMS Protocol'. Fade for DMX Channels or
'Non-HMS Protocol selected by SW1-1
Version 6.x Firmware: SW1-3 selects the baud rate. SW1-3 off
sets 38,400 baud. SW1-3 on sets 115,200 baud
Note: The baud can be changed dynamically (without re-set of the board)
****************************************************************************************************************
New Version 7.0 Firmware features
1. New 'Auto Detect' of 'polarity'. This feature enables connection
to a standard serial port without the need to invert the signals at the
BrightSign.
2. New 'Auto Play' of a DMX scene at power up. This feature sets up
the board to play scene 48 if the first byte of scene 48 is 26 (setup DMX
channels)
To setup this feature you need to use the command 'Record Scene' (33,48,204)
followed by command 26 bytes 26, #bytes, start channel, byte1, byte2 to #bytes
I.E. To set Channels 1 thru 4 to have a default value on power up:
33,48,204,26,4,1,255,0,255,0. This sets channel 1 to 255, channel 2 to 0,
channel 3 to 255, channel 4 to 0.
*****************************************************************************************************************
Serial Transmission 'Break' Protocol: The serial 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.
*********DMX SPECIFIC COMMANDS 16-26, and 31
- 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 4.x firmware setting channel 0 sets channel 512 value
3 bytes [22, Channel#, Value] *1 End Command
- Command23: Set all 512 DMX channels to one value (channels 1 to
512)
3 bytes [23, Channel Value,204] *1 End Command
- Command24: Set all 24 DMX ' Fade' channels to one value (channels
1-24)
3 bytes [24, Channel Value,204] *1 End Command
- Command25: Set all 512 DMX 'Non Fade' channels to one value.
3 bytes [25, Channel Value,204] *1 End Command
- Command26: Set starting DMX Channel#, first byte to this channel,
successive bytes to successive channels. Well suited to DMX Head Controlling!
? bytes [26, #Value 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 512 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: a value of zero (0), enables
512 channels (Fade should be not set below 30 when 512 channels is enabled).
- Command30: Set one 'upper' DMX channel to a value (upper channels
are 256-511). A value of zero sets channel 256, a value of 1 sets channel 257
and so on.
3 bytes [30,Channel#,Value]
- Command31: Set multiple 'upper' DMX channel values.
?? bytes [31,Start Channel, value, value...,170] Note: 170
terminates the command because we have an unknown number of bytes to set.
Note: The 'Start Channel' is added to upper channel 256 (location in memory is
0x200 (page 2 of memory). Note: To use this command as a 'play command' the
last byte has to be 170d which will terminate this command.
- Command37: Set/Clear DMX512 Flag (setting this flag enables
'overlap' of successive scenes so that upper channels are part of the 'play
scene command'
2 bytes [37,0] clears the flag, [37,1] sets the flag
- Command38: Set successive Fade Channels
??bytes [38,#bytes,start
channel,brightness,fade,brightness,fade....#bytes) Similar to command 17 but
only the start channel is required.
*********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 scene bytes)
3 bytes [35, scene#,204]
- Command 36: Set DMX Scene (3.1 firmware). This
'scene' command sets all 256 channels from a scene number. This scene for DMX
can be set using the 'Record Scene' command above.
3 bytes [36, scene#,204]
********Miscellaneous Commands (Useful for Development)
- Command 39: Say 'Max Channels' = ", max_channels (this is text to
the computer) followed by the number of bytes to transmit
- Command43: Send the Data for DMX channels 1 to 'Max
Channels' to the computer
[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, Default fade,
Max_channels (see Cmd29), Upper channels ( see Cmd37)
2 bytes [46,204]
- Command47: Firmware Upgrade Command (the HZ LED
will flash at 5 Hz) (use the 'HMS_Downloader.exe' program to update the
firmware). Contact HMS Electronics to see if there is a firmware upgrade and
report the current firmware revision when requesting this information.
2 bytes [47,204]
*1: All commands that end with 204 (the end command byte) or are stated in
the description ('End Command') is 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 (>24), 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
20 milliseconds, then send the next command and pause and so on except where
designated above.
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 channel to 'Max Channels' channels (see
command31) are sent every .5 seconds if Option2 is off) 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 in 14 milliseconds. 512 channels are sent in about 28
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'.
HMS-RS232-DMX.brs
(sequences channels 1 thru 4). Rename this file to 'autorun.brs' and put it on
the SD card
*****************************************************************
Note: The brackets are not part of the byte sequence.
Options: (SW1)
- SW1-1 Off = HMS Protocol enabled (uses the 'command structure' explained
above).
- SW1-1 On = HMS Protocol disabled. The byte sequence is [DMX_CH1_byte,
successive DMX channel bytes]
- SW1-2 OFF = Normal Serial Polarity (USB Compatible)
- SW1-2 ON = Invert Serial (For compatibility with the TTL serial port of
the BrightSign)
- SW1-3 On = Repeat DMX continuous.
- SW1-3 Off = Send DMX bytes every .5 seconds or as the DMX bytes change
(command changes or fade changes).
- SW1-4 On = Cycle Diagnostics ( Turns DMX channels 1-100 full on, then off
every .6 seconds)
Note: External Supply Voltage: IF the USB
connection is not used to supply power to the board, then use an External
Power Supply of 5V. |
Last Revised:
08/27/2024