WindowsÔ Brick-2 Videowall Control Software
A guide to getting started with the Brick-2 processor itself is available here. The capabilities of the processor are described in the specification summary.
The Video Wall Control application will present the main window below initially.
Context sensitive help is provided by indexing automatically into this file. If the F1 key is pressed a help page will pop up relevant to the current dialog box. Alternatively, if the help option from the main menu (show below) is selected, this file will be presented. This is the same as pressing the F1 key from the main window.
To set-up the software to control the Video Wall processor, click on File then Setup from this point.
Once the connection to the processor (or processors) is established it is possible to configure the processor, in particular,
Once set-up, it's possible to start configuring sequences. These are files of timed statements which cause messages to be sent to the processor to change the configuration, such as magnification factors, colour washes and other transition effects. A number of example sequence files are provided to demonstrate how to create these in addition to this documentation.
Sequence files can executed from the main window by filename. They can also be executed by clicking on a button defined in the sequence buttons page.
Other features are available to assist in the management of the processor. The processor can be reset, which is useful to return to a known start point if you've set the processor in state you didn't realise when developing sequences. It's also necessary to do this after downloading an updated version of firmware.
In order to control the videowall processor using this software some parameters need to be configured, via the setup dialog, (shown below).
The processor (or processors) needs to be connected to the controlling PC using a serial cable. This can connect to a 9 pin D connector directly on the PC or via a USB serial adapter. In the latter case, this should be plugged into the PC prior to configuring the software - otherwise the port will not appear in the pull-down list of COM ports.
Once the COM port is set, configure the number and type of installed units. If there is more than one unit connected, each will need a different unit if. If the units were purchased at the same time as a package, they will have been supplied configured with unique Ids. To set the ID of a unit, connect one unit at a time to the PC, select the unit ID using the appropriate "radio" button and click on the "Set Unit ID" button.
When all of the units have had their ID set, connect them in the usual daisy chain. Unit 0 should be the one connected to the PC. Click on Auto for the software to scan each unit and set the installed flag and unit type. (16 or 25 channels).
The default frame rate is used with sequence files. This should be set the appropriate rate so that timed delays using fractions of a second are converted to the correct number of fields when sequences are installed in the Brick2 Flash memory. The value is also used when decoding sequences installed in the Flash memory.
The settings can be saved and applied automatically next time the software is run using the Save settings button. This will update the file "brick.ini" in the same directory as the .exe file.
Once set, to check that communication with all the processors, read back the version information using the File/Hardware Info menu option.
Program options are selected from the File/Options menu.
Two options are available
Skip the standard include file.
This can be useful sometimes when testing sequence files. If the option is checked the file STD.INC will not be included before a sequence file is interpreted. This setting is not remembered when the application is closed.
Enable read/write access to Flash sector 1
Flash sector 1 contains the processor firmware. This is write protected by default when using the Remote Directory dialog. Checking this option enables files to be written and deleted from sector 1 so this should be used with extreme caution.
The selected options are not saved, so the default options will always apply when the program starts.
In addition logging can be enabled from this dialog. To record messages sent to and from the processor in a log file check the logging enabled tick box. Once a log has been created it can be viewed from this menu using the View Log button. To clear the log click Clear Log. This feature should be used with caution since large log files could be generated.
The logging state is set to disabled when the application starts.
Video input settings are set using the Video Input Dialog box selected from the main menu.
A panel in the top right hand corner of each slider control group indicates the state of the input signal. When there is a signal and the correct video encoding system is selected this panel will be green. If the Auto check box is checked (channel 1 only) the unit will search and then lock onto a valid configuration. In this mode the busy LED on the front of the processor will be red until a lock is achieved.
The input multiplexer can also be controlled for each channel from this control.
The dialog provides slider controls for Brightness, Contrast, Saturation and Hue for each of the the two input channels. In PAL and SECAM modes, the Hue slider should be set to the middle of it's range.
To show the channel being adjusted on the Videowall monitors, click the appropriate "Show Ch" button.
Once adjusted, the settings can be saved in a file in flash memory on the processor itself using the "Save in Flash" button. If this has been done previously, the setting can be restored using the "Restore from Flash" button. The Flash settings will be applied automatically following a software reset or power-up.
The settings can also be copied to the cut/paste scratch pad, using the copy button. The configuration can then be pasted into a text file as part of a sequence.
To restore the slider settings for a specific channel to their factory defaults, click on the "Default Ch 1" or "Default Ch 2" button, as appropriate.
The software can be used to control up to four processors. Select the processor to be configured using the buttons in the "configure unit" box. To configure all units the same, using unit 0 as the master use the "*" select all button.
To exit click on the "Done" button.
The video output settings are set using the video output dialog below.
There are two possible output modes, S-Video or Composite. If the S-Video box is checked the output signal will be present on the S-Video connectors. If un-checked, the output is on the composite phono connectors. It's not possible to use both simultaneously.
By default the output signal is not interlaced. Interlace really only improves the image quality if the filters are disabled and the image is not magnified.
Each output has a 2 dimensional interpolation filter. This can be enabled or disabled in both directions independently. For best results with magnified images the filter should be set on.
The output video system can be set to track the input. This provides a measure of simplification if the input is set to auto detect the video system. Alternatively the output video system can be fixed to a particular standard. The processor will convert from one format to another provided the frame sync, frequency for input output are the same (i.e. 50 or 60Hz).
Once configured the settings can be saved in a file in flash memory on the processor. These settings will be re-applied after a software reset or on power-up. The settings can also be copied to the cut/paste scratch pad, using the copy button. The configuration can then be pasted into a text file as part of a sequence.
The software can be used to control up to four processors. Select the processor to be configured using the buttons in the "configure unit" box. To configure all units the same, using unit 0 as the master use the "*" select all button.
To exit click on the "Done" button.
The monitor alignment feature allows various monitor layouts to be configured. The gaps between the monitors (mullions) can be compensated for. It is also possible to move rows and columns of monitors by a large enough margin to account for wide-screen 16:9 format monitors.
The alignment dialog box is show below.
The videowall needs to be aligned for each split (magnification factor) that is going to be used. The default settings are appropriate for conventional 4:3 aspect ratio monitors, though depending on the amount of over-scan even these may need some adjustment.
The alignment capability provided by the processor is no substitute for alignment on the monitors themselves. These should be all be aligned the same e.g. with a test pattern generator to start with. In the case of LCD and plasma panels there might be some alignment features - but usually all the monitors will have exactly the same geometry, so this initial step isn't necessary.
To align the monitor array first make sure the monitors are cabled as expected. The Identity button will cause the channel number to be displayed on each monitor to confirm this. If this needs to be changed, instead of moving the cables it's possible to achieve the same effect in software. See the channel mapping section below.
Next select a split to align the wall with using the spit button, e.g. 5x5 in the case of standard 25 channel installation. Click on a row (button A,B,C etc) to select a row to adjust, Use the slider on the left to move that row up or down relative to the rest. The same action is possible on columns (1,2,3 etc).
If the split is less than the maximum it will repeat. So for example, in the case of a split of 3 on a 5x5 wall, columns 4 and 5 will have the same video image and alignment as columns 1 and 2 respectively.
To completely erase the settings for all splits, use the Default button. To clear the current selected row or column and set it back the default use the Clear button.
When complete, the alignment can be saved in a Flash file on the processor using the Save button. A previously saved configuration can be restored using the Restore button.
As well as adjusting rows and columns, each monitor image can be moved slightly up/down/left/right by clicking on the specific monitor in the array. This is a global adjustment for that monitor independent of the split. These settings are saved at the same time as the row/column settings.
Channel mapping
The mapping of output channels to a position in the video wall array can be changed using the Channel Mapping feature.
To map a channel either click on the monitor you want to move then click on Swap, (or simply left click on the monitor). The selected monitor will be highlighted in yellow. Then right click on the monitor position you want it to occupy. The monitor positions will be swapped. The effect will be immediately visible on the videowall itself if a video image is being displayed.
Alternatively, to re-dimension the wall from it's normal default mapping wall use the Dimension button. This will automatically allocate the channels in rows and columns from a starting point. Click on a monitor to select this prior to clicking the Dimension button. For example the apparently odd mapping for a 5x5 wall can easily be changed to linear row/column count using this feature. When the Dimension button is pressed a further dialog box will appear allowing the row/column and split details to be entered.
The monitor mapping configuration is saved in a separate Flash file from the alignment settings, using the Save button in the channel mapping box. The mapping can also be copied to the cut/paste scratch pad, using the copy button. The mapping configuration can then be pasted into a text file as part of a sequence.
Channels can also be mapped dynamically as part of a timed sequence to create visual effects.
This dialog is used to set the Split (magnification). Click on a value in the X column to set the X and Y split. If an asymmetric split is desired select the Y split factor. X will remain unchanged
This dialog is available from the Alignment dialog.
The Array Dimension dialog allows the output channels to be mapped in bulk in regular arrays. The Dialog is selected by clicking on the Map button from the Monitor Alignment Dialog available from the main menu.
Before selecting the dialog box, select the monitor you want the new mapped array to start at e.g the top left hand monitor. This sets the array mapping origin. Alternatively the origin can be set using the Start Row and Start Column pull down menus.
The size of the mapped array can be set with the Width and Height pull-down menu.
The units to be used to supply the channels can be selected by checking the appropriate check box in the units group. Channels can be allocated in rows or columns by selecting the desired option in the Algorithm group. If more than one unit is selected and the "use complete rows/columns" option is checked, the channels will be mapped so that all the channels of the "allocate in" type are taken from the same unit.
Once set click OK. The mapping will take place on return to the Monitor Alignment dialog.
The Sequence Buttons Dialog box is available from the main menu "Buttons" or by right clicking in the main window client area.
The dialog box provides 10 tabbed pages of buttons which comprises a project. Each button is associated with a sequence file. The highlighted button in the action group determines what will happen if one of the buttons on the tabbed section is left clicked, using the mouse. If the button is right clicked a menu will appear presenting a set of actions, which is a shortcut way of performing an action on the sequence file associated with the button, if that action isn't selected. Right clicking on the space where a button could be placed presents a different menu to create a new button or paste a previously cut button.
The default action is to execute the Sequence file.
To create a new project - or select an existing project click on the Project button in the Action group. This will present a file open dialog box. Use this to either move to a suitable directory and enter the name of a new project, or navigate to a directory and click on an existing project then Open. Project files have the extension .EFX
See below on how to add buttons to the project
To execute the sequence, select the Run action and left click on the button.
To move a button, select the Cut action and click on the button. Left click on a spare button to place it. It is possible to change pages in this state. The Cut button will be remembered and can be pasted more then once. This only duplicates the button - there is still only one underlying sequence file.
To permanently delete a button select the Delete action and click on the desired button. This will only delete the button, not the associated sequence file.
To edit the sequence associated with the button click on Edit in the action group, then the desired button. If the sequence file exists it will be opened in the editor. If not a dialog box asking to create the file will be presented.
See below to rename the button, or associated file.
To exit from the dialog box click Done. If changes to the project have been made you will be prompted to save these changes. If this request is cancelled the button dialog will remain, If the answer is No, changes since the last save are lost.
To add buttons to the project click on New in the Action group. This will disable all existing buttons on the tab and show all the spare button positions. A different page can be selected in this state. Click on a spare button. A dialog box will appear allowing the name of the button and path to a sequence file to be entered. An open file dialog box can be used to locate the sequence file if Browse is selected. The sequence file does not have to exist at this point - the name of a new file can be entered. By convention the file should have the extension .SEQ
Alternatively, if a sequence file exists that you want to map to a button - from another project for example, open a Windows Explorer window (My Computer) and browse to the directory the file is located in. Left click on the file and drag it to the tabbed area and release the mouse button. This will "Drag and Drop" the file to the project. A button will be created using the MS-DOS 8.3 alias short form of the filename. This can be changed if required using the Rename action button.
Renaming a button is much the same as adding one. Select Rename from the Action group and left click on the button to rename it. The dialog box show below will appear, with the appropriate legend and filename values populated. These can be edited. When OK is pressed the new values will be saved.
Installing Sequences on the Processor
It is possible to download a sequence to the processor Flash memory and have it execute on the processor itself. Execution can be triggered using the Effects switch and Select button on the front of the processor - or by any other control device capable of sending ASCII characters at the correct speed and format (The default is 19200 bit/s, 8 Data bits, 1 Stop bit and no Parity).
To download a sequence in this way click on the install action then the button associated with the sequence. This will invoke the sequence compiler. If successful, the compiled sequence, now in a binary format, is downloaded to the Flash memory of the processor. The filename used is derived by the software from the PC filename - but this can be changed prior to downloading if required. The extension ".SFB" must be used for files to be executed by the processor. Files downloaded to the Flash memory can be managed using the Flash utility available from the main menu Flash option.
In a multi-processor installation, sequence files are only installed on processor 0. Messages in the sequence for other processors in the daisy chain are sent by unit 0 to the addressed processor. The slave processors behave in the same way as if they were being controlled by a remote PC.
It is possible to install sequences on processors other than unit 0 using the Remote Directory feature.
Executing a Sequence
When a sequence is run the software reads the lines of text from the file into memory and begins interpreting them. If an error is detected a dialog pops up indicating the error. At this point it is possible to select an option to open the file and go directly to the line causing the error.
The line number currently being executed is displayed. The time-code, relative to the time the sequence stared is also displayed. Since lines execute quickly it's only lines with a "wait" command the will be displayed in the line number box for a sustained period. At this point the Skip button will be enabled. To skip over the wait, click the skip button. Execution will continue until then next wait statement. To pause indefinitely click the Pause button. The name of the Pause button will change to Run. Click this Run button to resume execution.
To exit the sequence at any point click Stop.
If the Done button is clicked when a sequence is running it will be abandoned and the dialog box closed.
If the sequence contains a REM statement, the Tabbed page of buttons is replaced by a text window - REM statement text is displayed in this window. If REM statement does not cause the text window to appear and a button from the tabbed page of buttons is clicked, the current sequence is aborted and the new sequence selected runs.
Set Unit ID
A special macro value "_UNIT" is set to the value of the current unit ID (indicated by the IDx pane in the status line of the main window) at the start of a sequence. This value can be changed by selecting the unit ID from one of the file buttons in the "Unit ID" set.
A specific unit ID button will only be active if that unit has been enabled in the Setup dialog.
To use this value within a sequence, command macros must use the _UNIT value in place of the unit ID value in send commands, for example,
send 7 _UNIT 0
The value of _UNIT can be set within a sequence, for example,
set _UNIT = 1
FRAME STRUCTURE
The Serial RS-232 communications frame structure is common to both directions of transmission. Messages are delimited by start and end of message flags. The body of the frame comprises the control and address bytes the message (which is optional) and a single byte checksum.
SOM
Control
Address
Checksum
EOM
Frames not containing any message bytes are referred to as 'null' frames.
Characters received between EOM and SOM characters (i.e. un-framed) are ignored - unless the single character sequence file feature is invoked.
The start and end of messages are special character values that must not occur in the data bytes between them to ensure correct message framing. To achieve this a third value, the byte stuff character, (BSF) is used. This is also a unique character value that also must not appear as a data byte.
The byte values of these three special characters are:
SOM
0x7E
EOM
0x7D
BSF
0x7C
Byte transparency is achieved by replacing any of the three special characters that occur as data bytes with a two byte sequence headed by the BSF character. The second character is the character X-ORed with the 'smudge' character, 0x20, which prevents recognition by the receiver as a special byte. e.g. a data byte 0x7E is replaced with the byte pair: 0x7C,0x5E.
CONTROL BYTE
The control byte comprises two fields. The upper 4 bits are mode bits controlling the use of the addressing information. The lower 4 bits are the Device Address. In the receive direction (Processor to PC) the mode bits are not used. (Unused bits are marked in the table below with an dash) As a convention, unused bits should be set to zero, but receiving software should not reject messages if they are not.
Transmit Bits
7
6
5
4
3
2
1
0
M1
M0
-
0
A3
A2
A1
A0
Receive Bits
7
6
5
4
3
2
1
0
-
-
-
1
A3
A2
A1
A0
Device Address [ A3 to A0 ] Device Type
Device Address
Device Type
0 - 6 Reserved 7
Brick Processor
The two mode bits M1 and M0 allow for 4 addressing modes:
M1 M0 Addressing Mode 0 0 Normal Address 0 1 Response (Poll) 1 0 Global of type (A3 to A0) 1 1 Global all units.
ADDRESS BYTE
The address byte allows 256 devices of the type selected in the Control byte Device Address field to be individually addressed.
NORMAL ADDRESS MODE
In this mode, the address byte is used to select a specific device (one of 256), of the type set by the device address field in the control byte. Only one unique device will therefore act on the message.
RESPONSE (POLL) MODE
The message will be received by the addressed device in the same manner as the Normal Address mode, however the addressed device will respond with a return frame. If there is no message pending in the addressed device the response will be a null frame. Note this will be the reply from a previous message. If the device receives a POLL it will send the next message in the outgoing queue before processing the message. A null frame can be used to read the next message from the send queue without executing a command.
GLOBAL TYPE ADDRESS MODE
All devices of the type defined in the control bytes unit field will act upon this message. It is not possible to globally poll devices since more than one would respond and the messages collide. In this mode the address byte is redundant, but it is still sent to maintain a simple frame structure. By convention the address byte should be zero in this case.
GLOBAL ADDRESS MODE
This is similar to the previous case except that all devices of any type will act on the message. The usefulness of this mode is really restricted to generic commands such as 'RESET' and 'BAUDRATE'
CHECKSUM
The checksum is calculated by summing modulo-256, all of the bytes between the start and end of message characters, prior to the byte stuffing process, and subtracting this figure from zero. The receiver checks the received data by summing all the bytes following the start of message (after expanding the 'stuffed' bytes). When the end of message character is received the sum should be zero.
MESSAGE CONTENTS
The length of the message is not limited by the protocol. As described above, it can be of zero length for use in polling and null responses, where there is otherwise no data to transfer. The message format is the same for both directions of transmission, comprising a function code in the range 0 to 255 followed by an optional parameter list. The convention for parameters greater then 255 is least significant byte first.
Function codes are device specific and detailed in separate manuals for each device. The function codes from 0 to 15 are reserved for generic operations, such as returning software version numbers, which all devices support. In addition there are generic function codes to support extended addressing techniques for selecting multiple devices.
PROTOCOL VIOLATIONS
Any protocol violations should cause the current message to be abandoned. The receiver will revert to a mode waiting for the start of message character. If the violation was an out of sequence start of message character, a new message will be assumed. Message frames with checksum errors are ignored.
Although the BSF character would normally only precede a 'smudged' version of one of the 3 special byte codes, (SOM, EOM, BSF) the presence of any other character is not considered a violation. The 'un-smudging' process should be applied regardless of the 'smudged' character code provided it is not either SOM, EOM or BSF.
The Videowall control program includes a simple real-time sequence control language. Video effects are invoked using timed sequences of commands to the hardware. The language commands are held in standard ASCII text files. The sequence files may be created with the integrated editor or an external text editor/word processor.
Control commands are decoded and sent as messages to the hardware via the PC serial ports.
The control language uses a basic command and parameter list format. A simple line based macro processor is included.
The description of the commands uses a simple language notation. Optional parameters are contained in square brackets. A parameter which must be one of a set is indicated by the set enclosed in curly brackets, each parameter separated by a vertical bar. Numeric parameters are contained in angle brackets. Parameters are separated by commas.
Each line of the command file consists of either a blank line, a comment, or a command. Only one command may be invoked per line. Most commands are followed by a variable length list of parameters dependent on the command type.
Numeric parameters can be in either decimal, hex, or binary. Hex numbers may be represented in either the 'C' format as 0xnn or the 'assembler' format using a leading decimal digit and trailing 'H' Binary numbers are designated by a trailing 'B'. Any number may have leading zeros. Unlike 'C' this does not designate base 8. Hex numbers may use upper or lower case letters.
For example
Decimal |
255 |
16-bit Decimal |
&16430 |
Binary |
11111111B |
8-bit Hexadecimal |
0xFF, 0x0ff or 0FFH |
16-bit Hexadecimal |
&0x800F |
All commands and parameters should be delimited by a space, comma, or tab character. The default base may be changed using the RADIX command to any base from 2 to 16. Macros may be defined to substitute text strings with key words. Command words can be in either upper or lower case. Macros are case sensitive.
Examples are provided on the distribution disk which should be consulted to gain a further insight into the application of these commands.
Function codes are used in messages, sent to the processor with an optional set of arguments that vary for each function code. The are are preceded by the address of the device to which they are directed. i.e
SEND 7 0 FN_CODE p1 .. pn
SEND |
Builds and sends a message to the selected device. |
7 |
The device type for the BRICK processor |
0 |
The sub-address of the device type |
FN_CODE |
Command code, 0 to 255 binary |
p1 .. pn |
Optional parameters |
For example, to set the global split to 4x4…
SEND 7 0 40 4
Where 40 is the function code to set the split factor.
Some functions require 16 bit parameters. These can be created by preceding them with the '&' character. For example, to position the graphics cursor:..
SEND 7 0 85 &100 &100
String parameters are required by some functions. These are terminated with a zero character which must be done explicitly using send. For example:
SEND 7 0 FN_CODE "string" 0
The macro pre-processor can be used to make these message statements more human readable by defining names for stings of constants using the DEFINE and PROC commands, described below.
A number of pre-defined macro definitions are included in the file STD.INC. This must be located in the same directory as VideoWallControl.exe program. It is possible (but not recommended) to edit "STD.INC" to customise the names for function commands, for example to substitute words in another language.
For example, the sample command to set the split above has been defined as follows to make it easier to use.
SETSPLIT 4
Command messages have two attributes, immediate and sequence. Commands with the immediate attribute are executed when they are received. Commands that do not have this attribute are queued and execute when the current background task completes. If there is no background task they also execute immediately. This allows commands such as WIPE to be sent one after the other, without the next command being executed before the current command completes.
It is possible to change the immediate behaviour using the IMMEDIATE macro. A command sent after the IMMEDIATE command will act immediately regardless of its immediate attribute.
Commands with the sequence attribute will execute in downloaded sequence files. Commands without this attribute are commands that would normally be used with an external control program and could have a detrimental effect if executed locally within a downloaded sequence, e.g. RESET.
The following commands are implemented.
When compiling sequences to be downloaded to FLASH memory in the processor for stand alone operation, the compiler must adjust the number of video fields counted in ‘WAIT’ commands, to ensure that time delays are equivalent for both PAL (50 Hz) and NTSC (60 Hz) operation.
Normally, the appropriate sequence command ‘PAL’ or ‘NTSC’ is included at the beginning of the STD.INC file depending on the country where the system was purchased.
In the event that it is required to operate in PAL mode in an NTSC country, the user should create a version of STD.INC with the command ‘PAL’ substituted for the command ‘NTSC’, and vice-versa.
The command can be used in sequence files to switch mode if the input video standard is changed dynamically.
INCLUDE
The include command 'includes' text from another file in the current file. The command syntax is:-
INCLUDE { <filename.typ> | ["][d:][\path\]filename[.typ]["] }
The INCLUDE command has one parameter, either a filename in angle brackets or a conventional Windows filename. Quotes are optional on the conventional filename if it doesn't use spaces. Included filenames in angle brackets are expected to be in the same directory as the program.
Conventional filenames without the angle brackets can optionally have drive letters, path descriptions and file types.
Includes can be nested to a depth of 10. The nesting depth is the only method by which recursive includes are trapped. Files may be 'included' at any point in a command file.
The file STD.INC is a special case. If a file of this name is found in the current directory it will be included before the sequence file is executed.
SEND
The SEND command sends a single command to the processor. The send command expects at least 3 parameters. (See the hardware interface description for details of commands.) Command syntax is as follows:-
SEND <p1>,<p2>,<p3> [,<p4> .. <pN>]
The parameters p1 to pN are numbers in the range 0 - 255. A parameter from p4 onwards may be preceded by the '&' character to force it to occupy two bytes, LSB first.
The first 3 parameters common to all SEND commands are as follows.
p1 = Module type.
p2 = Module address.
p3 = Message function code.
Module type is a number with the following allocation,
0 - 6 : RESERVED
7 : BRICK PROCESSOR
The module address is a number from 0 to 255. A macro “_UNIT” may be used instead, which substitutes the currently selected unit address from the UNIT ID menu.
The message function code is decoded by the addressed module which executes the function using any parameters which follow.
The Brick series processors have no internal modules so requires only one sub-address. By default this is zero. If additional processors are used, e.g to provide full frame splits greater than 5x5, each processor needs to be allocated a unique address. If the processors are ordered with this intention, they will be supplied pre-configured.
Parameters p4 to pN are placed in the data bytes section of a message. An ASCII text string can be used in the parameter list.
Each character of the string will be converted to a number in the range 32..127 and used in the same way as numeric parameters.
GET
The GET command combines SEND with a poll for the reply. The command syntax is the same as SEND.
OUTPUT
The OUTPUT command is a lower level version of the SEND command. It will send any number of parameters supplied as bytes to the hardware (limited by the maximum line length) without formatting the data into a structured message.
Command syntax is...
OUTPUT <p1> [<p2> .. <pN>]
A parameter may be preceded by the '&' character to force it to occupy two bytes, LSB first. ASCII strings may be sent by enclosing them in double quotes, For example:
OUTPUT "PLAY",0x0D
WAIT
This is the primary time dependent command word. Parameters supplied determine whether the control program will wait for a set period, until the elapsed time since the start of the file, the absolute time or on reaching a time code for the selected video source.
Command syntax is as follows.
WAIT [FOR|ELAPSED] <time> [,<offset> [,<rate>]]
WAIT EVENT
The time parameter consists of
Value
Units
hh
Hours
mm
Minutes
ss
Seconds
dd
1/100 fractions of a second
ff
Fields
The time and offset are defined in 24 hour clock format, hours, minutes, seconds and optionally hundredths of a second if a dot is used to separate the seconds or fields if a colon or dash is used.
There are 50 fields (25 fames) per second for PAL and 60 fields (30 frames) per second for NTSC.
For example: 01:05:10.50 is 1 hour, 5 minutes, 10 seconds and 500 milliseconds.
If the processor was configured for PAL, the same time could be represented using,
01:05:10:25 or 01:05:10-25
Whereas for NTSC it would be,
01:05:10:30 or 01:05:10-30
The actual time is calculated by multiplying the rate and offset then adding this to the base time. (See also the PAL and NTSC commands.)
The default if no sub-command is supplied is the same as FOR.
The offset and rate are optional. These are mainly used in loops, for example:
REPEAT 9
SEND BRICK,0,EFFECT,P1,P2 ; Prime hardware with an effect
WAIT 0:0:10,0:0:1,@i ; Wait at time codes 0:0:10,0:0:11 etc.
AGAIN
The WAIT FOR subcommand will wait for the selected time on decoding the command. The wait condition can be terminated in advance by clicking on the "skip"button.
The WAIT ELAPSED subcommand will wait until the elapsed time from the start of the command file is greater than the time defined.
The WAIT EVENT subcommand can be used to pause the sequence waiting for an external event. For sequences executing directly on the PC this causes the sequence to halt . To continue, the Skip button can be pressed. To end the sequence press the Stop button. When compiled and executed on the Brick2 processor itself, the sequence will halt. The sequence will continue if the Select key on the front of the processor is pressed, or a connection is made between pins 2&3 on the Loop RS232 connector, for example using a contact closure provided by an external control device .
DEFINE
Macros can be defined, using the DEFINE command, which will be expanded on a line by line basis when encountered.
Command syntax is…
DEFINE NAME [=] text....
The macro NAME can have up to 16 characters. There is no restriction on the characters of the macro name apart from delimiters space, tab and comma. Macros are expanded as they are encountered in the input file by the command processor
except if they are parameters to a macro definition.
Macros must be defined before they can be used.
The macro text can comprise delimited parameters. A simple parameter substitution mechanism is provided. This allows up to 9 parameters in the text portion of the macro definition to be undefined. These are designated by a question mark followed by a decimal digit in the range 1 to 9.
Parameters following the macro name on expansion will be substituted in the order defined by the number following the question mark.
For example the macro defined like this…
DEFINE SWAP = ?2,?1
On expansion, will reverse the parameters supplied, so that for example…
OUTPUT SWAP 200,100
Expands to…
OUTPUT 100 200
Macros can be nested to any depth, but on expansion the line length must not exceed 132 characters.
FORGET
Macros and procedures can be deleted from the symbol table at any point in the file using the FORGET command. If previously defined macros depend on the macro that has been deleted they will cause errors on expansion later.
Command syntax is…
FORGET name
PROCEDURES
Procedures are similar to macros in many ways except that they span more than one line and may contain a number of commands. Up to 9 parameters can be passed to each procedure. The procedure is defined starting with the PROC keyword and terminates with the ENDPROC keyword. Both keywords must be on a separate line.
Command syntax is…
PROC name [p1 .. pn]
.
Commands
.
ENDPROC
Procedures can have up to 9 parameters. These can be used to substitute parameters to commands within the body of the procedure, or passed as further parameters to procedures calls within the procedure body, for example:-
PROC EFFECT start,middle,finish ; Procedure EFFECT with 3 parameters
SEND 7 0 1,2,start ; Use each parameter in turn for the
SEND 7 0 1,2,middle ; same basic command
SEND 7 0 1,2,finish
ENDPROC ; End of procedure
EFFECT 1,2,3 ; Execute procedure
EFFECT 4,5,6 ; Again with different arguments
The dummy arguments: 'start, middle, finish' define the number of parameters the procedure will accept. When the procedure is used the number of parameter arguments supplied is checked. If the wrong number of parameters is supplied an error message is displayed and execution stops.
REMARKS
The REM command allows remarks to be displayed on screen as the commands are sent to the processor. All the text following the REM statement is displayed on the screen. As soon as the macro expander recognises the REM command, macro expansion ceases.
In addition a number of escape codes are provided as follows.
@t Current system time.
@d Current system date.
@s File start time.
@e Elapsed time.
@f The current sequence file name.
@b Bell character.
Two further escape codes may be used in REM commands to show the two innermost loop counts generated by the REPEAT command.
@i Inner loop count
@j Second level loop count
REPEAT
Command syntax is.
REPEAT [FOREVER | <n>]
The REPEAT command marks the beginning of a program loop. REPEAT commands must be matched by a corresponding AGAIN or UNTIL command.
An optional loop count can be supplied. If a loop count is not supplied, FOREVER is assumed.
A loop can be terminated using a parameter to the UNTIL command even if it is started with a REPEAT FOREVER command, for example:-
REPEAT 20
.
Commands on any number of lines
.
AGAIN
Or...
REPEAT FOREVER
.
Commands in loop
.
UNTIL 00:20:00
REPEAT commands can be nested, for example:-
REPEAT ; Start of outer loop
REPEAT 20 ; Repeat a sequence 20 times
.
Commands ; Commands comprising the sequence
.
AGAIN ; Loop back to nearest REPEAT
UNTIL 0:0:10 ; Keep going until time is passed
Two special macros are provided which are converted to the current loop index when used. These special macros are @i and @j.
The following shows the format.
REPEAT 3
REPEAT 3
REM Loop = @j,@i
AGAIN
AGAIN
This double loop will display in a window the following messages…
Loop = 1,1
Loop = 1,2
Loop = 1,3
Loop = 2,1
(etc... until)
Loop = 3,3
These special macros can be used as parameters to macros and procedures.
AGAIN
This command marks the end of a looping program block. There are no parameters. See above REPEAT command.
UNTIL
The UNTIL command marks the end of a sequence loop. The loop is repeated conditionally with one of two conditions: ELAPSED, or LOOP. Command syntax is.
UNTIL [ ELAPSED [ TIME[ = ] ] hh:mm:ss[ {.dd|:ff|-ff} ] ]
UNTIL [ LOOP [TIME[ = ] ] hh:mm:ss[ {.dd|:ff|-ff} ] ]
ELAPSED TIME is followed by time parameters.
The loop will continue until the elapsed time since the start of execution of the file is greater than the time parameter.
UNTIL LOOP TIME is also followed by time parameters. This will loop until the elapsed time since the start of the
loop is greater than the supplied time parameter.
SPEED
This command can be used to change the baud rate of the serial communications port.
By default this is 19,200. If other devices are connected to the same port it is possible to send commands to them using the OUTPUT command to build the command messages and SPEED to select the correct transmission rate.
Command syntax is.
SPEED <rate>
The rate parameter can be any rate supported by a PC up to 19,200. Typical rates are as follows.
300, 600, 1200, 2400, 4800, 9600, 19200
The data format is. 8 data bits, 1 stop bit, with no parity.
POLL
Command syntax is.
POLL <card>,<address>
This command requests information from hardware in the output buffer. A higher level command "GET" will send a command and automatically poll for a response.
If the POLLed device has any data ready for transmission it will be returned on receipt of this command.
Devices will only have data if they have been sent a command previously requesting it.
If no data is ready a 'NULL POLL' message will be returned. There will be no displayed information in response to 'NULL POLL'
If the device addressed does not exist then after a short time-out period a message will be displayed showing that the POLL command failed.
Returned messages are defined in the device-specific documentation.
RADIX
Normally the SEND program uses decimal numbers by default. This may be changed using the RADIX command to any base from 2 to 16.
The base selection parameter is always in decimal regardless of the current radix.
Command syntax is.
RADIX <n>
For example to select HEX as the default base…
RADIX 16
EXIT IF
This command enables ‘include’ files to be 'included' more than once without causing re-definition errors, a conditional EXIT command is provided. Command syntax is:-
EXIT IF [ DEFINED ] symbol
If the symbol is already defined 'including' is abandoned and control continues from the 'calling' file.
For example:-
EXIT IF FRED
DEFINE FRED = 1
COMMENTS
Comments can be included either on a blank line or at the end of a command line by preceding the comment with a semicolon.
Commented lines must be less than the line maximum of 132 characters. Blank lines and spaces may be freely spread throughout a command file to improve readability.
Resets the addressed device.
All internal parameters are set to their power on reset state. The device configuration is derived from a combination of front panel switches and configurations stored in on-board Flash memory.
Parameters
Byte |
Parameter |
Comment |
Code |
RESET |
Function code = 00 |
BAUDRATE
Sets the baud rate for the addressed device serial communications.
On power-up or reset the processor baud rate is always set to 19200.
This command should be sent to all devices in the system to set a new communications rate.
Byte |
Parameter |
Comment |
Code |
BAUDRATE |
Function code = 01 |
1 |
0 |
1200 |
|
1 |
2400 |
|
2 |
4800 |
|
3 |
9600 |
|
4 |
19200 |
|
5 |
38400 |
|
6 |
300 |
|
7 |
19200 Default |
Resets the videowall digitiser, encoder and monitor alignment configuration from the saved values. This occurs naturally following a reset or power-up.
Byte |
Parameter |
Comment |
Code |
SETDEF |
Function code = 02 |
Causes the addressed device to place data in the output buffer containing the state of the card configuration switches.
The data is read using the 'POLL' command.
There are no parameters associated with this command.
Byte |
Parameter |
Comment |
Code |
GETCFG |
Function code = 03 |
Returned Data…
Byte |
Parameter |
Comment |
Code |
GETCFG |
Function code = 0 3 |
1 |
0..15 |
Hex switch 1 setting (Split) |
2 |
0..15 |
Hex switch 2 setting (Effects) |
Causes the addressed device to place data in the output buffer containing the firmware version.
The data is read using the 'POLL' command.
There are no parameters associated with this command.
Byte |
Parameter |
Comment |
Code |
GETRLS |
Function code = 04 |
Returned Data…
Byte |
Parameter |
Comment |
Code |
GETRLS |
Function code = 04 |
1 |
Major |
Version Number MAJOR |
2 |
Minor |
Version Number MINOR |
3 .. n |
ASCII Text Message |
Software release name |
Kill any background task currently executing
Byte |
Parameter |
Comment |
Code |
KILL |
Function code = 05 |
Set the unit identity. This is only required when multiple Brick units are used, for splits greater than 5x5 for example. If ordered at the same time units will be supplied with the ID already preset.
Byte |
Parameter |
Comment |
Code |
SETID |
Function code = 06 |
1 |
New ID |
Address 0 .. 255 |
2 |
Default split |
1 .. 8 |
3 |
Hardware mode |
0 |
4 |
X offset |
Horizontal location of first monitor |
5 |
Y offset |
Vertical location of first monitor |
The default split is applied on power up if the split front panel ‘Split’ switch is set to zero.
The hardware mode, X and Y offset values depend on the global split required and number of Brick units used. A standard unit i.e. for splits from 1x1 to 5x5 should have these values set to 0.
For non-standard configurations any non-zero values required for the hardware mode, X or Y offsets will be noted in the hardware specific documentation supplied.
Execute a held command. Used in multi-device applications. A hold command may be broadcast to all devices followed by a command to each device, which is held. Following a broadcast GO command all devices will execute the held command synchronously.
Byte |
Parameter |
Comment |
Code |
GO |
Function code = 07 |
Hold a command, pending a later GO command
Byte |
Parameter |
Comment |
Code |
HOLD |
Function code = 08 |
Force the next command to be executed immediately.
Byte |
Parameter |
Comment |
Code |
IMMEDIATE |
Function code = 09 |
VIDEO INPUT COMMANDS
These commands are used to change the video input configurations.
Each input can select either a Composite Video Input (via the BNC connectors) or S-Video via the S-Video connectors.
Byte |
Parameter |
Comment |
Code |
VIDEOINPUT |
Function code = 16 |
1 |
0 |
Video Input Channel 1 |
|
1 |
Video Input Channel 2 |
2 |
0 |
Composite Video Input 1 |
|
1 |
Composite Video Input 2 |
|
2 |
S-Video Input |
Byte |
Parameter |
Comment |
Code |
BRIGHTNESS |
Function code = 17 |
1 |
0 |
Video Input Channel 1 |
|
1 |
Video Input Channel 2 |
2 |
0 .. 255 |
Brightness |
Byte |
Parameter |
Comment |
Code |
CONTRAST |
Function code = 18 |
1 |
0 |
Video Input Channel 1 |
|
1 |
Video Input Channel 2 |
2 |
0 .. 255 |
Contrast |
Byte |
Parameter |
Comment |
Code |
SATURATION |
Function code = 19 |
1 |
0 |
Video Input Channel 1 |
|
1 |
Video Input Channel 2 |
2 |
0 .. 255 |
Saturation |
Byte |
Parameter |
Comment |
Code |
HUE |
Function code = 20 |
1 |
0 |
Video Input Channel 1 |
|
1 |
Video Input Channel 2 |
2 |
0 .. 255 |
Hue |
Byte |
Parameter |
Comment |
Code |
VIDEOSYSTEM |
Function code = 21 |
1 |
0 |
Video Input Channel 1 |
|
1 |
Video Input Channel 2 |
2 |
0 |
PAL |
|
1 |
NTSC |
|
2 |
SECAM |
Byte |
Parameter |
Comment |
Code |
FIELDRATE |
Function code = 22 |
Returns the current field rate +/- 1 field. For PAL/SECAM this will be 49,50 or 51 and for NTSC 59,60 or 61. If there is no input signal the value is indeterminate.
Sets the automatic colour system selection mode.
If set ON the Brick will detect the presence of an NTSC or PAL signal to Video Channel-1 and set the processor accordingly.
If set OFF, the processor will operate as configured regardless of the input system usually resulting in unpredictable operation if the input system is different from the configured system.
Byte |
Parameter |
Comment |
Code |
AUTOMODE |
Function code = 23 |
1 |
0 |
Off |
|
1 |
On |
Save video source settings in FLASH memory.
Saved settings are applied automatically on power-up or software reset.
Byte |
Parameter |
Comment |
Code |
SAVEINPUT |
Function code = 24 |
Reads the current video source settings for both channels.
Byte |
Parameter |
Comment |
Code |
READINPUT |
Function code = 25 |
Returned Data
Byte |
Parameter |
Comment |
Code |
READINPUT |
Function code = 25 |
1 |
Brightness |
Video Input Channel 1 |
2 |
Contrast |
Video Input Channel 1 |
3 |
Saturation |
Video Input Channel 1 |
4 |
Hue |
Video Input Channel 1 |
5 |
Brightness |
Video Input Channel 2 |
6 |
Contrast |
Video Input Channel 2 |
7 |
Saturation |
Video Input Channel 2 |
8 |
Hue |
Video Input Channel 2 |
9 |
Colour System |
Video Input Channel 1 |
10 |
Colour System |
Video Input Channel 2 |
11 |
Source |
Video Input Channel 2 |
12 |
Source |
Video Input Channel 2 |
13 |
Automode |
0 = disabled, 1 = enabled. |
These commands are used to change the video output configurations.
The video outputs can be configured for RGB, Composite Video, or disabled. All outputs channels will be set to the same configuration.
Colour Systems supported are PAL, NTSC or SECAM.
Byte |
Parameter |
Comment |
Code |
DISPLAYMODE |
Function code = 30 |
1 |
0 |
Composite |
|
1 |
S-Video |
|
2 [ Future ] |
Dual Composite [ Not supported currently ] |
Byte |
Parameter |
Comment |
Code |
RDMONST |
Function code = 31 |
1 |
Monitor |
0 .. 24 |
Returned Data = state information on one video output channel (display monitor).
Byte |
Parameter |
Comment |
Code |
RDMONST |
Function code = 31 |
1 |
0 |
Video source A - magnified by split |
|
1 |
Video source B - not magnified (x1) |
|
2 |
Wash |
|
3 |
Colour Bars |
2 |
Wash Y |
Colour wash values in YUV format |
3 |
Wash U |
|
4 |
Wash V |
|
5 |
Wash R |
Colour wash values in RGB format |
6 |
Wash G |
|
7 |
Wash B |
|
Save the current video output settings in a file in FLASH memory.
These settings will automatically be applied on power-up or reset.
Byte |
Parameter |
Comment |
Code |
SAVEOUTPUT |
Function code = 34 |
This command reads back the current video output settings. The returned parameter corresponds to byte 1 of function 30.
Byte |
Parameter |
Comment |
Code |
READOUTPUT |
Function code = 35 |
Returned data.
Byte |
Parameter |
Comment |
Code |
READOUTPUT |
Function code = 35 |
1 |
0 |
Composite |
|
1 |
S-Video |
|
2 [ Future ] |
Dual Composite [ Future ] |
2 |
0 |
Off |
|
1 |
On |
3 |
Vertical offset |
|
4 |
Horizontal offset |
|
5 |
Number of Monitors |
16 or 25 |
6 |
0 |
Pixel Filter Off |
|
1 |
Pixel Filter On |
|
2 |
Pixel Filter intermediate |
Move a vertical column of monitor images left or right. The offset is specified in pixels but is actually only possible in increments of magnified pixels.
Byte |
Parameter |
Comment |
Code |
ALIGNH |
Function code = 36 |
1 |
Column |
0 .. 4 |
2 |
Offset |
Signed byte |
Move a horizontal row of images up or down. The offset is specified in pixels but is actually only possible in increments of magnified lines.
Byte |
Parameter |
Comment |
Code |
ALIGNV |
Function code = 37 |
1 |
Row |
0 .. 4 |
2 |
Offset |
Signed byte |
Saves the current alignment settings in a file in FLASH memory in the processor.
These settings will be applied automatically on power-up or reset.
Byte |
Parameter |
Comment |
Code |
SAVEALIGN |
Function code = 38 |
Reads back the current alignment settings.
Byte |
Parameter |
Comment |
Code |
READALIGN |
Function code = 39 |
Returned Data.
Byte |
Parameter |
Comment |
Code |
READALIGN |
Function code = 39 |
1 |
Row 1 |
Signed byte |
2 |
Column 1 |
|
1 |
Row 2 |
|
2 |
Column 2 |
|
3 |
Row 3 |
|
4 |
Column 3 |
|
5 |
Row 4 |
|
6 |
Column 4 |
|
7 |
Row 5 |
|
8 |
Column 5 |
|
These commands are commonly used to assemble sequences of effects.
Set the split factor. This will magnify the image by the factor.
For example a split of 2 on a 4x4 array will result in four identical 2x2 images.
The vertical and horizontal shift parameters are optional. If supplied and set to 1 they cause the image to be offset by half a monitor size. In the case of a vertical shift this moves the image up. A horizontal shift move the image to the left.
A typical application of this function is to position a ‘letter box’ source across a subset of monitors, e.g. a 4x4 magnified image on a 4x3 videowall.
The command to achieve this would be…
SETSPLIT 4 1 0
Byte |
Parameter |
Comment |
Code |
SETSPLIT |
Function code = 40 |
1 |
Split |
1 to 8 |
2 |
0 = No shift 1 = Shift |
Optional Vertical shift |
3 |
0 = No shift 1 = Shift |
Optional Horizontal shift |
Set an asymmetric split. This command is similar to SETSPLIT but the horizontal and vertical magnifications can be different. No monitor shifts are supported by this command.
For example to set a horizontal split of 4 and a vertical split of 1 (vertically squashed image)…
ASPLIT 4 2
Byte |
Parameter |
Comment |
Code |
ASPLIT |
Function code = 100 |
1 |
Horizontal Split |
1 to 8 |
2 |
Vertical Split |
1 to 8 |
Set the colour wash for a given monitor or all monitors simultaneously.
The command will have no direct visual effect unless a wash is already selected on a given display monitor. When a monitor display mode is set to WASH the colour set with this command will be applied.
If a wash is currently displayed the on-screen colour will be updated.
Byte |
Parameter |
Comment |
Code |
WASHCOLOUR |
Function code = 41 |
1 |
Monitor |
0 .. 15 or 255 for all monitors |
2 |
Red Intensity |
0 .. 255 |
3 |
Green Intensity |
0 .. 255 |
4 |
Blue Intensity |
0 .. 255 |
This command sets the pixel intensity mode to normal and is normally used following a pixel intensity video effect command such as SOLARISE, NEGATIVE, Etc.
Byte |
Parameter |
Comment |
Code |
NORMAL |
Function code = 96 |
1 |
0 |
0 = Normal Video |
This command sets the pixel intensity mode to truncate the lower 5 bits to give the video a halo appearance.
Remove using the NORMAL command (Function 96).
Byte |
Parameter |
Comment |
Code |
SOLARISE |
Function code = 96 |
1 |
1 |
1 = Solarised Video |
This command sets the pixel intensity mode to a negative image.
Remove using the NORMAL command (Function 96).
Byte |
Parameter |
Comment |
Code |
NEGATIVE |
Function code = 96 |
1 |
2 |
2 = Negative Video |
This command sets the pixel intensity mode to a highlighting effect.
Remove using the NORMAL command (Function 96).
Byte |
Parameter |
Comment |
Code |
DAZZLE |
Function code = 96 |
1 |
4 |
4 = Dazzle Video |
This command sets the display mode for a given monitor.
Byte |
Parameter |
Comment |
Code |
DISPLAY |
Function code = 42 |
1 |
Monitor |
0 .. 24 or 255 for all monitors |
2 |
0 |
Video source A - magnified by split |
|
1 |
Video source B - not magnified (x1) |
|
2 |
Wash |
|
3 |
Colour Bars – for test purposes |
This command freezes (or un-freezes) the primary frame store and affects all monitors displaying a magnified picture.
The frozen image can be either a single field or a full frame (interlaced image).
Byte |
Parameter |
Comment |
Code |
FREEZE |
Function code = 44 |
1 |
OFF |
0 = Unfreeze - Full Motion Video |
|
ODD |
1 = Freeze odd field |
|
EVEN |
2 = Freeze even field |
|
BOTH |
3 = Freeze both fields |
This command freezes (or un-freezes) the primary frame store and affects all monitors displaying a magnified picture.
The frozen image can be either a single field or a full frame (interlaced image).
The strobe effect is a fundamental attribute of the video image, and does not use a background process to achieve the effect. Therefore all of the other effects can be used in conjunction with a strobed image.
Byte |
Parameter |
Comment |
Code |
STROBE |
Function code = 45 |
1 |
Speed |
0 - 255, Increasing number = Decreasing Speed. 0 = strobe off |
Sets the global operation to text mode. This is equivalent to non-interlaced.
Text will flicker if displayed in interlaced mode due to the strong horizontal components in the image.
Byte |
Parameter |
Comment |
Code |
TEXTMODE |
Function code = 46 |
1 |
OFF |
0 = Interlaced |
|
ON |
1 = Text mode (non-interlaced) |
When interlaced mode is selected it is possible to set the number of magnified lines between fields for each split factor. Under some conditions it is possible to improve the visual impact by adjusting this offset.
WARNING - if the interlace offset is set to an illegal value for a given split factor, the display will flicker strongly at the field rate and will not be acceptable.
Byte |
Parameter |
Comment |
Code |
IOFFSET |
Function code = 48 |
1 |
Split 1..4 |
Split factor |
2 |
Offset +/- N |
Signed offset |
Using this command it is possible to create an arbitrary set of monitors which will respond to global commands. This reduces the number of messages necessary to achieve a given effect.
By default all monitors are selected.
It remains possible to directly access a specific monitor by its address.
Byte |
Parameter |
Comment |
Code |
SELECTMON |
Function code = 47 |
1 |
Flag [ Monitor 0 ] |
1 = Selected, 0 = Deselected |
2 |
Flag [ Monitor 1 ] |
1 = Selected, 0 = Deselected |
3 |
Flag [ Monitor 2 ] |
1 = Selected, 0 = Deselected |
4 |
Flag [ Monitor 3 ] |
1 = Selected, 0 = Deselected |
5 |
Flag [ Monitor 4 ] |
1 = Selected, 0 = Deselected |
6 |
Flag [ Monitor 5 ] |
1 = Selected, 0 = Deselected |
7 |
Flag [ Monitor 6 ] |
1 = Selected, 0 = Deselected |
8 |
Flag [ Monitor 7 ] |
1 = Selected, 0 = Deselected |
9 |
Flag [ Monitor 8 ] |
1 = Selected, 0 = Deselected |
10 |
Flag [ Monitor 9 ] |
1 = Selected, 0 = Deselected |
11 |
Flag [ Monitor 10 ] |
1 = Selected, 0 = Deselected |
12 |
Flag [ Monitor 11 ] |
1 = Selected, 0 = Deselected |
13 |
Flag [ Monitor 12 ] |
1 = Selected, 0 = Deselected |
14 |
Flag [ Monitor 13 ] |
1 = Selected, 0 = Deselected |
15 |
Flag [ Monitor 14 ] |
1 = Selected, 0 = Deselected |
16 |
Flag [ Monitor 15 ] |
1 = Selected, 0 = Deselected |
17 |
Flag [ Monitor 16 ] |
1 = Selected, 0 = Deselected |
18 |
Flag [ Monitor 17 ] |
1 = Selected, 0 = Deselected |
19 |
Flag [ Monitor 18 ] |
1 = Selected, 0 = Deselected |
20 |
Flag [ Monitor 19 ] |
1 = Selected, 0 = Deselected |
21 |
Flag [ Monitor 20 ] |
1 = Selected, 0 = Deselected |
22 |
Flag [ Monitor 21 ] |
1 = Selected, 0 = Deselected |
23 |
Flag [ Monitor 22 ] |
1 = Selected, 0 = Deselected |
24 |
Flag [ Monitor 23 ] |
1 = Selected, 0 = Deselected |
25 |
Flag [ Monitor 24 ] |
1 = Selected, 0 = Deselected |
This function will draw a test pattern on the display using the graphics facilities. Each monitor has two diagonal lines drawn from opposite corners and a circle with the channel number in the centre.
The channel numbers are written using the font “TEST.FNT”. If this file is not present in FLASH sector 4, the test pattern will still be drawn but no channel numbers will be displayed.
Byte |
Parameter |
Comment |
Code |
TESTPATTERN |
Function code = 51 |
1 |
0 |
Use field 0 |
|
1 |
Use field 1 |
2 |
0 |
Use current split |
|
1 |
Draw for split = 1 |
|
2 |
Draw for split = 2 |
|
3 |
Draw for split = 3 |
|
4 |
Draw for split = 4 |
|
5 |
Draw for split = 5 |
This command provides wipes between a graphics colour mask (similar effect to a WASH) and video. It also wipes between the two video sources.
Byte |
Parameter |
Comment |
Code |
WIPE |
Function code = 52 |
1 |
0 |
Right |
|
1 |
Left |
|
2 |
Down |
|
3 |
Up |
|
4 |
In (Iris) |
|
5 |
Out (Iris) |
2 |
0 |
Wipe to source A |
|
1 |
Wipe to source B |
|
2 |
Wipe to graphics colour |
3 |
Speed |
Range 1 - 255, increasing speed, 0 = Instant |
The second video input source is processed internally using time base correction (TBC) to synchronise it to the main video input source. This allows correct display of two video sources which are not externally synchronised.
The TBC is selected to store alternate fields or every field.
Use this command to reduce interlace flicker on the second source.
Byte |
Parameter |
Comment |
Code |
TBCALT |
Function code = 55 |
1 |
0 |
OFF |
|
1 |
ON |
When TBC MODE (see below) is set to quarter size, this command sets the monitor quadrant in which the window is displayed.
Byte |
Parameter |
Comment |
Code |
TBCWINDOW |
Function code = 56 |
1 |
0 |
Top Left |
|
1 |
Top Right |
|
2 |
Bottom Left |
|
3 |
Bottom right |
This command enables and disables display of the second source in full screen or quarter screen mode as set by the command TBC MODE.
Byte |
Parameter |
Comment |
Code |
TBCENABLE |
Function code = 57 |
1 |
0 |
OFF |
|
1 |
ON |
The second source is selected to fill the screen, or a quarter of the screen.
When quarter screen mode is selected, the source will appear to have a coarse appearance due to the dropping of alternate vertical and horizontal input pixels.
Byte |
Parameter |
Comment |
Code |
TBCSIZE |
Function code = 58 |
1 |
0 |
Full Screen |
|
1 |
Quarter Screen |
The second video input source can be frozen independently of the main video input source.
Byte |
Parameter |
Comment |
Code |
TBCFREEZE |
Function code = 59 |
1 |
0 |
OFF |
|
1 |
ON |
Zooms the magnified image to a centre image position specified.
The screen has the same logical co-ordinates as used with graphics commands of 380x300 pixels.
Only one Zoom factor of 50% is currently supported.
Byte |
Parameter |
Comment |
Code |
ZOOM |
Function code = 101 |
1 |
X position low byte |
|
2 |
X position high byte |
|
3 |
Y position low byte |
|
4 |
Y position high byte |
|
Bounces a zoomed image within a box set by the BLIMIT command
Byte |
Parameter |
Comment |
Code |
BOUNCE |
Function code = 103 |
1 |
Rate |
Range 1 to 5 |
Set the bounce limits.
The BLIMIT command sets the boundary of a box within which a zoomed image is bounced.
The command may be applied when an image is already bouncing on screen if preceded by the IMMEDIATE command.
The speed of the bouncing image can be updated with the rate parameter, which is the same as that used with the BOUNCE command.
If the rate is 0xFF, the current bounce rate is used.
The default values are the edge of the screen, i.e. for PAL x1 = 0, x2 = 360, y1 = 0, y2 = 288.
Byte |
Parameter |
Comment |
Code |
BLIMIT |
Function code = 99 |
1 |
X1 low byte |
Left Limit |
2 |
X1 high byte |
|
3 |
X2 low byte |
Right Limit |
4 |
X2 high byte |
|
5 |
Y1 low byte |
Top Limit |
6 |
Y1 high byte |
|
7 |
Y2 low byte |
Bottom Limit |
8 |
Y2 low byte |
|
9 |
Rate |
1 to 5 or 0xFF to use the current value |
Display duplicated small images. This is the opposite of magnification.
The minification factor sets the number of images in each row/column. A factor of 2 for example puts four replicated images on each monitor.
Byte |
Parameter |
Comment |
Code |
MINIFY |
Function code = 104 |
1 |
Minification factor |
1 - 16 |
Sets the overscan limits of minified images. This masks the edge of the image which is not normally visible since it would be in the overscaned part of the display outside of the visible part of the image.
It can also be used to increase the gaps between the minified images to simulate the physical gaps between monitors in a conventional videowall.
The mask is applied when the MINIFY command is issued. To change the mask on screen it is necessary to send the updated limits with SLIMIT and then repeat the MINIFY command.
The colour of the masked area is that set with the COLOUR command (function code 89). In order to apply this colour the masked area needs to be cleared using the CLEARSCREEN command (function code 94).
Typical values SLIMIT would be x1 = 0, x2 = 350, y1 = 5, y2 = 287.
Byte |
Parameter |
Comment |
Code |
SLIMIT |
Function code = 99 |
1 |
X1 low byte |
Left Limit |
2 |
X1 high byte |
|
3 |
X2 low byte |
Right Limit |
4 |
X2 high byte |
|
5 |
Y1 low byte |
Top Limit |
6 |
Y1 high byte |
|
7 |
Y2 low byte |
Bottom Limit |
8 |
Y2 high byte |
|
For example…
COLOUR 0 0 0 ; Set colour in RGB colour space to black
CLEARSCREEN ; Set overscan area to colour
SLIMIT 0 350 5 287 ; Set blanked overscan area
MINIFY 2 ; Display four minified images
Clears the overscan area to the colour set using the COLOUR command.
Byte |
Parameter |
Comment |
Code |
CLEARSCREEN |
Function code = 94 |
Any wash colour associated with each monitor is incremented/decremented by the signed R,G,B amounts specified, approximately once per video field. Repeating for each of R,G,B until either the maximum or minimum value is reached, when the direction for that colour reverses.
To terminate a colour wash cycle send the KILL command.
Other commands can be executed while a colour cycle is in progress, but will need to be preceeded by the IMMEDTATE command. If not they will be queued for deferred execution, and then lost when the KILL command is received.
Byte |
Parameter |
Comment |
Code |
CLRCYCLE |
Function code = 105 |
1 |
R speed low byte |
Signed Red cycle rate +/- 32 |
2 |
R speed high byte |
|
3 |
G speed low byte |
Signed Green cycle rate +/- 32 |
4 |
G speed high byte |
|
5 |
B speed low byte |
Signed Blue cycle rate +/- 32 |
6 |
B speed high byte |
|
The following commands are used to initiate sequences which have been downloaded to the processor FLASH memory using the download menu command.
This command executes a sequence which has previously been downloaded to processor and stored in FLASH memory.
The file 2:$IRMAP.TXT in the FLASH memory maps the front panel ‘Effect’ switch to sequence file names. The ‘Effect’ switch returns codes 0 to 15 when the ‘Select’ button on the front panel is pressed.
Other codes can be used to map files to be invoked by this function over the RS-232 control link.
Sequence files can always be executed by name using Function 77.
Byte |
Parameter |
Comment |
Code |
IRSEQ |
Function code = 75 |
1 |
Key-code |
ASCII key-code |
The reason for termination of a sequence file can be determined using this command.
A non-zero condition indicates either an error or forced termination using Function code 79.
Errors usually occur because a dependent file is missing, e.g. if the INCLUDE command is used and the file does not exist, or the file name has been entered incorrectly.
Sequences will also terminate if recursive loops are used causing too many files to be opened for example.
Byte |
Parameter |
Comment |
Code |
SEQERR |
Function code = 76 |
Returned Data.
Byte |
Parameter |
Comment |
Code |
SEQERR |
Function code = 76 |
1 |
0 |
Normal termination |
|
1 |
Stopped by user (FN 79) |
|
2 |
Error reading FLASH |
|
3 |
Error opening FLASH file |
|
4 |
FLASH file seek error |
|
5 |
Illegal function |
|
6 |
Function code unsupported |
|
7 |
Include name |
|
8 |
Include open |
|
9 |
Include depth |
Executes a sequence file by name.
Sequence files are stored by default in FLASH Sector 3.
Byte |
Parameter |
Comment |
Code |
RUNSEQ |
Function code = 77 |
1 |
FLASH Sector |
1 .. 5 (typically 3) |
2 |
Character string |
First character |
N-1 |
|
Last character |
N |
0 |
String termination (null) |
Byte |
Parameter |
Comment |
Code |
READSEQ |
Function code = 78 |
Returned Data.
Byte |
Parameter |
Comment |
Code |
READSEQ |
Function code = 78 |
1 |
FLASH Sector |
1 .. 5 (typically 2) |
2 |
Character string |
First character |
N-1 |
. |
Last character |
N |
0 |
String termination (null) |
Byte |
Parameter |
Comment |
Code |
STOPSEQ |
Function code = 79 |
A limited set of graphics functions are provided. These write pixels directly to the common video frame store. It is therefore necessary to freeze the image.
Two graphics pages are provided equivalent to the even and odd video fields.
Each page has a set of independent drawing variables:
· Drawing colour
· Cursor (X,Y)
· Font
When page 1 is displayed, page 2 is accessible using the drawing functions and vice-versa.
Both pages can be displayed sequentially as an interlaced full frame picture. This is not generally recommended as this can introduce a strong flicker.
The frame store holds images in YUV colour space format.
Colours can be specified either in RGB or YUV format.
The nominal displayed image is 720x288 pixels with a 50Hz field rate (PAL/SECAM) or 720x240 at 60Hz (NTSC). In practice the horizontal pixel range is halved (360) to simplify access to the video memory which is in YUV 4:2:2 format. Some additional vertical over scan is provided which extends the vertical range to 300. The accessible range for graphics functions is therefore 360x300. The actual displayed range depends on the frame rate and amount of over scan on the display monitors. At 360x300 resolution pixels are roughly square.
Text messages in any colour can be displayed over the frozen image. The fonts used are loaded in FLASH memory.
The font files are present in FLASH Sector 4.
Bit mapped graphics files in two colour '.gif' format, held in the FLASH memory, can be copied into the video frame buffer. This feature is useful for displaying small graphic images e.g. company logos.
Initialises the graphics system page variables as follows:
Cursor X,Y : 0, 0
Font : None
Colour : White
Byte |
Parameter |
Comment |
Code |
INITGX |
Function code = 80 |
Selects the graphics page. The Freeze function (44) can be used to the same effect.
Byte |
Parameter |
Comment |
Code |
PAGE |
Function code = 81 |
1 |
1 |
Page 1 |
|
2 |
Page 2 |
Selects the current font for the selected page. Several fonts are provided as standard, and other fonts can be downloaded to FLASH if required.
The font for each drawing on each page must be selected independently.
Byte |
Parameter |
Comment |
Code |
FONT |
Function code = 82 |
1 |
1 |
Page 1 |
|
2 |
Page 2 |
2 |
Character string |
First character |
N-1 |
|
Last character |
N |
0 |
String termination (null) |
Prints a text string at the current cursor location in the current font in the current drawing colour. For example…
SEND 7 0 FN_PRINT “Message” 0
Byte |
Parameter |
Comment |
Code |
|
Function code = 83 |
1 |
Character string |
First character |
N-1 |
. |
Last character |
N |
0 |
String termination (null) |
Draws a line in the current drawing colour to location X,Y from the current cursor location (See also DRAW LINE RELATIVE).
The current cursor location is updated to X,Y.
If the specified location is outside the drawing area no line is drawn and the cursor remains at the current location.
For example…
SEND 7 0 FN_LINETO &100 &50
Byte |
Parameter |
Comment |
Code |
LINE |
Function code = 84 |
1,2 |
X |
X location (0..359) |
3,4 |
Y |
Y location (0..299) |
Moves the cursor to location X,Y if it is within the drawing page limits. See also Function 87.
Byte |
Parameter |
Comment |
Code |
CURSOR |
Function code = 85 |
1,2 |
X |
X location (0..359) |
3,4 |
Y |
Y location (0..299) |
Draws a line from the current cursor position to a location relative to the current cursor if the new location is within the drawing limits.
Byte |
Parameter |
Comment |
Code |
RLINE |
Function code = 86 |
1,2 |
DX |
X offset (+/- 359) |
3,4 |
DY |
Y offset (+/- 299) |
Moves the cursor to a location relative to the current cursor location. See also Function 85.
If the new location is outside the drawing limits the cursor location is not changed.
Byte |
Parameter |
Comment |
Code |
RCURSOR |
Function code = 87 |
1,2 |
DX |
X offset (+/- 359) |
3,4 |
DY |
Y offset (+/- 299) |
The currently selected page is filled with the current drawing colour.
Byte |
Parameter |
Comment |
Code |
FILL |
Function code = 88 |
Sets the current drawing colour using the RGB colour format.
This is converted to the internal YUV colour format.
Byte |
Parameter |
Comment |
Code |
COLOUR |
Function code = 89 |
1 |
Red |
Red component 0..255 |
2 |
Green |
Green component 0..255 |
3 |
Blue |
Blue component 0..255 |
Plots a two colour (1-bit) bitmap. Pixels in the file set to ‘1’ are written as the current drawing colour. Pixels set to ‘0’ are unchanged. For example…
SEND 7 0 90 5 “LOGO.gif” 0
Byte |
Parameter |
Comment |
Code |
BITMAP |
Function code = 90 |
1 |
Sector |
FLASH Sector 1..5 |
2 |
Character string |
First character |
N-1 |
|
Last character |
N |
0 |
String termination (null) |
BMP files can be loaded into FLASH memory using the Remote Directory dialog. Names of files stored in FLASH memory are case sensitive.
To plot pictures with multiple colours, use a photo editor or similar package to separate the colours in your multiple colour bitmap into separate 1-bit bitmap files and download them separately into the processor.
Use multiple bitmap commands to overlay them on the display (bitmap commands overwrite previous bitmaps).
Draws an ellipse centred on the current cursor location.
The horizontal distance from the centre is specified by DX and the height from the centre by DY.
The cursor remains unchanged.
Byte |
Parameter |
Comment |
Code |
ELLIPSE |
Function code = 91 |
1,2 |
DX |
X Radius (0..180) |
3,4 |
DY |
Y Radius (0..150) |
Draws a filled rectangle at the current cursor of length DX and depth DY. The cursor is updated. If the rectangle extends beyond the drawing limits it is not displayed and the cursor is unchanged.
Byte |
Parameter |
Comment |
Code |
RECTANGLE |
Function code = 92 |
1,2 |
DX |
X length (1..360) |
3,4 |
DY |
Y length (1..300) |
Sets the current drawing colour using the YUV colour space as defined in CCIR 601.
Byte |
Parameter |
Comment |
Code |
YUVCOLOUR |
Function code = 93 |
1 |
Y |
Y component 0..255 |
2 |
U |
U component 0..255 |
3 |
V |
V component 0..255 |
A text editor based around a standard windows edit control is provided as part of the application.
When used to edit files from the Flash memory on the Processor the New, Open, Save and Save As options are not available currently. On exit the Flash file will be updated. Very few plain text files are used normally in the Flash filing system.
To search for text in a file using the editor, enter the text in the Find field.
Click "Find next" to search from the current cursor location. If the "Match case" check box is ticked the text must have the same upper and lower case. If "Match whole word" is ticked the matched text must be surrounded by white space.
Go to Line Number
To position the cursor on a specific line, enter the line number and click OK
![]() ![]() ![]() |
Remote Directory (Flash Memory) |
The processor includes a Flash memory filing system. This comprises 5 sectors each of nominally 64k bytes. The sectors numbers are shown on tabs in the Remote Directory dialog.
Each sector is assigned a specific role and holds files of type appropriate to that role. The file format is the same for all sectors and any file can be copied from the PC into any sector provided there is sufficient space. The Processor firmware expects certain files to be in the nominated sectors though, particularly sectors 1, 2 and 3.
Sector Use Comment 1 System Holds the firmware in file: SYSTEM.COM 2 Configuration Various configuration files created by "Save in Flash" buttons in the control software 3 Sequence Compiled sequence files (.SFB) 4 Font Downloadable fonts used with the graphics feature 5 General Any user files - e.g. bitmaps
Files in the flash filing system use the MS-DOS 8.3 naming convention, though in practice they are actually 12 characters in length, and could have a 12 character name with no extension. Filenames are case sensitive.
The various action buttons (Run, Stop, Delete etc.) are highlighted when a file is selected. Only actions relevant to the file type are highlighted. This requires files to keep to the naming convention:-
Type
Format
Comment
Executable
filename.COM
SYSTEM.COM in sector 1 is generally the only .COM file.
Binary Sequence File
filename.sfb|SFB
The run button is valid, .SFB has higher precidence than $...
Text file
filename.txt|TXT
Plain text file, can be edited
Text file
$filename
Plain text configuration file, can be edited
All other file types are considered binary files that cannot be edited or run as a sequence.
Any sequence file can be nominated as an initial (start-up) sequence. This sequence will run when the processor is reset or powered-up. Clicking the Initial sequence when a valid filename is selected will cause the software to copy the sequence file to sector 2 and call it $START,SFB. To remove the start-up sequence simply delete this file.
The flash memory cannot be erased byte by byte, instead the whole 64K sector has to be erased. Therefore when a file is deleted the free space is not released immediately. When a file is downloaded from the PC, if there is not enough free space a 6th hidden sector is used. Un-deleted files are copied to this sector which is then re-assigned the old sector number. The old sector is formatted ready to be used again. The new file is then copied to the new sector with free memory. This process can be invoked without downloading a file using the Restore button.
Sequence files can be copied as conventional files from the PC to the Flash memory. Sequence files are initially plain text files with the extension .SEQ. These need to be compiled using Sequence/Compile option from the main menu to create a .SFB file (sequence file binary) which the processor executes. Alternatively, a .SEQ sequence file associated with a sequence button can be compiled and downloaded automatically by selecting the install action and clicking on the button.
A sequence file can be mapped to single ASCII character over the RS-232 link using the Map button.
Files may be copied from the PC to a Flash sector by either dragging and dropping the file - or by clicking on the download button. To copy a file from the Flash sector to the PC, click on the file to fill in the Filename box, then Upload. The file will be copied to memory in the PC and a save dialog presented. Enter the corresponding PC filename in this dialog box to complete the process.
Flash filenames nominally use the MS-DOS 8.3 format. In practice they are free form filenames with a maximum length of 12 characters. Since dot is valid filename character the 8.3 format can be accommodated.
Flash filenames can use any printable ASCII character.
Certain processor firmware features require a specific file format. In particular binary sequence files must end with .SFB or .sfb This will be done automatically by the software unless files are downloaded directly to the Flash filing system - or renamed.
The Key Character dialog is invoked from the Flash memory dialog by clicking the Map button. This allows a binary sequence file (type .SFB) to be mapped to a specific ASCII character code. When a character with this code is received by the processor over it's RS-232 interface, not encapsulated between SOM and EOM characters, the sequence mapped will be executed.
The character code can be entered as either an ASCII character or a code - e.g. ASCII A is the same as 65 decimal. If a character is entered in the Key character field and the radio buttons toggled between modes, the value in the field will change appropriately. Non-printable ASCII code values will cause the field to be cleared when ASCII is selected.
Values 124 (0x7c), 125 (0x7D) and 126 (0x7E) cannot be used as these are used by the framed protocol and will be interpreted as such.
When OK is pressed a mapping file is read from the processor updated and written back to the Flash memory. The file is called $IRMAP.TXT located in Flash sector 2. This file can be edited manually using the Edit button of the Remote Directory (Flash) dialog. A copy of the $IRMAP.TXT file can be copied from the PC to sector 2 by dragging and dropping the file - or by clicking download and selecting the file in the Open File dialog.
Deleting $IRMAP.TXT removes all key mapping. To delete a specific key mapping, select Flash sector 2, click on $IRMAP.TXT and then the Edit button. Locate the line with the specific key to be deleted and delete that line. On exit from the editor, the file will be updated.
If $IRMAP.TXT does not exist it will be created if a character is mapped using the Key Character dialog method.
Sequences saved in Flash memory may be mapped to so that they will execute on start-up based on the position of the Effects switch on the processor front panel. Up to 16 start-up sequences can be mapped like this.
To map a sequence to setting 0, see the Remote Directory Initial Sequence feature.
For settings from 1 to 15 the sequence needs to be mapped to an ASCII character of the same number. Use the Key character feature described above using the decimal code values 1 to 15.
To check the mapping select from the main menu Keypad option. This will pop-up the dialog below. Clicking on a button will invoke the corresponding sequence. If a sequence isn't mapped - or the mapped sequence file cannot be found the Busy LED on the processor front panel will flash red.
The Effects switch is numbered in hexadecimal, so positions 10 through 15 are labelled A to F. To test the mapping from the processor itself, set the effects switch to the setting to test and press the select button.
![]() ![]() ![]() |
Sequences that have been compiled into a binary format for downloading to the Flash memory in the Brick2 processor can be decoded using the Decode menu option from Sequences in the main menu.
A file open pop-up dialog will appear when this option is selected allowing a binary sequence file to be opened for decoding. To decode a sequence file from the Flash memory, first upload the file from Flash to a convenient directory on the PC.
The file will be decoded in a read only text window as shown in the example below.
![]() ![]() ![]() |
The Brick2 provides a feature enabling text to be printed over frozen images. Special raster fonts for this text are stored in the Flash memory - usually in flash sector 4. Some fonts are pre-installed. Others can be created and downloaded into flash.
To create a font, select Create Font from the main menu File option. This will present the dialog box below. Select the font, style and size, then click Save.
A file save dialog will replace the Create Font dialog. The saved file, typically with the extension .FNT will be in a form suitable to be downloaded to flash. Use the Flash (Remote Directory ) main menu option to do this.
To restart the processor select the unit id (or all units) and click OK. The CPU on the Brick-2 processor will execute a software restart. This is necessary after downloading new firmware. It can also be used to restore the processor to a known initial state when developing sequences.
To scan the connected units and obtain the firmware and FPGA version information click on File, then Hardware Info. The following dialog will be displayed. The example below shows a typical response for a single unit connected to the PC.
![]() ![]() ![]() |
It is possible to update the processor with later versions of firmware as they are made available using the Videowall Control Software. A current version of Firmware is distributed with the Video Control Software contained in the file SYSTEM.BIN. This will be installed in the same directory as the VideoWallControl.exe program, typically C:\Program Files\Videowall\
Later versions may be available on the Media Technologies Web site. To use one of these, the .bin file should be copied to any convenient PC directory prior to installation. There is no need to copy it to the above directory.
In a multi-processor installation, each processor has to be updated separately. To select the ID of the processor to update use the Setup dialog to select the Primary Processor ID, which is the ID of the processor that will be updated.
To update the firmware on the selected processor, select File / Update from the main window menu. This will pop up a file open dialog box. Navigate to the desired directory using this dialog and select the new firmware .bin file. The following confirmation dialog will appear - select Yes to copy the firmware to the Flash memory of the processor.
The firmware download process will begin, with a progress dialog as below. DO NOT CANCEL the download unless absolutely necessary. If a complete file is not downloaded, the processor will not boot next time it is reset or powered up. Provided the processor is not reset, the update process can be re-tried any number of times until it is successful.
In order to run the downloaded firmware it is necessary to reset the processor.
The firmware is held in a file called SYSTEM.COM on sector 1 of the Flash memory. This can be viewed using the Remote Directory feature.
If the processor fails to boot following the firmware update, for example because the download was interrupted due to a power failure during the download, it is possible to restore the firmware using the default monitor utility. To enter this utility, power up the processor with the Select button on the front panel pressed. In this mode the file update feature of the Videowall Control Software will still function, allowing the firmware download process described above to be re-tried.
If this still fails, it is possible to restore the firmware as described below, but this will require the Flash memory to be wiped clean and all data will be lost, including saved configurations.
Close the Videowall Control Software application and open a terminal emulation program such as hyperterm. If more than one processor is connected, connect just the processor to have it's firmware updated to the PC COM: port. This necessary, because the processor now has a default ID of zero. Configure the terminal emulator to use 19,200 bits, 8 data bits, 1 stop bit with no parity and select "no flowcontrol".
The processor will present a ">" prompt. Press carriage return if there isn't a prompt displayed. At this prompt enter "?" followed by carriage return for a list of commands. e.g.
To reformat the Flash memory, enter prep, followed by return. At the prompt - "Confirm prepare FLASH? (Y/N)" enter Y. This will format all 5 sectors of the Flash memory - all data will be lost. Note: this will include the processor ID, which will be reset to 0. When the process completes, exit from the terminal emulation program and run the Videowall Control Software. Do not reset the processor. Since there is no firmware installed yet the boot process would fail.
The update process can be now be repeated using the blank re-formatted flash memory.
Video input and control connections to the processor unit are at the front. Video output is via the RCA/Phono or S-Video connectors at the rear.
The default input is Video Channel 1 (C-Video-1). Default output is also composite video.
There are two control switches in the front of the unit labelled Split and Effect. The Effect switch should initially be set to Zero and the split switch to the desired initial spilt. Use of the Effect switch is described further here
The processor specification is described here.
Two composite inputs per input channel and one S-Video input are provided. Selection of the input channel and control of the video input settings is via the PC based control software provided with the processor.
S-Video Input connections
Pin
Signal
Type
1
'Y' Screen / Ground
-
2
'C' Screen / Ground
-
3
'Y' Video signal
Input
4
'C' Video signal
Input
Composite video is via the rear Phono connectors. Alternatively the output can be configured to use the S-Video connectors. The output has to be configured to use one format or the other - it is not possible to use both at the same time. Selection of the output settings is via the PC based control software provided with the processor.
S-Video Output connections
Pin
Signal
Type
1
'Y' Screen / Ground
-
2
'C' Screen / Ground
-
3
'Y' Video signal
Output
4
'C' Video signal
Output
The table below shows the default channel mapping. The initial magnfication is set using the split switch. For example to set a magnification of 2x the split switch is set to 2. The image will be magnified across the outpur channels 1,2,5 and 6. The image will be repeated on adjacent channels. Another 2x image will span channels 3,4,7 and 8 to the left and channels 9,10,13 and 14 below and so on.
Ch 1
Ch 2
Ch 3
Ch 4
Ch 17
Ch 5
Ch 6
Ch 7
Ch 8
Ch 18
Ch 9
Ch 10
Ch 11
Ch 12
Ch 19
Ch 13
Ch 14
Ch 15
Ch 16
Ch 20
Ch 21
Ch 22
Ch 23
Ch 24
Ch 25
The channel mapping can be changed in software if required.
PC Connection
The PC connects to the Host RS232 connection. Multiple processors can be controlled via the sane PC COM: port by daisy chaining the Loop-out port on one processor to the host connection of another.
The processor is configured via the PC software provided. Once configured it can be operated with other RS-232 capable control device such as Crestron and AMX systems or operated stand-alone. Downloaded effects may be invoked using the “Effect” switch on the processor front panel.
The 9 Pin D connector pin-out is printed on the front of the processor The pin-out is,
Host RS-232 connector (9 Pin D Male)
Pin
Signal
Type
1
None
2
Host-TX
Output
3
Host-RX
Input
4
None
5
Ground
-
6 - 9
Not used.
Loop RS-232 connector (9 Pin D Male)
Pin
Signal
Type
1
None
2
Host-RX
Input
3
Host-TX
Output
4
None
5
Ground
-
6 - 9
Not used.
The cable connecting the PC COM port to the processor, and processor to processor is the same, 9 Pin D Female at either end with 3 straight connections from pins 2, 3 and 5. A single cable of this type is supplied with the processor.
For PCs without a standard COM port, a USB serial adapter can be used.
The RS-232 settings are as follows and for simplicity should not be changed.
Baud Rate 19200 Bits per Character 8 Parity None Stop Bits 1
For advanced users who want to control the processor at the hardware level, it is necessary to use the framed based command protocol. This protocol is used to convey a set of messages comprising a function code and optional list of arguments. The supplied software provides a macro based sequencing control language to create and time the transmission of these messages.
For simpler applications, the processor can also accept single ASCII character commands mapped to complex sequences which can be downloaded to the processor Flash memory using the supplied software.
Processor Architecture
The Brick-2 videowall processor architecture is shown below.
The Brick consists of two independent video digitisers. The second video digitiser has a video buffer memory to enable synchronisation with the first video digitiser. Video fields are streamed into the video frame memory which can store up to four video fields. The output of the frame buffer is fed to the video output processors which magnify the portion of the image to be displayed on the particular monitor in the videowall array.
Various pixel switching and pixel intensity effects are provided in hardware. The video output processors include colour wash registers to enable each monitor in the videowall array to display a different colour wash. These colour washes block the display of video and can be dynamically switched to enable wipes between wash and video.
In addition to a wash, each output processor can select each video input channel to enable both to be displayed simultaneously on the videowall array.
The on-board microcomputer can write directly into the video memory to enable on screen messages and simple graphics to be displayed without any additional hardware.
Bitmaps can also be downloaded and displayed, to display a company logo for example.
Enclosure |
19-inch 2U rack mounting or free standing (detachable brackets). Welded steel, matt black paint with fingerprint resistant lacquer finish. Size: 430 mm x 250 mm x 88 mm. |
Videowall Array Formats |
Basic processor supports up to 16 monitors. Expansion to 25 monitors using internal module. Up to 256 LCD panels, Plasma panels, Projectors, Cubes. Consumer TV Monitors with A/V inputs. Square, rectangular and pyramid monitor arrays supported. |
Video Inputs |
Software selected: 4 Composite-video inputs + 2 S-video inputs. PAL, NTSC, SECAM, 50/60 Hz field rate, 15.625 kHz line rate. Software control of video input functions. Brightness, Contrast, Saturation, Hue with storage in processor flash memory. |
Video Conversion |
2 independent video input processors with internal synchronisation. CCIR601 sampling @ 27 MHz. |
Display Resolution |
720 x 576/480 interlaced and repeat field modes. |
Video Outputs |
Composite-video: RCA/Phono Connector, 1V p-p /75 Ohm. Software selectable PAL or NTSC. S-video: Mini-DIN Connector, 1V p-p /75 Ohm. Software programmable horizontal and vertical monitor offsets. |
Effects |
Magnifications 1 to 16 with no motion artifacts. 2D Pixel interpolation for ultra-smooth magnified image. Display text and graphics messages including your logo. Freeze modes including variable rate strobe. Colour washes with 64k different colours on each videowall monitor. Wipe between 2 video input channels. Wipe between colour wash and video. Interlace and repeat-field display modes. Bouncing images. Solarised, negative, dazzle pixel intensity effects. Wash colour cycling – 64k different colours on each videowall monitor. Effects continuously under development with free upgrades via our website. |
Effects Control |
Control software included with processor. Download your effects sequences for stand-alone operation. Optionally trigger downloaded sequences using simple RS-232 terminal. Multiple processors controlled using RS-232 daisy-chain. |
Electronics |
All electronics mounted on single circuit board, upgradeable to 25 channel. |
Power |
Internal 40W, auto-switching 100VAC to 240VAC, 0.315A, 50/60 Hz. |
Environment |
Integral low noise fan. Storage: -40° to +158°F (-40° to +70°C) / 10% to 80%,
non-condensing. |
Weight |
Product weight: 5 kg (11 pounds). Shipping weight: 7 kg (15 pounds). |
Warranty |
Warranty: 2-years parts and labour. |
For further information on the Brick-2 Videowall processor, online help and the latest software and firmware please visit www.mediat.co.uk or www.mediat.us
To report bugs with this software please visit http://www.mediat.co.uk/bugreports.htm
The information in this
document is believed to be accurate in all respects at the time of printing, but
is subject to change without notice. Media Technologies Ltd assumes no
responsibility for any errors or omissions, and disclaims responsibility for any
consequences resulting from the use of the information included herein.
Additionally, Media Technologies Ltd assumes no responsibility for the
functioning of features or parameters not described.
Help file version 1.8 [31-Oct-2009] © Media Technologies Ltd.