For 'Series 3' BrightSign Units w/USB or Serial Port
16 Input, 16 Output
DMX (USB or TTL Serial)
USB-S-16x16-DMX
Features:
- Footprint (5.3 x 3.1 inches)
- 16 inputs, 16 medium current outputs (2 Amperes each)
- Terminal blocks for all input connections
- External '+V' (12 or 24VDC) Required to drive external lighting and supply
5V for logic
- On board LED's to indicate Power and Processor running.
- USB or Serial (3.5mm stereo)
- New Dual Baud Rate Selection (Firmware 6.x)
When any input goes low (button input), then a string is sent to the
BrightSign
The strings are:
- 1 = "1",13 (character "1" followed by a carriage return of chr(13))
- 2 = "2",13
- 3 = "3",13
- 4 = "4",13
- 5 = "5",13
- 6 = "6",13
- 7 = "7",13
- 8 = "8",13
- 9 = "9",13
- 10 = "10",13 ("1" followed by "0" then CR)
- 11 = "11",13
- 12 = "12",13
- 13 = "13",13
- 14 = "14",13
- 15 = "15",13
- 16 = "16",13
Note: In BrightAuthor set the Serial I/O to ASCII. Baud Setting:
38400,N,8,1 (No parity, 8 bits, 1 stop bit)
Note: If using the Stereo Connector, be sure to select 'inverted serial' when
setting up the serial port
Description of Operation:
This board is used to interface to a BrightSign with Serial or USB port.
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).
Controlling the board: This boards uses the 'HMS Command Protocol'.
Commands are listed here. For 'Not HMS Protocol' see the information below
under Options. Note: This HMS Protocol is valid for Firmware version 5.0
and up.
Version 6.x firmware has Dual Baud Rate Selection (38,400 or 115,200)
Outputs:
Outputs are 'ON' or 'OFF'. To set the byte for the output use the
following table and add the decimal numbers to get the desired results.
I.E. If you want output 1 and 8 on, add 1 to 128 = 129. Sending 129 sets
output 1 and 8 on. The same scheme is used to set port2 (outputs 9-16) and
port3 (outputs 17-20). Sending a zero for a port value turns the outputs
for that port off.
Outputs: Connect Loads between 'Output' and +V.
- 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)
*********Output Control Commands (Lights):
- Command1: Set Outputs 1-8 ON/OFF by bit selection
3 bytes [1, 'Bit Selection,204] Note: ON bits are 1's, OFF bits are
0's: (00000001b) Turns On Output1
- Command2: Set Outputs 1-8 On/OFF by bit selection
3 bytes [2, 'Off-Bits',204] Note: (000000001b) Turns On Output9
Commands 3-15 Reserved for future
*********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 16 DMX Fade values to one value
2 bytes [19, Fade Value] *1 End Command
- Command20: Set the 16 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 Ch16_Fade
Value], followed by 'Break' unless all 16 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 '#Bytes' was not received
- Command22: Set 1 DMX channel to a value
3 bytes [22, Channel#, Value] *1 End Command
- Command23: Set all DMX channels to one value (channels 1 to 200)
3 bytes [23, Channel Value,204] *1 End Command
- Command24: Set all 16 DMX ' Fade Enabled' channels to one value
(channels 1-16 depends on options 1-4)
3 bytes [24, Channel Value,204] *1 End Command
- Command25: Set all DMX 'Non Fade' channels to one value.
(Channels 1-16 depends on options 1-4), and channels 17-200
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, #Bytes, Start Channel#, Value1, more values],
followed by 'Break' if '#Bytes' was not received.
- Command27: Set Default Fade Value for 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: A value of 0 (zero) sets
512 channels to transmit.
- Command30: Set 1 Upper DMX Channel
3 bytes [30,Channel#,Value]
- Command31 Set 'Sequential' Upper DMX channels
?? bytes [31, Start Channel, Value1, Value2....] Note: This command
terminates with a 'break protocol'.
*********Play/Record and Other 'Scene' Commands 32-35
Link to 'Scene
Format (Protocol)'
- Command32: Play 'Recorded' Scene
3 bytes [32, Scene# (1-48), 204]
- Command33: Record 'Scene' (256 byte limit) (Scenes
can be concatenated)
[33, Scene# (1 to 48), 204, 1 to 512 bytes]
- 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]
- Command36: Set a DMX Scene (all 256 channels are set by the scene
data channels 1 to 256) Note: Only 'Max Channels' are transmitted
3 bytes [36,scene#,204]
Note:
Commands 37-38 reserved for future use.
- Command39: Say 'Max Channels = ', Max Channels byte (in text format)
********Miscellaneous Commands (Useful for Development)
- Command43: Send the Data for DMX channels 17-48 to
the Serial Port
[43,204]
- Command44: Send 'Scene Data' to the 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 24
Fade channels. The last two bytes of this report are the 'Default Fade' and
'Max Channels' from EEPROM.
2 bytes [46,204]
- Command47: Firmware Upgrade Command (the HZ LED
will flash at 2 Hz) (use the 'HMS_Downloader.exe' program)
[47,204]
Note: The brackets are not part of the command byte sequence.
Here are some useful files for helping with testing or setting up the board.
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
Options: (SW1)(Firmware 6.x)
- SW1-1 Off = HMS Protocol enabled (uses the command structure explained
above).
- SW1-1 On = HMS Protocol disabled. The byte sequence is
[Port1_Byte,Port2_Byte, DMX_CH1_byte, successive DMX channel bytes]
- SW1-2 On = Repeat DMX continuous.
- SW1-2 Off = Send DMX bytes every .5 seconds or as the DMX bytes change
(command changes or fade changes).
- SW1-3 Off = 38,400 Baud
- SW1-3 On = 115,200 Baud
- SW1-4 On = Cycle Diagnostics ( Turns DMX channels 1-100 full on, then off
every .7 seconds). Outputs are set on sequentially (all ports).
$AA (204) is sent to the serial port (USB or Serial)
with each 'cycle loop'.
Inputs reflected to the outputs if any input is low
(halts the cycle diagnostic)
Not HMS Protocol:
The first byte 'value byte' received sets output port1 (outputs 1-8), the
second byte received sets output port2 (outputs 9-16). Each byte after
byte 2 is sent to the DMX channels.
I.E. Send this byte sequence [1,128,255,0,64,128] and this is the results:
- 1=Port1 value (output 1 turns on)
- 128 = Port2 value (output 16 turns on)
- 255 = DMX_CH1 value (full on)
- 0 = DMX_CH2 value (off)
- 64 = DMX_CH3 value (low brightness)
- 128 = DMX_CH4 value (medium brightness).
Note: If you can't 'Invert Serial Signals' order the -P version of the board
(using a newer processor with polarity control of the TTL-Serial Port).
Last Revised:
08/27/2024