___________________________________________

KP 12 CLD / EKP 14 CLD Motherboard Firmware
___________________________________________

These are the release notes for the KP 12 CLD (1RU keypanel) firmware.

The same firmware image is also used for the EKP 14 CLD (1RU expansion panel).

________________________________________

Relocator, Boot Loader, and Client Image
________________________________________

The firmware consists of two types of image files:

  - The kp12-cld.hex file is used when downloading the keypanel from AZedit

  - The kp12-cld.flash file is used when programming with a device programmer

The firmware is structured in three parts: The Relocator, the Boot Loader, and
the Client Image.  The Relocator occupies the first flash sector, followed by 
the Boot Loader, and the Client Image.  The .hex file contains only the Client 
Image, while the .flash file contains all three parts.

On power-up, the Relocator checks for a valid Client Image. If present,
control is passed to it; otherwise control is passed to the Boot Loader.  The
Boot Loader is only ever invoked automatically if the Client Image is corrupt
or not present.

When upgrading the keypanel firmware, you will typically only ever need to 
download the new Client Image (.hex) file from AZedit.	While a new Client
Image is being downloaded, a Firmware Download icon is displayed, and the
keypanel remains fully functional.  Only after the complete new image has been
received and validated does the keypanel reprogram the flash and restart.

You can force the keypanel into the Boot Loader by pressing the recessed
pushbutton (labelled BLR) on the back of the keypanel while it is being powered 
on. This causes the Relocator to ignore the Client Image (even if valid) and 
pass control directly to the Boot Loader.

While in the Boot Loader, the panel will display a message that it needs a 
download. The panel will communicate with the matrix, and will accept downloads; 
nothing else will work. There will be no audio; the talk and listen keys, 
the keypad, and the shaft encoders will all be non-functional.

You can download a new Boot Loader image (boot_ldr.hex file) while the 
keypanel is running the existing Boot Loader.  Once the download has begun, you 
must press and hold the BLR button as the first downloaded Chunk reaches 100%.  
If the download continues on to the second Chunk, the keypanel has recognized 
your request to download a new Boot Loader image.

You can also enable downloading of a new Boot Loader image while the keypanel 
is running the Client Image.  Press and hold the volume control shaft encoder,
enter the Menus by pressing the Menu key, and then release the shaft encoder.  
The Service menu will now have a new menu item called Boot Code.  This menu 
shows the current Boot Loader version, and offers a checkable menu item called 
Allow Download.  Check this option and you can then download a new Boot Loader 
image from AZedit without having to press the BLR button.

If an EKP 14 CLD is connected, and it contains a different Client Image than
the KP 12 CLD, then the KP 12 CLD's Client Image is automatically transferred 
to the EKP. The EKP will display a Firmware Download icon, but will otherwise 
remain fully functional.  The transfer takes a couple of minutes, after which 
the EKP will reprogram its flash and restart.

A new Boot Loader is also transferred from the KP 12 CLD to the EKP 14 CLD
automatically, if necessary. 

If an EKP ends up with a Client Image that is corrupt or not present, it will
enter the Boot Loader, which behaves the same as on the KP 12 CLD, except that
it expects to communicate with a KP 12 CLD, and not the matrix.
							       
___________________

Saved Configuration
___________________

The keypanel saves various settings to configuration flash. On start-up, it 
looks for a valid configuration; if it finds one, it uses this to determine the 
initial configuration. If there is no (valid) saved configuration, it starts up 
with the factory default configuration.

The current configuration is only written to flash when the menu
item Save Config is selected.

The keypanel can be restored to the factory default configuration by selecting
Reset Config from the Service menu.

______________

Change History
______________


Version 1.4.3 (CRC=0xa02e)
==========================

* Various improvements and bug fixes

  - After Reset Config, headset and headset mic might not be detected properly
    (until headset removed and re-inserted, or panel restarted)
  - Downloading fonts did not work if boot loader download enabled via menu
  - Improved display update response time when keys pressed
  - LCP adjustment of front headset volume only adjusted left channel
    (plus right channel of rear speaker, instead of right channel of front headset)


Version 1.4.2 (CRC=0xf55c)
==========================

* Various improvements and bug fixes

  - Display of key volumes did not work when operating in Unicode mode and using 
    new keypanel protocol with systems (intercom and I/O cards) supporting 
    trunking of more than 31 intercoms.  Fixed.

  - With Japanese intercoms, lowest crosspoint volume should be displayed as 
    "-21dB" not "Mute". Fixed.


Version 1.4.1 (CRC=0xc598)
==========================

* New Footswitch option

  A new option for Footswitch operation has been added that causes talk keys 
  latched for footswitch operation to be unlatched when the footswitch is released.
  To enable this mode, use the Service | Footswitch | Latched Keys menu.  The
  options are "Retain" (talk keys stay latched for footswitch operation, which is 
  the default mode) and "Unlatch" (which causes talk keys latched for footswitch
  operation to become unlatched when the footswitch is released).

* New Local GPIO Input option

  A new option for Local GPIO Inputs has been added that causes the local GPIO
  input state to track the corresponding local GPIO output state.  This option
  can be enbled independently for each local GPIO input by using the Service |
  Local GPIO | GPIO Inputs | Mode menu.  The options are "Normal" (the local GPIO
  input state reflects the actual state of the opto input, which is the default 
  mode) and "Track Output" (which causes the keypanel to report the local GPIO 
  output state as the local GPIO input state for the selected input, instead of
  reporting the actual state of the opto input).

  This feature allows GPIO Outputs to control Talk Key or Key Group activation.

* New Local GPIO Input Key Group mode

  A new mode for Key Groups triggered by local GPIO inputs has been added that
  causes the keys in the key group to be toggled on or off on the GPIO input 
  state transition (Edge) instead of being held on or off by the GPIO input
  state (Level).  This option can be enabled indpendently for each Key Group
  on each local GPIO input by using the Service | Local GPIO | GPIO Inputs |
  Key Group | <Group #> | menu.  The options are "Level" (the default), or
  "Edge". Selecting either mode then prompts to "Save and Restart" or "Cancel".
  Changing modes requires a reboot of the keypanel.

* Various improvements and bug fixes:

  - It was possible to see display artifacts when drawing and erasing icons. Fixed.

  - For AL and AM listen assignments, listen key state should only show as on 
    if talk key is actually on (not just in the footswitch ready state).  Fixed.

  - Serial communcations could be disrupted while writing to flash.  Fixed.

  - Further improved serial communications with Option Card (RVON or OMNEO).

  - Added icon to warn when the flash is being reprogrammed ("DO NOT POWER OFF").

  - Improved download progress indication is now more accurate for boot loader and fonts

  - Fixed: Disabling the front or rear speaker muted the speaker (even if other sources
    were mixed to the speaker).


Version 1.4.0 (CRC=0x8efc)
==========================

* Support for trunking of up to 255 intercoms. 
  (Requires a TM-10K Trunk Master, plus intercom and I/O card firmware support).

* Support for new keypanel protocol (which can cut firmware download times in half).  
  (Also requires intercom and I/O card firmware support).


Version 1.3.1 (CRC=0x8326)
==========================

* Many new minor features and improvements

  Several new or improved features have been added, including:

  - Talk and listen indicator bars are now taller, in 4-character mode, 
    to provide more visibility.

  - New Key Options menu item "Turn Off" allows you to turn off all keys, all
    talk keys, or all listen keys. You can use the new "Turn Off" menu with 
    the programmable UPG keys to create a UPG key that can turn off all keys
    with a single button press. You can also require a confirmation before 
    turning off any keys.

  - New Service menu item "Page Change" allows you to select whether setup
    page changes are allowed if any talk keys are on.  The default is to allow
    setup page changes, even if talk keys are on, while in English mode, but 
    not in Japanese mode (mirroring existing operation).  This menu lets you
    change the default operation.

  - New menu item "Volume Control" in the Audio Options | Headset Spkr and 
    Speaker menus allows you to select whether the Main shaft encoder controls
    the volume for Front and Rear channels indepently or both simultaneously
    in "ganged" mode. This is similar to how Aux Inputs can be "ganged" via
    the Service menu.

  - When a shaft encoder is controlling the volume for a "ganged" channel pair
    (such as Both front and rear speakers, or Aux input channels 1 and 2), and
    the volumes for the channel pair are not identical, the panel now displays
    both volumes using a split volume bar.  Front is always first (on top) and 
    Rear is second (on bottom).
 
  - New Service menu item "Ganged Vols" allows you to select what happens when
    adjusting the volume for a ganged channel pair when the volumes are not
    identical and one of the volumes reaches the minimum or maximum volume.

    In "Disappearing" mode, you can continue to adjust the volumes such that
    the volume at the limit does not change, but the other volume continues to
    be adjusted (until the difference or offset between the volumes disappears).

    In "Fixed Offset" mode, when one of the volumes reaches a limit, you are 
    prevented from adjusting the other volume in the same direction (maintaining
    the difference or offset between the two volumes).

  - Fix: The option to allow mode selection (Always On, Disabled, Switched) 
    independently for left and right channels of the front and rear headsets, 
    and rear speaker, introduced in V1.3.0 did not work correctly.

  - OMNEO device name length is now limited to 31 characters


Version 1.3.0 (CRC=0x1af4)
==========================

* Added support for OMNEO devices

  Support for an OKI-2 option card is similar to support for the RVON-2, 
  with the following differences:

      - The top-level menu is "OMNEO Offers"
      - The service-level menu is "OMNEO Setup"
      - The OKI-2 device name can be configured
      - The OKI-2 can be configured to use DHCP, 
        or it can be assigned a static IP address
      - Tthe following additional parameters can be configured:
        - DNS server (2 IP addresses)
        - DNS search domain
      - If configured for DHCP, then the IP parameters can be viewed 
        but not modified.

* The OKI-2 Device name, or RVON-2 IP address, is displayed when the panel 
  is not communicating with the intercom.

  If the keypanel has an OKI-2 option card installed, but the keypanel is 
  not talking to an intercom, the OKI-2's Device Name is shown in the icon 
  indicating that the keypanel is disconnected. 

  If the keypanel has an RVON-2 option card installed, but the keypanel is 
  not talking to an intercom, the RVON-1's IP address is shown in the icon 
  indicating that the keypanel is disconnected.

* Various improvements and bug fixes

  Improved serial communications (better handling of framing and overun errors).

  Added additional chime duration options (1-4 seconds).

  Allow mode selection (Always On, Disabled, Switched) independently for left
  and right channels of the front and rear headsets, and rear speaker.

  If an option card is installed, but is unable to communicate with the keypanel,
  the keypanel will automatically select the AIO interface after 30 seconds.


Version 1.2.2 (CRC=0x475e)
==========================

* Various improvements and bug fixes

  Don't allow setup page change if a talk key is active (Japanese mode only).
  Switch to headset mode at power up if auto-detect enabled and headset present.
  Fixed graphical setup page tab alignment to key backgrounds.
  New footswitch icon to more closely resemble actual footswitch.


Version 1.2.1 (CRC=0x58c3)
==========================

* Merge English and Japanese features sets

  English mode now includes new features:
  - New key option "Button Lock" allows forcing keys to be always on or off
  - Modified key option "Latching" allows disabling latching for individual keys
  - Added 5 and 10 second tally duration options
  

  Japanese mode now includes new features:
  - Allows choice of Classic or Default keypad sequences
  - Enables graphical setup page changing mode
  - TIF menu now includes a Hang-up option
  - Keypanel now remains in menu mode after TIF dialing

  A new menu item, Service | Keypad | SEL Key, allows you to choose whether the 
  SEL key is used for Assignment Groups or Quick Assign.  The default setting
  is "Auto" which sets the SEL key to Assignment Groups in English mode and 
  Quick Assign in Japanese mode.

* Support for virtual EKPs with Panel Swap

  You can now enable virtual EKP panels, and swap those key assignments onto the
  Main panel with a single button press.  Keys on virtual EKPs can remain on
  even when not dislayed (they can also be forced off when swapped out).

  Please see the Panel Swap documentation for more details on how to enable and
  configure this feature.

* Support for 128 keys

  The KP 12 CLD can now support up to 7 virtual EKPS (128 keys in total) when 
  the I/O card and intercom also offer this support.  This feature requires
  MCII-e V2.6.0 with AIO-8 V10.6.0 or AIO-16 V1.4.0, or RVON V2.3.0.  It also
  works with Zeus-III V1.5.0 and Cronus V2.0.0.

* Note: Saved configuration reset to defaults on upgrade from V1.1.1 or earlier

  The addition of support for up to 128 keys increases the size of the 
  persistent settings stored in the configuration flash and has required a 
  re-organization of the flash storage area. This means that, when upgrading to 
  this version from a previous version, the old configuration stored in flash 
  cannot be loaded, and the keypanel will revert to its default settings.

* Support for new mic preamp output mode

  A new "Invert" mic preamp output mode has been added.  The "Invert" mode has
  the mic preamp output in the opposite state to the "Switched" mode.  That is,
  in "Invert" mode, the mic preamp output is active when the main output is 
  inactive, and vice versa.

* Various improvements and bug fixes

  Keypanel now uses larger firmware download messages.
  Adjusting volume for keys with the same assignment now shows correct volume.


Version 1.1.1 (CRC=0xa0c1)
==========================

* Front panel USB connector power enabled

  Power is now enabled to the front panel USB connector.

* Support for Headset mic "Auto-Mute"

  By default, if no headset is detected, the headset mic input is now muted
  to avoid introducing noise to the system.  This feature can be disabled via
  the Audio Options | Headset Mic | <mic location> | Auto-Mute menu.

* Various improvements and bug fixes

  If a keypanel was configured for Unicode alphas, it ignored all matrix
  names for which the first character as in the ASCII range 0x20 - 0x3f
  (which included the digits and certain punctuation marks)

  If the intercom could see a total of 31 remote intercoms, hitting the LOC 
  button on the keypanel would cause the keypanel to reboot. (This is not 
  normally a problem, since a Trunk Master can only define 31 intercoms, so an 
  intercom usually only sees 30 remote intercoms. However, with intecom support 
  for talking to two Trunk Masters, a keypanel could see 31 remote intercoms.)


Version 1.1.0 (CRC=0x182b)
==========================

* Support for Unicode alphas in Standard (non-Japanese) mode

  The KP 12 CLD supports Unicode alphas in the Standard (non-Japanese) mode of
  operation.  Such alphas can include Cyrillic, Greek, and Latin characters,
  including most European accented characters.

* European mode identification

  When Unicode alphas are selected in Standard mode, the keypanel displays a
  European icon (distiguishable from the Katakana and Kanji icons) on the left
  LCD.

  The icon disappears when the keypanel begins communicating with the intercom.
  If the icon does not disappear, it is likely that the keypanel is connected
  to an intercom that does not support Unicode (or to no intercom at all).  Use
  the Service | Alphas menu to select a non-Unicode operating mode.

* Support for separate selection of alpha size and mode

  Use the Service | Alphas menu to select the alpha size (4/6/8 or 8 Unicode)
  followed by the mode (Standard or Japanese).
  
* Support for downloadable Unicode (non-Japanese) font

  The European font used for Unicode alphas in Standard mode can be downloaded
  to the keypanel. This font is distinct from the Kanji font used in Japanese
  mode.

  Support for Unicode alphas depends on the availability of the downloadable
  Unicode fonts. If unavailable, only the required Unicode font (European font
  for Standard mode; Kanji font for Japanese mode) needs to be downloaded.

* Various improvements and bug fixes

  Page scrolling to the right could wrap to beginning prematurely (Fixed)
  Selecting setup page 10 did not work (Fixed)
  Font used for CWW window did not include Katakana glyphs (Fixed)
  00 prefix access to old sequences did not work if CWW was displayed (Fixed)


Version 1.0.1 (CRC=0x6030)
==========================

* Disable Headset Auto-Transfer

  It is now possible to disable auto-transfer to/from headset mode when a
  headset is connected/disconnected.  A new Auto-Transfer sub-menu under the
  Audio Options | Headset Spkr menu allows you to Disable or Enable whether
  the headset mode will be changed when a headset is connected/disconnected.

* Specify Headset Mic Type
 
  It is now possible to specify whether a headset mic is Dynamic or Electret.
  A new Type sub-menu under the Audio Options | Headset Mic menu allows you
  to choose whether the mic is Dynamic, Electret, or Auto-Detect.

* Firmware Download Progress Displayed

  When new firmware is being downloaded to the keypanel, an icon is displayed
  which indicates this state.  This icon now includes a two-tone bar graph that
  shows the download progress.  There are actually two bar-graphs overlaid on
  the icon.  The grey bar graph indicates progress on the current "Chunk", 
  while the orange bar graph indicates overall progress to completion.

* Various improvements and bug fixes

  Pressing FWD or SEL during TIF dialing in Japanese mode could hang up TIF.
  In-Use tally could override Incoming Call tally in Japanese mode.


Version 1.0.0 (CRC=0xbc60)
==========================

* Initial Release
