HX3 Remote Application
HX3 Remote
HX3 Remote for Windows application (named HX3_remote.exe in Github LATEST directory) is a convenient way to update or maintain your HX3 board or expander. It makes fiddling with Teraterm and AVRdude completely obsolete. You will need an USB adaptor cable FTDI TTL232R 5V or any USB to serial converter based on FTDI FT232R chipset.
Most parameter remote functions require HX3 firmware 3.51 and up (as they rely on the new MenuPanel parameter order), but you may also use it for updating older firmwares and FPGA configurations. New controller firmwares 3.52 and up have a provision to engage the bootloader (by serial command "9980=0", but you do not need to know that). Before that, you had to reset the HX3 board by a reset jumper to engage the bootloader and to update the firmware -- not very user-friendly.
Installation
- Connect the FTDI USB cable to your Windows PC.
- On WinXP, it will ask you to install FTDI drivers first (available at FTDI website). On newer systems, Windows will install drivers for you automatically.
- Create a new folder on your hard disk and copy all files of Github LATEST directory to your folder, for example "E:\LATEST\". Some PCs will need the D2XX.dll and libusb0.dll as well (delete on Windows Vista/7 and newer).
- Unplug your FTDI USB cable from computer again. It is advisable to plug in FTDI cable to HX3 pin header first, then USB plug of cable to computer, then start HX3 Remote. Always quit HX3 Remote before unplugging the FTDI cable.
Note: For operation with firmware 3.5 and up, remove jumpers JP7 and JP8 which may still sit on your board from factory programming. These jumpers are only required for updating the reverb DSP.
Connect to HX3
- Be shure that JP7, JP8 and JP5 are removed as for normal operation.
- Connect header of FTDI USB adaptor cable to your HX3 board as shown in picture. The "+5V" pin of FTDI pin header (leading to red wire of FTDI cable) on older HX3 mk2 boards should be cut off, otherwise USB power will supply the board which may lead to problems as voltage is too weak.
- Power up HX3 board. Plug in FTDI cable to your Windows PC.
- Start HX3_remote.exe by double click. The application is completely self-contained and does not need any installation, but it requires to have the avrdude.exe tool (and maybe the DLLs noted above) in the same folder.
- HX3_remote may complain that HX3_factory_defaults.hx3 could not be found. Click Open to load; it is located in the \LATEST folder. HX3 Remote will remember the file last used.
- Click on Device button. A dialog window appears whichs asks to select the FTDI USB cable from the FTDI devices it found; normally, it should be named "TTL232R", "FT232R USB UART" or similar, and only one is shown. Select it and click OK. Now HX3 should respond to the Console window at bottom and show startup info. All buttons will be enabled if everything is OK.
- Make shure it has assigned a COM Port number other than 0 for AVR update (shown right to Device button); should be in the range 1 to 31.
- Move mouse over some items; the bottom hint line will show help info.
If the console window at bottom shows "-9999" or "Timeout" messages, the connection to HX3 could not be established, maybe due to a corrupted firmware. You may update it anyway, see below. Due to some quirks in the FTDI driver, after Windows Sleep mode it may be necessary to remove and reconnect the FTDI cable from your PC before you start HX3 Remote.
Editing Organ Parameters
- Select the Organ Defaults tab page.
- Clicking Read Params will update the selected table with parameters read from your HX3.
- You may save the tables and all owner/serial number info to a file by selecting "Save Param File as..." from menu to a different file, so you may create a set of different sounding organs.
- To change a parameter, select it in the table by mouse or arrow keys (click on value). You may either type a new number or use the control in the middle to change. Depending on type of parameter, the control may be a slider (as shown), a drop-down menu or a ON/OFF button.
- All changes are temporarily. To make them permanent (power-on default), check the Store Changes to EEPROM box and click Write Params (will take a moment to complete).
Editing Leslie Parameters
Works as "Editing Organ Parameters" above, but changes defaults for Leslie simulation. These parameters are delicate and improper values may lead to distorted or unwanted results. Use with extreme caution - for experts only.
Editing MIDI Custom CCs
Firmware versions 3.53 and up provide a custom MIDI CC set, selectable by MenuPanel or HX3 Remote's "Organ Defaults". It works like a MIDI learning function, but more convenient by a special translation table. A MIDI CC number received will be translated to a HX3 parameter change with automatic scaling to the parameter range (i.e. a MIDI CC value of 0..127 will be scaled to 0..5 for the vibrato knob setting).
- Select the MIDI Custom CC page.
- You may enter any valid HX3 parameter number (400 to 481 for MenuPanel or Organ Defaults entry, 900 to 907 for upper row of panel buttons, 910 to 917 for lower row of panel buttons). Zero entries will be ignored.
- All changes are temporarily. To make them permanent (power-on default), check the Store Changes to EEPROM box and click Write Params (will take a moment to complete).
The complete list of HX3 parameters can be found in the HX3 mk3 syntax table.
Note: The MIDI Custom CC translation routine in HX3 firmware works for standard MIDI continuous controllers on upper manual channel only. There are some keyboards on the market (Roland, Viscount, Hammond) that use quite weird drawbar encoding schemes. RPN/NRPN parameter changes, SysEx messages as well as special encodings will not work. Use the specialised Hammond CC sets instead if using a Hammond XK or SK series. There are no plans to support the NRPN/SysEx madness.
Editing Presets
- Select the Upper or Lower table tab and the preset you want to edit with the drop-down menu (upper left corner of tab page). Note: "Live 0" is the power-on setting on HX3 without drawbars connected, like HX3 expander module.
- Adjust your preset with sliders and checkboxes at bottom of tab page. All changes are to be heard immediately.
- All changes are temporarily (volatile). To make them permanent (power-on default), check the Store Changes to EEPROM box and click Write Params (will take a moment to complete).
- You may also read the HX3 presets by clicking Read Params before editing. This will read all upper or lower presets, not only the preset shown in the tab page.
- Current presets may be saved to or restored from your personal parameter file also (see "Creating your personal settings file" section below).
Setting User Info and Licences
- Enter your name in the beige User Name field. It should not contain special letters other than ASCII (sorry, Umlaute not allowed).
- If you already have an Organ or Leslie key, they should be displayed in the Licence fields. Invalid keys will be shown, but will not work (indicators right to the licence fields will be dark).
- Old licence numbers from FPGA versions below 01052014 will not work. You may obtain new licence keys from KeyboardPartner as an upgrade (free until June 2014 - send an email with your new serial number after FPGA update regarding "BETA/LATEST").
- If you got new licence numbers, type them in carefully and click Send Licences which will activate the functions if correct and also set the new user name.
- Your personal setting including user name, licences and all parameters should be saved to a personal parameter file (use file menu, "Save Param File as..."). HX3 Remote will remember your personal settings file when starting the application again and open it automatically. Current file path is diplayed in HX3 Remote's window top.
- Update of FPGA, controller firmware and ScanCores work indepently of Licence entries.
Creating your personal settings file
The table to the left shows values found in the param file opened. You may want to read the current values of your HX3 instead:
- Select the table page to be read from HX3 and click Read Params. This will update only the page displayed.
- For each page (Organ Defaults, Leslie Defaults, MIDI Custom CC, Upper and Lower Presets) repeat the steps.
- Click on Refresh Info to read the user name and licence numbers present on your HX3.
- Your personal setting including user name, licences and all parameters should be saved to a personal parameter file (use file menu, "Save Param File as...").
- HX3 Remote will remember your personal settings file when starting the application and open it automatically. Current file path is diplayed in HX3 Remote's window top.
Restoring HX3 with your personal settings file
After updating the AVR controller firmware, the HX3 is set to factory defaults and presets, licence info erased.
- Open your personal parameter file (use file menu, "Open Param File..."). All tables, user name and licence numbers will be read from this file and displayed.
- To restore licence info, click on Send Licences (takes a few seconds).
- To restore one of the tables, select it, check Store changes to EEPROM box and click Write Params. Only the table displayed will be sent, so it is possible to restore the Organ Defaults or the Lower Presets separately, for example.
Updating the FPGA Sound Engine
FPGA and firmware may be updated indepently. Anyway, new FPGA releases may require an update of firmware also, as they rely on some features which may not be present in older versions.
- Click on Update FPGA. A file dialog will appear to select the FPGA configuration (normally "main_midi.bit").
- Please note that the ScanCores (files named "HX_xxx.DAT") must be present in the same folder as the selected FPGA configuration, otherwise they will be skipped. At least the "HX_MIDI.DAT" should be present for the HX3 Expander.
- Update takes approx. 2 minutes. When done, click Refresh Info and check the serial number and FPGA version issued.
- If an "Out of Sync" or "Flash verify" error occurred, see next section.
Updating a corrupted FPGA Sound Engine
The FPGA and ScanCores could not be updated as described before if the FPGA configuration on HX3 is corrupted (will show "0000000" or "FFFFFFFF" as FPGA version, also indicated by flash verify errors in message window, yellow LED on HX3 board stays off). HX3 will fall into a test mode in this case, indicated by blinking panel button LEDs and a message on MenuPanel (if present). HX3 Remote will regard this case and tell you when to insert and remove the CONF_DIS jumper. When inserted, it prevents the FPGA from blocking the flash programming.
- Only in this case you must insert the CONF_DIS jumper on your HX3 board as requested by HX3 Remote.
- Make shure HX3 responds to "Refresh Info" button. It may show random or invalid serial FPGA Version numbers. If there is no response ("-9999" timeout message), click Reset HX3 button and try again. In rare cases, it may be necessary to quit HX3 Remote, unplug the FTDI cable, power-off HX3 and start all over.
- Click Update FPGA. A file dialog will appear to select the FPGA configuration (normally "main_midi.bit"). Please note that the Scan Cores (files named "HX_xxx.DAT") must be present in the same folder as the selected FPGA configuration, otherwise they will be skipped. At least the "HX_MIDI.DAT" should be present for the HX3 Expander.
- After update (will take about 2 min.), remove the CONF_DIS jumper and click Reset HX3.
- When done, check the serial number and FPGA version issued.
Updating all ScanCores
ScanCores are routines for a small embedded processor in the FPGA which drive the attached scan boards or accept MIDI input. Note: ScanCores could only be updated if the FPGA configuration is OK (check Serial# and FPGA Version).
- Select Update ALL in drop-down menu near Update Scan button.
- Click on Update Scan. A file dialog will appear to select one of the ScanCores (like "HX_XXX.DAT") - this is just to define the folder where the ScanCores are located. Please note that the ScanCores to be updated must be present in the same folder as the selected one, otherwise they will be skipped. At least the "HX_MIDI.DAT" should be present for the HX3 Expander.
Updating a single ScanCore
- Select the ScanCore to be updated by drop-down menu ScanCore #.
- Click on Update Scan.
- A file dialog will appear to select one of the ScanCores (like "HX_XXX.DAT"). Normally, it should match the one you selected in the drop-down menu ScanCore #, i.e. if you selected "FatarScan" you should open the HX_FATAR.DAT ScanCore file. However, it is possible to overwrite a ScanCore # with a different one (for experts only!).
Updating the AVR Controller Firmware
All HX3 boards are equipped with a so-called bootloader. The bootloader is a little program that runs for some seconds when you turn the HX3 on or insert and remove the reset jumper. It's main function is to wait for the AVRdude software on your computer to send it a new firmware for the HX3, which it then writes to the internal flash memory. This is important, because normally you need a special device to program the AVR controller. The bootloader is what enables you to update the HX3 firmware using just the USB cable. This requires the tool AVRdude.exe and its AVRdude.conf file to be present in the same folder as the HX3_remote.exe itself.
For the experts: The bootloader is compatible with Arduino and Atmel STK500v1. On firmware versions 3.52 and up, the bootloader may be invoked by serial command "9980=0" (which is done by HX3 Remote automatically).
Firmware versions up to 3.51 had no provision to enter the bootloader without inserting a jumper for hardware reset as descibed in the wiki page Firmware-_und_FPGA-Update. In this case, after clicking Update AVR HX3 Remote will show a message to instruct you when to insert and pull the reset jumper.
- Click Update AVR button.
- HX3_remote asks you to select the appropriate .HEX file to program on HX3. Do not use any file with "_boot_" in their names as these are intended for direct ISP programming by OEMs.
- Every .HEX file is accompanied by a .EEP file with same name which must be present also.
- HX3 Remote sets the HX3 in bootload mode and calls AVRdude with appropriate parameters to flash the new firmware.
- A Windows Command screen appears and runs AVRdude.
- When finished (takes a minute or so), HX3 Remote tries to re-sync with HX3 and shows new firmware version info.
As the firmware update overwrites the non-volatile EEPROM parameters, all presets as well as user info and licence numbers, it is time now to re-enter these (or recall them from saved file if update is from version 3.51 and up -- do not try to use params from older versions!).
Updating a corrupted AVR Controller Firmware
In rare cases, HX3 may respond to nothing at all, just the bootloader flashes the red LED on board a few times. This might happen if AVRdude is interrupted or cable removed while programming. In this case, after clicking Update AVR HX3 Remote will show a message to instruct you when to insert and pull the reset jumper. Procedure is the same as updating older firmwares.