HX3 Remote Application
HX3 Remote
HX3 Remote for Windows application (named HX3_remote.exe in 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 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 firmware 3.52 has 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.
Requirements
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.
Connect to HX3
Connect header of USB cable to your HX3 board. The "+5V" pin of PL21 should be cut off, otherwise USB power will supply the board which may lead to problems as voltage is too weak. 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 anabled if everything is OK. Make shure it has assigned a COM Port number other than 0 for AVR update; should be in the range 1 to 31. 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.
Changing Parameters
Clicking "Read Params" will update the selected table (here shown: Organ parameters) with parameters read from your HX3. You may save the tables and all owner/serial number info by selecting "Save as..." from menu to a different file, so you may create a set of different sounding organs. Move mouse over some items; the bottom hint line will show help info.
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 "Set Params" (will take a moment to complete).
Setting User Info and Licences
Enter your name in the "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. 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.
Updating the FPGA Sound Engine
Click on "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.
The FPGA and Scan Cores could not be updated if the FPGA configuration on HX3 is corrupted (will show "0000000" as FPGA version). In this case, you must insert the CONF_DIS jumper on your HX3 board and then repeat the steps. After update (will take about 2 min.), remove the jumper and click "Refresh Info".
Updating the AVR Controller Firmware
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. After clicking "Update AVR", HX3_remote will show a message to instruct you when to insert and pull the reset jumper.
The bootloader is the little program that runs when you turn the HX3 on, or insert the reset jumper. Its 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 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.
Anyway, on firmware versions 3.52 and up, the bootloader may be invoked by serial command "9980=0" (which is done by HX3_remote automatically), so there is no need to insert the reset jumper anymore.
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. The AVRdude.exe tool with its AVRdude.conf file must be present in the same folder as the HX3_remote.exe itself.
HX3_remote sets the HX3 in bootload mode and calls AVRdude with appropriate parameters to flash the new firmware. When finished (takes a minute or so), it 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!). Future versions of HX3_remote will also support editing, saving and recall of presets.