HX3 ISP Programming

Aus KeyboardPartner Wiki
Version vom 25. September 2015, 14:19 Uhr von Bovist (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Please note: This page is intended for OEMs and dealers ony.

ISP means In System Programming and differs significantly from update process by USB serial cable. The latter is done through a "bootloader" which calls a self-programming routine inside HX3's AVR controller (this is what your customer can do for himself). ISP instead directly programs the AVR controller through dedicated pins; a special ISP programmer is required to do so. A cheap one is the DIAMEX PROG-S available from various electronic parts distributors; we can supply one on request as HX3 Remote supports this type directly. ISP is needed for reanimating dead HX3 boards (FUBAR) or programming "virgin" HX3 boards coming from assembly line. It not only programs the controller's firmware flash and EEPROM memory, it also flashes the bootloader itself and sets essential "fuses" inside the controller which cannot be changed by the self-programming process through bootloader.

Updating a virgin, dead or corrupted HX3 board

In rare circumstances, HX3 will not respond to HX3 Remote app due to corrupted firmware. This might happen to a small lot of boards with so-called "fuses" not programmed correctly (see bottom of page). In this case, HX3 may forget settings/licences or does not respond at all (dead display on HX3 Expander and MenuPanel). You may have received a DIAMEX ISP Programmer from us to update or repair HX3 boards by ISP.


Follow the invitation to our "HX3-Firmware" Dropbox. It will create a folder on your hard drive containing all necessary files automatically. This might take a while depending on internet connection speed. When files in Dropbox folder are flagged with a green tickmark, this particular file is up to date.

Connect DIAMEX ISP programmer to USB of your PC. Windows will ask for a driver package to install. Route it to Dropbox folder "DIAMEX PROG-S/drivers/" and finish installation. Ignore complaints about drivers not certified or signed. An installation manual for the ISP programmer is included in "DIAMEX PROG-S" folder.

Drivers for FTDI USB/serial cable should be installed automatically by Windows 7 and up. In rare circumstances, Windows will assign a different driver for other USB devices previously installed. In this case, run FTDI driver installer "CDM v2.12.06 WHQL Certified.exe" present in Dropbox folder (on Windows Vista and up: right-click mouse on file, then select "Run as admin" resp. "Als Administrator ausführen" in german).

Open Windows Device Manager ("Gerätemanager" in german) and open COM&LPT ports. DIAMEX ISP programmer should show up as "ERFOS-PROG-S (COM XX)" when connected to PC. Write down number XX. Open HX3 Remote and enter this number in field DIAMEX COM port, page Advanced. HX3 will remember this numer on subsequent starts. We recommend using always the same USB port on your PC, otherwise Windows might assign a new COM port number to the device.

ISP Programming of a Virgin HX3 Board

Connect flat ribbon cable of DIAMEX ISP programmer to HX3 board PL1 near red on-board LED1 and power up HX3. You are now able to programm HX3 board firmware directly with Production Prgrm and AVR only buttons, page Advanced in HX3 Remote. Select appropriate firmware type in dropdown menu near Production Prgrm button and click Device (top of window). As a dead HX3 will not respond to HX3 Remote, it will complain about it - click OK to continue.

Production Prgrm will run a complete programming cycle including AVR controller firmware and bootloader, FPGA, ScanCores, reverb DSP, FIR coefficients and TaperLevel files as required for an unprogrammed (virgin) board. Follow instructions for jumper insertion and removal carefully (HX3 Remote will pop up message boxes to do so).

ISP Programming of a Dead HX3 Board

In most cases, AVR only (small button, just installs firmware and bootloader on AVR controller) should be sufficient to reanimate a dead HX3 board as the FPGA flash content is not affected by a corrupted firmware. Regard procedure for a virgin HX3, using the AVR only instead of Production Prgrm.

One small lot of HX3 boards sold from March 2015 to August 2015 might have the "brown-out detection level reset" (BOD) fuses of the AVR controller not programmed properly by factory (my personal fault). If you happen to get a dead HX3 (just some squares on menu display) or a HX3 that lost its licenses or other settings, it is likely that it has the BOD fuses not set correctly. This will be corrected with the Set Fuses button when the board works otherwise. It will not reset licenses or other settings.

Final Steps

AVR only and Production Prgrm buttons will program the fuses automatically, but they will erase licence and custom settings so they have to be re-entered manually (exception: OEMs that have received the decrypt56.exe tool).

Set Organ Defaults to customer's requirements (HX3 boards only). After programming, select appropriate ScanCore (default: Fatar on HX3 boards, MIDI on HX3 Expander) and click Finalize. Test the unit with MIDI input.

Preventing COM Reassignment

Windows will assign a new COM port number for each new FTDI device it finds. As a FTDI FT232RL device is built into HX3 Expanders and HX3 Extension boards, it will sooner or later run out of available COM port numbers as HX3 Remote only supports COM ports up to COM31. To prevent this, you should run the FTDI tool IgnoreSerialNo.exe ("run as admin" as described above). Select device FT232R/BM and click "Write". It will enter some information to your Windows registry that prevents assigning new COM port numbers for every new FTDI device connected to your PC.

You may also change assigned COM ports in Windows Device Manager. In "COM&LPT ports", click on "USB Serial Port" of your connected HX3 USB cable and select "Properties" ("Eigenschaften" in german). Select serial port setting tab ("Anschlusseinstellungen" in german) and click "Advanced" ("Erweitert") button. Select a COM port number between 3 and 31 in drop-down menu at top of page (even if allegedly in use) and click OK.