WindowsÔ  Brick-2 Videowall Control Software

 


Setup

Program Options

Video Input Settings

Video Output Settings

Monitor Alignment

Sequence Buttons

Serial Communications Protocol

Sequence File Format

Sequence File Commands

Message Functions

Editor

Remote Directory

Sequence Keypad - Effects switch

Binary Sequence Decoder

Reset

Version Information

Create Font

Firmware Update

Quick Start Guide

Specification

Further Information


 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.

 


 Setup

 

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

 

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

 

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.

 


 Video Output Settings

 

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.

 


 Monitor Alignment

 

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.

 


 Array Dimension

 

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.

 


 Sequence Buttons

 

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.

 

 

Adding a Sequence Buttons

 

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 Sequence 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

[ <Message data...> ]

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

 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.

 


 Sequence File Commands

 

The following commands are implemented.

 

PAL and NTSC

 

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.

 

RESET

 

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

 

SETDEF

 

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

 

CONFIG

 

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)

 

RELEASE

 

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

 

Kill any background task currently executing

 

Byte

Parameter

Comment

Code

KILL

Function code = 05

 

 

SETID

 

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.

 

GO

 

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

 

Hold a command, pending a later GO command

 

Byte

Parameter

Comment

Code

HOLD

Function code = 08

 

IMMEDIATE

 

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.

SELECT VIDEO INPUT
 

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

 

BRIGHTNESS

 

Byte

Parameter

Comment

Code

BRIGHTNESS

Function code = 17

1

0

Video Input Channel 1

 

1

Video Input Channel 2

2

0 .. 255

Brightness

 

CONTRAST

 

Byte

Parameter

Comment

Code

CONTRAST

Function code = 18

1

0

Video Input Channel 1

 

1

Video Input Channel 2

2

0 .. 255

Contrast

 

 

SATURATION

 

Byte

Parameter

Comment

Code

SATURATION

Function code = 19

1

0

Video Input Channel 1

 

1

Video Input Channel 2

2

0 .. 255

Saturation

 

HUE

 

Byte

Parameter

Comment

Code

HUE

Function code = 20

1

0

Video Input Channel 1

 

1

Video Input Channel 2

2

0 .. 255

Hue

 

COLOUR SYSTEM

 

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

 

FIELDRATE

 

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.

 

AUTOMODE

 

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

 

VIDEO SOURCE SAVE

 

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

 

READ VIDEO SOURCE SETTINGS

 

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.

 

 

 

VIDEO OUTPUT COMMANDS

 

These commands are used to change the video output configurations.

VIDEO OUTPUT MODE

 

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 ]

 

READ MONITOR STATE

 

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 VIDEO OUTPUT SETTINGS

 

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

 

READ VIDEO OUTPUT SETTINGS

 

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

  

ADJUST VIDEO OUTPUT HORIZONTAL ALIGNMENT

 

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

 

ADJUST VIDEO OUTPUT VERTICAL ALIGNMENT

 

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

 

SAVE VIDEO OUTPUT ALIGNMENT IN FLASH MEMORY

 

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

 

READ VIDEO OUTPUT ALIGNMENT

 

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

 

 

 

EFFECTS COMMANDS

 

These commands are commonly used to assemble sequences of effects.

SET SPLIT

 

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

 

ASPLIT

 

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

 

WASHCOLOUR

 

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

 

NORMAL

 

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

 

SOLARISE

 

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

 

NEGATIVE

 

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

 

DAZZLE

 

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

 

DISPLAY

 

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

 

FREEZE

 

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

 

STROBE

 

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

 

TEXT MODE ( INTERLACE )

 

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)

 

INTERLACE OFFSET

 

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


 

SELECT MONITOR

 

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

 

TEST PATTERN

 

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

 

WIPE

 

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

 

 

TIMEBASE CORRECTOR FUNCTIONS ( TBC )

 

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.

 

TBC ALTERNATE FIELD

 

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

 

TBC WINDOW POSITION

 

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

 

TBC ENABLE

 

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

 

TBC SIZE

 

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

 

TBC FREEZE

 

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

 

ZOOM

 

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

 

 

BOUNCE

 

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

 

BLIMIT

 

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

 

MINIFY

 

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

 

 

SLIMIT

 

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

 

CLEARSCREEN

 

Clears the overscan area to the colour set using the COLOUR command.

 

Byte

Parameter

Comment

Code

CLEARSCREEN

Function code = 94

 

COLOUR CYCLE

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

 

 


 

SEQUENCE EXECUTION FUNCTIONS

The following commands are used to initiate sequences which have been downloaded to the processor FLASH memory using the download menu command.

RUN DOWNLOADED SEQUENCE

 

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

 

READ SEQUENCE TERMINATION CONDITION

 

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

 

RUN SEQUENCE FILE

 

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)

 

READ EXECUTING SEQUENCE FILE NAME

 

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)

 

CANCEL EXECUTING SEQUENCE

 

Byte

Parameter

Comment

Code

STOPSEQ

Function code  = 79

 

GRAPHICS FUNCTIONS

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.

INITIALISE GRAPHICS

 

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

 

SELECT GRAPHICS PAGE

 

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

 

SELECT FONT

 

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)

 


 

PRINT TEXT

 

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

PRINT

Function code = 83

1

Character string

First character

N-1

.

Last character

N

0

String termination (null)

 

DRAW LINE

 

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)

 

MOVE CURSOR

 

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)

 

DRAW LINE RELATIVE

 

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)

 

MOVE CURSOR RELATIVE

 

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)

 

FILL PAGE

 

The currently selected page is filled with the current drawing colour.

 

Byte

Parameter

Comment

Code

FILL

Function code = 88

 

DRAWING COLOUR RGB

 

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

 

PLOT BITMAP

 

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).

 

DRAW ELLIPSE

 

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)

 

DRAW RECTANGLE

 

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)

 

DRAWING COLOUR YUV

 

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.

 

 

Find

 

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.

 


 Binary Sequence Decoder

 

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.

 

 


Create Font

 

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.

 

 Firmware Update

 

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.

 


 Quick Start

 

 

 

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.

 

Video Input Connection

 

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

 

 

 

 

 

 

 

 

 

Video Output Connection

 

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.

 

 


 

The following technical details are subject to change without notice.

 

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.
Operating: +41 to +95°F (+5 to +35°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.

 


 Further Information

 

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.