For 'Series 3 & 4' BrightSigns with USB Port or TTL Serial
Port
8 Inputs & 8 Outputs +DMX Controller
USB-S-8X8-DMX
Features:
- Small footprint (3.0 x 3.0 inches)
- 8 Output Drivers for Lamps or Relays (2 amperes each driver)
- Terminal blocks for all I/O connections
- 12-24V external 2.1mm jack for loads (5V via internal Voltage Regulator)
- On board LED's to indicate Power and Processor running.
- Serial Setup: 38,400 or 115,200 baud, N,8,1 (standard RS232 communication)
Overview:
This board was designed with 'low impedance' drivers. These 'low
impedance' drivers can be used to drive external devices to logic '0'. 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.
Operation:
- 1. Activation of inputs 1-8 (connect any input to 0V) sends out Ascii
'1', '2', '3', '4', '5', '6', '7' or '8' followed by <CR> (Carriage Return),
because the BrightSign is normally looking for 'Strings'.
- 2. This board uses the 'HMS Protocol'. Fade for DMX Channels or
'Non-HMS Protocol selected by SW1-1)
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).
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 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.
REV 2.0 Firmware (Inputs) Effective 01/20/2015:
Rev 2.0 Firmware allows for multiple inputs low at the same time. I.E.
If input 1 goes low ('1' is reported), then input 2 goes low (while input 1 is
held low), then input 2 will be reported. If any 'active' Input (switch)
opens then closes, it will be reported as a new input. I.E. suppose input1 is
closed and input2 is closed and opened multiple times. A '2' will be sent
with each successive switch closure. This logic is for all inputs.
With Rev 2.x firmware, a single switch can be used to show closed and open.
If you want to detect a door or drawer opening and then closing, arrange the
switch to close when the door or drawer opens, and then the switch opens when
the door or drawer is closed. Also, when all switches are open, the '0' is
reported. This is necessary to track the switches.
Outputs:
Outputs are On or OFF. Use this table of bits to determine the number
to send from the BrightSign to control the outputs.
- Bit Binary Decimal
- 0 00000001b 1d (Output1)
- 1 00000010b 2d (Output2)
- 2 00000100b 4d (Output3)
- 3 00001000b 8d (Output4)
- 4 00010000b 16d (Output5)
- 5 00100000b 32d (Output6)
- 6 01000000b 64d (Output7)
- 7 10000000b 128d (Output8)
Note: See the 'Not HMS Protocol' for simple DMX
control (no fade) near the bottom of this specification sheet.
Outputs: Connect Loads between 'Output' and +V.
HMS Command Protocol:
*********Output Control Command (Lights):
- Command1: Set Outputs 1-8 by: Bit selection, Verify_byte
3 bytes [1, 'Select_Bits', 204]
See the binary table above to set the outputs on or off (1's sets the output
on, 0's sets the output off). I.E. Sending 129 will set output 1 and output 8
on.
*********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 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 value should not be 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.
*********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
[39,204]
- 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.
- Fade: Excellent fade rate can only be obtained when the maximum number of
channels to transmit is less than or equal to 50. With more than 50 channels
to transmit, the transmit time exceeds the line frequency rate and phase
control of the lights by the 'DMX dimmer box' will cause a 'stepping' effect
to the brightness.
- 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.
Link: Setting up the Serial Port and Sending Bytes with 'BrightAuthor'.
HMS-DMX.brs
(sequences DMX 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 [170,Port_Byte,
DMX_CH1_byte, successive DMX channel bytes]
Note: 512 DMX bytes are sent with this selection (no
fade)
- SW1-2 On = Invert Serial Signals (compatible with the 3.5mm
TTL-Serial Port).
- SW1-2 Off = No Invert of Serial Signals (USB compatible).
- SW1-3 On = Continuous DMX
- SW1-3 Off = Send DMX about every .5 seconds
- SW1-4 On = Cycle and I/O Diagnostic ( Turns DMX channels 1-100 full on,
then off every .7 seconds. Outputs 1 to 8 are set on sequentially. If any
input is active (low) then the corresponding output is set on. Outputs return
to 'sequential on' when no input is low.)
Note: External Supply Voltage: An External
Power Supply is needed to power the loads on the output connector. Do not
connect any loads that have their own power that exceeds the power as
applied to the board using the 'Ext. Power Connector'. Doing so may result
in damage to the board. I.E. Suppose that 12 volts is supplied to this
board and you have a relay board with it's own power of 24Volts DC that
powers the relays. The 24VDC will feed back into the board via the foldback
diodes. Note: Foldback diodes are required for inductive loads such as
relays or small motors. |
Last Revised:
08/27/2024