Product Name: HDMI-UTPRO-0808
FG#: FG1403-01
Firmware Version: v0.38

Release Date: 12/3/2012

----------------------------------------------------------
1. Prerequisites
----------------------------------------------------------

** THIS FIRMWARE UPGRADE IS A TWO PART PROCESS **
 
Files Required:

    SW1403_KITA_v0_38_0.KIT		- first KIT file
    SW1403_KITB_v0_38_0.KIT		- second KIT file
	
Update instructions - these assume that the hub has a release 0.14 or later applied and has the following versions

    i. 	 Hub application version 0.11 or later
    ii.  Hub controller version 0.14 or later
    iii. RX unit version 0.8 or later

    1. Assure all RX units needing an upgrade are powered on
    2. Send SW1403_KITA_v0_38_0.KIT to hub
	** Assure that the Reboot Device checkbox is selected ** 
	** This update can take 10 minutes for hub app and FPGA upgrade, then up to 5 minutes per RX unit **
	** DO NOT CYCLE POWER ON THE UTPRO DURING UPGRADE - if FPGA firmware is upgrading and the hub loses power,
	   the upgrade will fail and the unit will have to be sent to factory for repair **
    3. Allow the hub to reboot and come online
    4. Send SW1403_KITB_v0_38_0.KIT to hub
	** Assure that the Reboot Device checkbox is selected **
	** This update can take 15 minutes for the hub, and up to 5 minutes per RX unit **
	** DO NOT CYCLE POWER OR INTERRUPT TRANSFER ON THE UTPRO DURING UPGRADE - if HDBaseT firmware for the hub is upgrading and the hub loses power,
	   the upgrade will fail and the unit will have to be sent to factory for repair **
    
    ** YOU MUST CYCLE POWER AFTER UPGRADING KIT B **

    Once the KITs have transferred and the system rebooted, the Netlinx device tree should show
    a Hub version of 0.38 (Hub application 0.38, Hub FPGA image 1.5, Hub controller 0.38), and an Rx
    version of 0.38
   
    ** IMPORTANT RX FIRMWARE NOTE **
    If any RX unit shows a version of v0.1, repeat steps 2-4.  The process should be much quicker as only the processor and VS100RX firmware 
	for that unit will need to be upgraded. This is a known bug and will be fixed for a future revision.

    If needing to downgrade from this release (0.38) to the previous release (0.14), it is safe to do so using the original .KIT file
    SW_1403_PART_B_v0_14.KIT.
	
----------------------------------------------------------
3. Known Issues 
----------------------------------------------------------

    --  Overall switch times will be slower due to delay introduced to fix the switcher lockup. Each command will
        now take 0.25 seconds to complete
    --	Upgrading a RX unit to v0.38 can fail and show a version v0.1; workaround available as shown in section 1.
    --	RX units may toggle between an online and offline state
    --	After extended use of the switcher, a video output may show black flashes and false images
    -- 	Hub serial ports currently only support the 'N' parity option
    -- 	CHARD and CHARDM commands do not change inter character delay
    -- 	RX debug menu shows a remote type of AVP rather than RC05 if selected   

----------------------------------------------------------
2. Firmware Revision History
----------------------------------------------------------

    Release 0.38
    ============
    --  IR and serial message passing is now stable.
    --  Internal ICSP debug messages that were causing instability with the UTPro have been turned off.

    Release 0.33
    ============
    --  Fixed the ?CO<O#> command that was broken in an earlier hotfix
	
	Release 0.32
    ============
    --	HDBaseT firmware is now upgradeable; this update contains the latest firmware for the VS100RX/TX chips that fixes 
        DVI interface issues
    --	IR button presses sent through the RX unit should now be transmitted properly without need for repeated presses
    --	Loss of switching functionality that resulted in error codes on the LCD when attempting to switch (Error E01d880 or similar)
	should not occur any longer
    --	Added debounce for online/offline notifications from RX units
	
    Release 0.14
    ============
    --	Correct problem on firmware updates where other Netlinx activity (commands, strings etc) could
	interfere with the firmware update process

    Release 0.13
    ============
    --	Corrects problem with downgrade of VS100 chipset when using SW1403_DOWNGRADE_v0_8.KIT

    Release 0.12
    ============
    --	Added support for even and odd parities on serial ports. Previously the SET BAUD
	command would be accepted, but the parity remained at None

    --	Added the CHARD and CHARDM commands to specify inter character delay on the
	serial ports. The CHARD command accepts a delay in 100uS increments, and the CHARDM
	accepts a delay in mS increments. As an example to set the delay between characters to
	be 5mS use either:
		CHARD50
	or
		CHARDM5
    --	Added the TSET BAUD command for compatibility with some Duet modules and legacy code. On the
	UTPro-0808 this command works identically to SET BAUD

    Release 0.11
    ============
    --	Corrected problems with selective update (DH-81) and incomplete updates (DH-78)
    --	Corrects RX hanging if screen is connected before link to hub (DH-77)

    Release 0.10
    ============
    --	DH-75 - corrected Optima driver so that multiple sends of the same command do not cause the command
	translation to be corrupted
    --	DH-76 - corrected web page display for online RXs - 0_9 introduced an error where these would be off 
	by one
    --	DH-72 - this KIT contains updated core files (1.0.47)

    Release 0.9
    ===========
    --	Corrected NIB LED - NetLinx panel led now toggles on blink message from connected master
    --	DH-60 - Corrected ?CL command with levels specified
    --	DH-68 - Added selective firmware updates based on current loaded versions - only changed firmware will be loaded
    --	Added RX detection to firmware update so only connected RXs are updated
    --	Added firmware updates for VS100 source (hub) and sink (RX) devices
    --	Added core module version numbers to Netlinx device tree
    --	DH-69 - Corrected problem with baud rate return values on hub serial port - any hub command for ports other
		than 1 would fail, system now accepts ports 1 thru 3

    Release 0.8
    ===========
    --	The Netlinx firmware object IDs have been changed in this release to allow a 'native' NIB
	heartbeat application to load the components in the KIT - the application file system (fsf)
	now has an id of 6 to allow this loading, the FPGA image has an id of 7, and the NIOS controller
	has an ID of 8. A separate KIT file with transition IDs (SW1403_TRANS_v0_8.KIT) has been supplied to facilitate this
    --	Corrects a problem (DH-54) where commands would be executed during (and interfere with)
	a firmware upgrade - the command execution queue is now halted during an upgrade 
    --	Added the CL ICSP command to drive different virtual matrix use in Optima
	Example:
		SEND_COMMAND dvDH, "'CL2I1O5,6,7'"
        Connects input 1 to outputs 5, 6 and 7 using level 2
    --	Corrected IR loading for multiple, long files. These are now queued and loaded from
	the queue rather than in the calling thread from the ICSP stack (DH-57)

    Release 0.7
    ===========
    --	Corrected a problem with UART addressing which caused port 1 communications to the Rx to fail. This meant 
	that the upgrade would fail as data updates to port 1 would timeout

    Release 0.6
    ===========
    --	Added version information from the Valens devices to the output of the ?FWVERSION command. When this command is sent
	to any of the Rx devices, it will append the version information from the Valens devices. Versions previous to 29.2 
	report a version number of 0.0
	Example:
		SEND_COMMAND dvRX, "'?FWVERSION'"
	Return notification will be 'FWVERSION-0.6-29.6'
    --	Corrected a problem with some codes in the RPRC05 remote - Pause did not work and some (undefined) keys still generated
		a key release (channel off) command - these have both been corrected
    --	Corrected defaults on panel RJ12, power up is now as port 2 of the hub
    --	Corrected a problem with simultaneous input and output of long (> 64 byte) strings - DH47 - NIOS now breaks long strings
		into 64 byte substrings and sends to NIB as separate events
    --	Correct initialisation on power-up or disconnect/connect event of Rx so that remote type is correctly set		

    Release 0.4
    ===========
    --	Corrected a problem with the KIT file format as the application file system was incorrectly named. The firmware in
		this release (within the KIT) is identical to 0_3 apart from the application version number has incremented.

    Release 0.3
    ===========
    --	FPGA version reporting corrected in Netlinx tree - this version is 1.2
    --	FPGA qualifier added to ?FWVERSION command
    --	ISCP command to display FPGA version is ?FWVERSIONDFPGA
	Example:
		SEND_COMMAND dvDH, "'?FWVERSIONDFPGA'"
	Return notification will be 'FWVERSION-1.2'
    --	Commands entered via the web Control page have been fixed. This was noticeable with the
	?FWVERSION command which did not operate properly via the web pages
    --	A problem with memory allocation on serial input buffers has been fixed - this could result in lost
	characters on serial input or the main NIOS application hanging when large amounts of serial
	data were sent via the serial port inputs
    --	ID button functionality has been extended as per the ERD - in addition to the ID Netlinx functionality, it can
	now be used to select whether the RJ12 is used for a standard Netlinx port (on port 2 of the hub) or for
	connection to the NIB console. Holding the button down for > 5 seconds will connect the NIB console and the green
	READY LED will flash to show this. Pressing the ID button at any time for < 5 seconds will connect the RJ12 to
	Netlinx port 2 as a default and the READY LED will be steady.
    --	A problem has been fixed where the FPGA bootloader could load a corrupted NIOS image - the checksum was not checked
	correctly and would allow a bad image to be loaded.

    Release 0.2
    ===========
    --	Messages from port 0 are correctly handled (when RESET command is issued)
    --	ID button operation added
    --	Added support for RXON and RXOFF - RXOFF is default
    --	Removed need for baud rate to be set before serial ports operate
    --	Corrected serial port defaults - default is 9600,N,8,1
    --	Added support for RC05 remote
    --	ISCP command to select RC05 remote is RPRC05
    --	Keycodes map (where possible) to R1 codes
	Example:
		SEND_COMMAND dvRX, "'RPRC05'"
	Configures the Rx to use the RC05 remote and generate standard AMX codes.
    --	Optima driver changed to use implied levels from 'C' command
    --	Changed operation of ?C command so that the Optima switch is queried for Status and the
	results fed back to ICSP
