HLX Firmware Version History
--------------------------------------------------------------------------------

Firmware Update Procedure (bootloader v1.0.x)
---------------------------------------------
1. Place hlx_v???.hff file on a USB drive.
2. Insert USB drive in the front panel of the unit. Cycle power the HLX.
3. While the front panel is displaying 'Push knob for firmware update' as the 
   unit boots, press the front panel knob.
4. Follow the on screen prompts to update the system card firmware and reboot
   the unit.
5. Once the system has rebooted, use the menu to enter the expander firmware
   update procedure.
6. Follow the on screen prompts to select the file and begin firmware update;
   the cards will be programmed and rebooted.
7. Firmware update will be complete! To check the firmware versions, use the
   firmware version selection on the menu.

Firmware Update Procedure (v1.2.0)
---------------------------------------------
1. Place hlx_v???.hff file on a USB drive.
2. Insert the USB drive in the front panel of the unit.
3. Use the menu button to navigate to firmware update.
4. Follow the on screen instructions to select the file.
5. The expander cards will be updated, and the system automatically rebooted.
6. On reboot, the system card firmware will be updated.
7. Once the firmware update has completed, the system will prompt you to press
   the knob to reboot.
8. Be sure to check the firmware version using the menu to confirm update.


Full Version 1.2.0 - 7/15/2011
--------------------------------------------------------------------------------
System Card 1.2.0
-----------------
1. Added a display settings item to the menu. It allows the adjustment of the
   front panel VFD sleep timer, and also allows one to adjust the VFD/LED 
   brightness levels.
2. Fixed a menu issue when no cards with DSP are present.
3. Changed system I2C speed from 100 kHz to 400 kHz.
4. IR diagnostic has been rewritten to align with the way that the zone card now
   works. The card will not return IR data that it has decoded and understands, 
   only IR that would have been passed to source cards.
5. Added serial command [rmap] which shows the selection and restriction map.
6. Changed the firmware update process; now, in the menu, once the firmware update
   is selected, it updates the cards, reboots the unit automatically, and updates
   the system controller. Makes the process more of a single step.
7. Changed the menu graphic equalizer adjustment screen to make adjusting
   the levels a more stream-lined process.
8. Changed the front panel IR lock control to be more obvious as to what you are
   adjusting; rather than turning the lock on or off, now the IR is enabled or
   disabled.
9. The telnet server has been rewritten to allow for multiple client connections;
   previously, it was limited to 1. Now 2 clients can be connected at the
   same time. Note that individual client connections have a time out of 15
   minutes; if a client crashes and does not close the connection properly
   (sending an EOF) that connection will remain busy until it times out.
10. Changed the firmware version screen to make it more clear what was being
    displayed.
11. Added serial command [vxr##] to set the volume of all volume adjustable zones
    at once. This command is also now accessible from the front panel volume
    adjustment screen by selecting the 'all zone' selection in between the final
    and first adjustable zones.
12. Adjusted the delays between checking for received serial and telnet data;
    a relatively long delay (200 ms) is used continually; once data has been 
    received, the delay is shortened (1 ms) for a period of time (100 ms) to help
    handle large amounts of commands sent from non-human sources.
13. Changed the way the DSP frequency response characteristics are handled.
    Previously, the tone and EQ could be used at the same time. Now, each zone has
    a DSP mode setting - 0 disabled, 1 tone, 2 ZQ, and 3 preset. The disabled mode
    turns off the EQ and tone controls. Tone mode allows the bass and tone levels
    to be set. Zq mode allows setting specific eq bands (no tone control). Preset
    mode allows the selection of one of ten presets, which can be named, and set
    up for quick access.
14. Added serial command [EO###M#] to set the DSP mode of a particular zone. Modes
    are as follows:
    0 - EQ/Tone disabled (set flat)
    1 - ZQ mode. Custom 10 band equalizer, with setting saved per zone.
    2 - Preset mode. Choose one of 10 preset 10-band equalizer settings.
    3 - Tone mode. Adjust bass or treble alone, 10-band eq disabled (flat).
15. Added serial command [EO###P##] to set the EQ preset of a zone.
16. Added serial command [EP##B##L##] to set an EQ preset band level.
17. Added serial command [NEP##"@@@@@@@@@@@@@@@@"] to name an EQ preset.
18. Added serial command [QEP##] to query an EQ preset.
19. Redesigned menus for a more consistent feel.
20. Added a command to set all 10 bands of the EQ on the zone card at once.
21. New system I2C command structure.
22. The favorites menu now details the number of members for each group.
23. Added serial command [QVO###] to query the output volume of a particular
    zone.
24. Added serial command [QVMO###] to query the mute status of a zone.
25. Added serial command [QCO###] to query the connected source of a zone.
26. Changed the default serial baud rate to 115200 baud.
27. Added serial command [BO###LU] and [BO###RU] to adjust the balance to the left
    or right one increment.
28. Added serial command [EO###B##U] and [EO###B##D] to adjust the level of an
    EQ band in ZQ mode one increment up or down.
29. Added serial command [EP##B##U] and [EP##B##D] to adjust the level of an
    EQ preset in preset mode one increment up or down.
30. Added serial command [EO###STP##] to save the current ZQ 10 band settings of
    a zone into an EQ preset. This makes creating a preset easier, because you 
    can adjust the zone's EQ on the fly, and then save it to the preset.
31. Added serial command [To###BD], [TO###BU], [TO###TU], [TO###TD] to adjust the
    bass and treble tone controls one increment up or down in tone mode.

Zone Card Version 1.2.0
-----------------------
1. Corrected an issue where switching a zone that is muted would cause it to unmute
   automatically (and inadvertently).
2. Added a command to set all 10 EQ bands at once.
3. New system I2C command structure.
4. Removed restriction and switching intellegence from the card. Previously IR
   commands received from the card were acted upon by the card, and information
   was then transmitted back to the system card to let it know what happened.
   Now, the card does not do anything by itself and alerts the system controller
   to all received commands; at that point, the system controller sends the
   command(s) back to the card to activate switching, muting, etc.
5. IR buffering rewritten; there are now 8 IR buffers, one for each input
   channel; once a buffer has been filled, it is transmitted into an IR buffer
   queue to be sent out, of which there are 8 elements. If the IR buffer is
   full and the queue is full, no IR will be received until it has been
   processed. This is to help handle noisy IR receivers flooding the zone card
   and crashing it.
6. IR transferring rewritten. Once the IR queue has IR buffers to send, it will
   ask permission of the system card to send these to the source card over the
   IR I2C bus. This will prevent bus collisions.

Source Card Version 1.2.0
-------------------------
1. Fixed a bug where hot plugging IR receivers into a zone card could cause the
   source card to get stuck outputting garbage IR due to a spurious interrupt.

System Card Bootloader Version 1.2.0
------------------------------------
1. The bootloader has been rewritten to allow the one step firmware update of
   the system and the expander cards.
2. The delay on boot up has been removed, but it is now possible to enter the
   system card bootloader (for emergency purposes) by cycling power while holding
   down the front panel knob.


Full Version 1.1.0 - 4/14/2011
--------------------------------------------------------------------------------

System Card Version 1.1.0b - 4/15/2011
1. Implemented a fix for the keyboard/encoder push becoming non-responsive due
   to erratic usage (pushing the knob, turning, and keyboard use all at once).

System Card Version 1.1.0
-------------------------
1. Added volume up [vo###u], volume down [vo###d], and mute toggle [vmto###] 
   commands to the serial command set.
2. Error messages now appear over serial in the event of a crash to allow 
   service to better determine possible problems.
3. A software watchdog has been employed to address lock up issues with the 
   hardware watchdog.
4. Added menu selection for enabling/disabling front panel IR lock.
5. Commands sent to zone and source cards now retry on longer delays to allow
   for more stability.
6. Addressed an issue with entering and leaving the IR diagnostic mode while
   a telnet connection was present or if a noisy source of IR was constantly
   transmitting.

Source Card Version 1.1.0
-------------------------
1. Adjusted the way IR is output to increase the accuracy of the recreated wave
   form. Measurements indicate a relative error of approximately 5% from input
   to output.

Zone Card Version 1.1.0
------------------------
1. Corrected the formula used to generate the EQ band digital filters which now
   results in the correct Q.
2. Rewrote the command processing engine to make it more efficient.
3. Adjusted the way IR is detected by the system to make it more resistant to
   noisy IR receivers.

System Card Bootloader 1.0.1
----------------------------
Note that the system card bootloader is not field upgradeable.
1. Removed the hardware watchdog from the bootloader which in some instances can
   cause lock up issues.

Full Version 1.0.7 - 3/7/2011
--------------------------------------------------------------------------------
1. Matched the full version number with the system card firmware version number
   to make it clearer which version is loaded on the system.
2. Fixed a bug with adding favorites if the favorite was added with only video
   or audio specified.
3. Added a serial command [RAR] which resets all permanent restriction settings.

Full Version 1.0.6 - 3/3/2011
--------------------------------------------------------------------------------

System Card Version 1.0.5
-------------------------
1. The expander firmware menu option only allowed selecting the first file from 
   the USB drive. This has been fixed.
2. Added a serial command [qxsb] which displays the current system settings
   over serial using square brackets - [co1i1] for example, as opposed to 
   (co1i1).
3. Adjusted the telnet connect/disconnect delay to increase operational speed.
4. The [reset] command now resets all settings; previously it left restrictions
   in place.
5. Changed how adding a zone membership to a favorite works when in break-away 
   mode. Previously, if one added a zone to a favorite and only specified either
   the source video or audio, then the non-specified setting by default was set
   to source 1. Now if you add a favorite and only specify video or audio, it
   will default to non-breakaway mode.
   Example:
   [f1ao1ai2] - Add zone 1 to favorite 1, connecting audio to input 2. This will
                also connect video to input 2 by default, the same as [f1ao1i2].
   [f1ao1vi3] - Now specify that zone 1, a member of favorite 1, is to have the
                video connected to source 3. Audio will be connected as
                previously specified to source 2.
6. If the front panel is displaying the zone/source selection screen, any
   switch command now results in the screen displaying the switching zone.
   Previously this only occurred during front panel operation, now IR and serial
   switching commands will also update the front panel display.
7. Sped up firmware update when updating expander firmware (zone and source 
   cards).

Source Card Version 1.0.1
-------------------------
1. All IR outputs will be turned ON during the boot up process to speed IR 
   connectivity testing.


Zone Card Version 1.0.3
-----------------------
1. Changed the way that switching commands are processed in order to eliminate
   analog audio 'pops' during switching. Also fixes problem where many commands
   at once sent to a single card could cause some of the commands to be ignored. 


Full Version 1.0.0 - 2/9/2011
--------------------------------------------------------------------------------
1. Initial release of 1.0.0 for system card, source card,
   and zone card firmware, as well as bootloaders.