Firmware- und FPGA-Update: Unterschied zwischen den Versionen

Aus KeyboardPartner Wiki
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
 
(80 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Setzt eine funktionierende Platine mit Bootloader voraus. Vorbereitung des USB-Kabels und Download der Firmware/Dokumentation wie unter [[Inbetriebnahme der Bausatz-Platine]] beschrieben. Das Upgrade/Update verlangt gewisse Kenntisse im Umgang mit Programmier-Tools; es kann im Zweifelsfall auch direkt bei uns geschehen, indem Sie Ihre Platine senden an:
'''Achtung: Nur zur Dokumentation für ältere Boards. Beachten Sie bitte die neue Seite [[HX3 Remote/Update Application]]!'''


Carsten Meyer<br>
== Grundsätzliches ==
HOAX-Upgrade<br>
Warneckeweg 12<br>
31303 Burgdorf


[[Datei:ftdi_reset.jpg|450px|thumb|right|'''FTDI Kabel an HOAX-Platine angeschlossen, Reset-Jumper gesteckt für Firmware-Update über Bootloader''']]
'''Achtung: Nur zur Dokumentation für ältere Boards. Beachten Sie bitte die neue Seite [[HX3 Remote/Update Application]]!'''
 
Die HX3-Platine erlaubt es, die unter '''[[Bugfixes]]''' beschriebenen Updates über ein serielles USB-Adapterkabel selbst aufzuspielen. Keine Angst, Sie können die Hardware damit nicht beschädigen; falls doch etwas schief geht, können wir Ihnen die Platine jederzeit wieder neu programmieren. Sollten Sie sich das Update nicht zutrauen, können Sie die Platine auch einsenden und im '''[http://shop.keyboardpartner.de/epages/13705466.sf/de_DE/?ObjectPath=/Shops/13705466/Products/bugfix Keyboardpartner-Shop]''' für 10 Euro zzgl. Rücksendung ein Update bestellen.
 
Wir empfehlen bei Updates und Bugfixes, stets das [https://github.com/heise/HOAX ganze HOAX-Repository] neu herunterzuladen (wenn GIT installiert ist, "clonen", wenn nicht, [https://github.com/heise/HOAX/archive/master.zip als ZIP herunterladen] - Button in der rechten GIThub-Spalte - und auf "C:/" entpacken); persönliche Einstellungen sind vor dem Überschreiben Ihres evt. vorhandenen HOAX-Ordners zu sichern.
 
Ein Komplett-Update besteht in der Regel aus zwei Datei-Gruppen. Die erste Gruppe besteht aus dem Steuerprogramm (Firmware) für den Mikrocontroller ATmega644P, der sich um die Abfrage der Bedienelemente kümmert. Die Firmware besteht aus den Dateien
 
* '''HOAX_main.hex''' (Flash-Inhalt) und
* '''HOAX_main.eep''' (EEPROM-Inhalt, z.B. Preset- und Parameter-Voreinstellungen).
 
Daneben gibt es verschiedene Firmware-Anpassungen für besondere Fälle (z.B. Expander, XB-2 Kit etc.). Zum Aufspielen dieser Dateien auf Ihren HX3 entweder in obiges Schema umbenennen oder die Dateinamen in der Batch-Datei (siehe unten) ändern. Zum Update der Controller-Firmware verwendet man das Open-Source-Programm '''AVRdude''' oder eine ähnliche Lösung, die mit einem Arduino-kompatiblen Bootloader funktioniert. Und dann gibt es noch
 
* die FPGA-Konfigurationsdatei '''main_midi.bit''', die im Prinzip das "Schaltbild" und das physikalische Modell der B3-Orgel enthält,
* die Datei '''hoax3rev.bin''' mit den Hallprogrammen für den kleinen Hall-DSP SPIN FV-1 und
* max. acht Scan-Cores '''HX_xxx.dat''', die wiederum im FPGA selbst von einer Art "Mini-Prozessor" ausgeführt werden und die Abfrage der Tastatur (bzw. MIDI) bewerkstelligen.
 
Die letztgenannten drei Teile lassen sich relativ einfach per XMODEM-Protokoll und einem Makro-fähgen Terminal-Programm hochladen, der ATmega644P kümmert sich dann weiter darum. In der Regel sollten Sie bei jedem Update alle Teile auf die HX3-Platine laden, zuerst immer das Firmware-Update. Im folgenden haben wir die Vorgehensweise anhand der kostenlosen Tools AVRdude und Teraterm 4.7x beschrieben.
 
Der Update-Prozess setzt eine funktionierende Platine mit Bootloader voraus, der auf jeder Bausatz-Platine bereits vorhanden ist. Vorbereitung des USB-Kabels wie unter [[Inbetriebnahme der Bausatz-Platine]] beschrieben. Das Upgrade/Update verlangt gewisse Kenntnisse im Umgang mit Kommandozeilen-Tools.
 
== Test der Kommunikation ==
 
TeraTerm-Setup ''HOAX.INI'' aus HOAX-Repo-Ordner in den TeraTerm-Programmordner kopieren. FTDI-Kabel an Rechner-USB und HX3 anschließen, TeraTerm starten, Setup ''HOAX.INI'' laden (Menü Setup/Restore setup...) und ggf. passende Schnittstelle neu wählen (kann durch Windows-COM-Enumeration von der voreingestellten COM3 abweichen). HX3 einschalten, im TeraTerm-Fenster sollten die HX3-Bootmeldungen und Lizenznummern erscheinen (auch nach HX3-Reset mit ''9999<ENTER>'').
 
[[Datei:ftdi_reset.jpg|450px|thumb|right|'''FTDI Kabel an HOAX-Platine angeschlossen, Reset-Jumper gesteckt für Firmware-Update über Bootloader. Pin 5 (+5V) des Steckverbinders sollte abgeknipst sein, sonst wird HX3 über USB versorgt (kann, muss aber nicht funktionieren).''']]


== Update der Controller-Firmware per Bootloader ==
== Update der Controller-Firmware per Bootloader ==


Bei kleineren Änderungen der Firmware sollte keine EEPROM-Programmierung erforderlich sein; Sie müssen dann nur ''hoaxflash.bat'' ausführen. ''hoaxflasheeprom.bat'' dagegen beschreibt auch das EEPROM neu. VCP-Treiber für '''FTDI-Kabel''' und ggf. Terminal-Programm '''TeraTerm 4.7x''' müssen installiert sein (siehe [[Inbetriebnahme der Bausatz-Platine]]).
Der AVR-Controller ATmega644 kümmert sich auf der HOAX-Platine um die Abfrage der Bedienelemente und die Auswertung der empfangenen MIDI-Controllernummern. Den Aufruf von AVRdude haben wir mit der Windows-Batch-Datei ''hoaxflash.bat'' erleichtert; sie beschreibt auch das EEPROM neu. VCP-Treiber für '''FTDI-Kabel''' und ggf. Terminal-Programm '''TeraTerm 4.7x''' müssen installiert sein (siehe [[Inbetriebnahme der Bausatz-Platine]]). Das benötigte Flash-Tool '''AVRdude''' ist im HOAX-Ordner bereits vorhanden, es sollte mittels der Batch-Dateien aufgerufen werden (außer, Sie wissen, was Sie tun!). Der COM-Port muss für AVRdude zugänglich sein, d.h. TeraTerm ggf. vorher beenden.


'''Achtung:''' Das Programmieren des Controller-EEPROMs überschreibt alle nachträglichen Einstellungen und eigene Presets, ebenso wie die Seriennummer-Freischaltcodes, die dann neu eingegeben werden müssen.
'''Achtung:''' Das Programmieren des Controller-EEPROMs überschreibt alle nachträglichen Einstellungen und eigene Presets, ebenso wie die Seriennummer-Freischaltcodes, die dann neu eingegeben werden müssen. Ihre Linzenzen bleiben dabei weiterhin gültig (evt. im Terminal-Programm ausgegebene Nummern beim Booten der HX3-Platine notieren).


*Ggf. aktuelles "HOAX_main.hex" und "HOAX_main.eep" in das "C:\HOAX"-Verzeichnis kopieren
*Ggf. aktuelles "HOAX_main.hex" und "HOAX_main.eep" aus [https://github.com/heise/HOAX unserem GIT-Repository] downloaden (als Raw-Text) und in das "C:\HOAX"-Verzeichnis kopieren. Wir empfehlen grundsätzlich, auch gleichzeitig die FPGA-Konfiguration ''main.midi.bit'' und die Scan-Cores ''HX_xxx.dat'' neu herunterzuladen (zum Upload in HX3 siehe unten). Bei umfangreicheren Updates passen sonst möglicherweise Firmware und FPGA-Konfiguration nicht zusammen!
*Platine mit Strom versorgen (5V/250mA)
*Alternativ (und sicherer, Sie haben dann immer die neueste Dokumentation): Komplettes [https://github.com/heise/HOAX/archive/master.zip git-Repository als ZIP downloaden], entpacken und unter Beibehaltung der Verzeichnisstruktur in HOAX-Ordner kopieren; dann sind auf jeden Fall die COM-Partameter in den Batch- und Makro-Dateien erneut anzupassen (evt. Backup Ihrer Einstellungen aufbewahren)
*Platine mit Strom versorgen (5V/500mA)
*JP7 und JP8 müssen gesteckt sein
*JP7 und JP8 müssen gesteckt sein
*JP5 setzen
*JP5 setzen
*Windows "Command Prompt" im Verzeichnis "C:\HOAX" aufrufen
*Windows "Command Prompt" im Verzeichnis "C:\HOAX" aufrufen, '''hoaxflash XX''' eintippen, aber Befehl '''noch nicht''' mit ENTER abschicken. XX steht für die Schnittstellennummer, z.B. "hoaxflash 3" für COM3.
*Weiteren Jumper auf Position R quer auf PL1 setzen, das sind die beiden mittleren Pins 5 und 6 genau in der Mitte (siehe Bild)
*Weiteren Jumper auf Position R quer auf PL1 setzen, das sind die beiden mittleren Pins 5 und 6 genau in der Mitte (grüner Jumper im Bild)
*FTDI-Kabel an HOAX-Platine anschließen; GND = Pin1 = schwarzes Kabel!
*FTDI-Kabel an HOAX-Platine anschließen; GND = Pin1 = schwarzes Kabel!
*Jumper auf Position R abziehen, LED1 muss 5x aufblitzen. Sofort danach in Windows Command Prompt "hoaxflash.bat" aufrufen
*Jumper auf Position R abziehen, LED1 muss 5x aufblitzen. Möglichst während die LED noch blinkt, in Windows Command Prompt "hoaxflash.bat" aufrufen, d.h. jetzt die ENTER-Taste drücken.
*AVRdude programmiert Controller mit HEX- und EEP-Datei seriell und führt Verifikation der Daten durch
*AVRdude programmiert Controller mit HEX- und EEP-Datei seriell und führt Verifikation der Daten durch.
*Falls "out of sync" oder "verification error", Vorgang wiederholen
*Falls "out of sync" oder "verification error", Vorgang wiederholen.


== Update der FPGA-Konfiguration (HOAX-Sound-Engine) ==
== Update der FPGA-Konfiguration (HX3-Sound-Engine) ==


Beim Update der FPGA-Konfiguration sowie der Scan-Cores und Hallprogramme bleiben eigene Presets und Einstellungen sowie die Lizenz-Freischaltungen bestehen.
Das FPGA ist der eigentliche Klangerzeuger und -verarbeiter der HX3-Platine; zusätzlich enthält es noch einen Mini-Controller für die Tastaturplatinen, der die eingestellte Scan-Routine abarbeitet. Beim Update der FPGA-Konfiguration sowie der Scan-Cores und Hallprogramme bleiben eigene Presets und Einstellungen sowie die Lizenz-Freischaltungen bestehen.


*JP7 und JP8 müssen gesteckt sein  
*JP7 und JP8 müssen gesteckt sein  
*Ggf. aktuelle "main_midi.bit", "HX_*.dat" und "hoax3rev.bin" in Unterverzeichnis "FPGACORES" kopieren
*Ggf. aktuelle "main_midi.bit", "HX_*.dat" und "hoax3rev.bin" in Unterverzeichnis "FPGACORES" kopieren
*Terminal-Programm TeraTerm 4.7x von http://www.heise.de/download/teraterm-pro.html downloaden und installieren (falls nicht schon vorhanden)
*In der Makro-Datei "HOAX_UPLOAD.TTL" in "\TERATERM_MACRO" Pfade "mypath=..." kontrollieren (mehrfach vorhanden, mit Texeditor zu öffnen) und ggf. auf aktuellen Pfad zu "<drive>:\HOAX\FPGACORES" setzen (Default C:\HOAX\FPGACORES)
*In der Makro-Datei "HOAX_UPLOAD.TTL" in "\TERATERM_MACRO" Pfade "mypath=..." kontrollieren (mehrfach vorhanden, mit Texeditor zu öffnen) und ggf. auf aktuellen Pfad zu "<drive>:\HOAX\FPGACORES" setzen (Default C:\HOAX\FPGACORES)
*TeraTerm starten
*TeraTerm starten und serielle Verbindung (57600/8n1) mit HX3-Platine herstellen, muss ENTER mit "#0:255=0 [OK]" beantworten
*Unter "Setup/Serial Port..." oben notierten COM-Port des FTDI-Kabels eintragen, sowie Baud rate 57600, Data 8 bit, Parity none, Stop 1 bit, Flow control none (falls nicht schon geschehen)
*Unter "Setup/Terminal..." einstellen: Receive CR, Transmit CRLF, Local echo (falls nicht schon geschehen)
*ggf. mit ALT-N neue Verbindung, wenn DISCONNECTED
*Für spätere Updates Einstellungen unter "Setup/Save setup" Teraterm-Setup in TERATERM.INI sichern
*Makro "HOAX_UPLOAD.TTL" mit "Control/Macro..." öffnen/ausführen, Anweisungen folgen
*Makro "HOAX_UPLOAD.TTL" mit "Control/Macro..." öffnen/ausführen, Anweisungen folgen
*Frage "Upload FPGA configuration?" mit JA beantworten
*Frage "Upload FPGA configuration?" mit '''Ja''' beantworten
*Bei Frage nach Scan Core folgende Ziffern eingeben:
*Bei Frage nach Scan Core folgende Ziffern eingeben:
**Core 0 = Chained OrganScan61 (alt, von Projekt Klangcomputer), mit ein bis drei Platinen in Reihe an PL14
**Core 0 = Chained OrganScan61 (alt, von Projekt Klangcomputer), mit ein bis drei Platinen in Reihe an PL14
**Core 1 = MIDI receive only
**Core 1 = MIDI receive only
**Core 2 = ScanFatar2 mit ein oder zwei Manualen an PL14, ggf. zusätzlich Bass-Scanplatine mit 4014-SR an PL15
**Core 2 = ScanFatar2 mit ein oder zwei Manualen an PL14, ggf. zusätzlich Bass-Scanplatine mit 4014-SR an PL15
**Core 3 = Scan4014-16/Bass parallel 2x 44 Tasten, 2x 3 Platinen an PL15
**Core 3 = Scan4014-Strip/Bass parallel 2x 44 Tasten, 2x 3 Platinen an PL15
**Core 4 = Scan4014-16/Bass parallel 2x 49 Tasten, 2x 3 Platinen an PL15
**Core 4 = Scan4014-Strip/Bass parallel 2x 49 Tasten, 2x 3 Platinen an PL15
**Core 5 = Scan4014-16/Bass parallel 2x 61 Tasten, 2x 4 Platinen oder ein bis drei Scan4014-61 parallel an PL15
**Core 5 = Scan4014-Strip/Bass parallel 2x 61 Tasten, 2x 4 Platinen oder ein bis drei Scan4014-Inline parallel an PL15
**Core 6 = Test-Routine (Auslieferungszustand)
**Core 6 = Test-Routine (Auslieferungszustand)
**Core 7 = OptoScan von B.A.S.S. an PL14
**Core 7 = XB2 Retrofit Kit, XB2-Tastatur mit Adapterplatine
*Bei '''nicht vollständig bestückter''' Platine (R-Netzwerke fehlen) '''immer Core 6''' (Testroutine) wählen, HOAX ist sonst evt. nicht mehr ansprechbar!
*Damit AVRdude wieder auf das FTDI-Kabel zugreifen kann, muss TeraTerm beendet oder Verbindung mit ALT-I unterbrochen werden!
*Damit AVRdude wieder auf das FTDI-Kabel zugreifen kann, muss TeraTerm beendet oder Verbindung mit ALT-I unterbrochen werden!
== Major Releases ==
Updates benötigen üblicherweise die komplette Neuprogrammierung des ATmega644 mit FLASH und EEPROM sowie Hochladen der beigefügten FPGA-Konfiguration. Da vorherige Einstellungen im EEPROM überschrieben werden, müssen Sie ggf. auch Ihre Lizenznummern erneut eingeben und die Presets neu abspeichern. Neuere Firmware-Versionen vertragen sich möglicherweise nicht mit älteren FPGA-Konfigurationen; wir empfehlen im Zweifelsfall, immer beides neu aufzuspielen!
== Dateien im HOAX-Repository ==
HEX-Files zum Upload per AVRdude. Zum Update HX3 in Hardware-Reset versetzen durch Jumper auf PL1 "R" (Pin 5/6). Unmittelbar vor Aufruf von AVRdude über "hoaxflash.bat" (mit Angabe der COM-Port-Nummer, also z.B. "hoaxflash 3" für COM3) Jumper ziehen. Achtung: Update erfordert Neueingabe der Lizenznummern, siehe http://wiki.keyboardpartner.de/index.php?title=Lizenznummern_erwerben_und_eingeben für weitere Details. Zu jedem HEX-File gehört eine EEPROM-Datei mit Endung .EEP
'''HOAX_main.hex''' HX3 Standard, ggf. mit Preset24 oder 1 bis 2 Preset16-Panel
'''HOAX_main_latching.hex''' Latching Presets (einrastende Tasten) mit alter Preset12 MPX Platine
'''HOAX_main_tabvib.hex''' wie Standard, jedoch drei Schalter (V1,V2,CH - V3=V1+V2) statt Drehschalter an PL5
'''HOAX_main_buttonvib.hex''' wie Standard, jedoch Vibrato-Einstellung über die vier Common-Preset-Taster von Panel16 statt Drehschalter
'''HOAX_main_xb2.hex''' Spezialversion für XB2-Einbausatz, nutzt vorhandene Bedienelemente und Display
'''HOAX_main_xb2_panel16.hex''' Spezialversion für alten XB2-Einbausatz mit Panel16
'''HOAX_AVR_ALL.zip''' Enthält alle aufgeführten dateien, gepackt als ZIP
===im Verzeichnis FPGACORES===
'''main_midi.bit''' FPGA-Konfiguration zum Upload mit TeraTerm-Makro
'''*.dat''' PicoBlaze Keyscan-Routinen, zum Upload mit TeraTerm-Makro
'''*.bin''' SPIN-1 externe I2C Rerverb Programme, zum Upload mit TeraTerm-Makro
===Sonstige Dateien===
'''hoaxflash.bat''' Batch-Datei, ruft AVRdude mit allen Parametern zum Flashen des Controllers mit
"HOAX_main.hex" und EEPROM-Datei "HOAX_main.eep" auf (für Windows).
Batch-Datei ist ggf. für das gewünschte Flash-File anzupassen!
'''avrdude.exe''' AVRdude-Programm zum Firmware-Update über serielle Schnittstelle (für Windows)
'''libusb0.dll''' Wird von manchen Windows-Systemen benötigt, um AVRdude auszuführen
===Verzeichnisse===
'''BETA''' enthält allerletzte Firmware und FPGA-Konfiguration
'''DOCS_PDF''' Syntax-Tabelle zur Kommunikation und weitere Unterlagen
'''FPGACORES''' FPGA-Konfiguration, Hallprogramme und Scan-Cores
'''PLATINEN''' Schaltpläne, Bestückungspläne und weitere Unterlagen
'''TERATERM_MACRO''' Update-Makros für empfohlenes Terminal-Programm TeraTerm 4.7x (für Windows)
'''giveio''' Wird benötigt, um AVRdude auszuführen
'''FOR_OEM''' enthält alle dateien für AVR-Erstprogrammierung, wie oben, jedoch mit eingebautem Bootloader
(Arduino/AVRdude-kompatibel) für Programmierung eines fabrikneuen AVR- Controllers.
Außerdem: ATmegaBOOT_xx8.c und Makefile, nur für Neukompilierung des Bootloaders mit WinAVR nötig

Aktuelle Version vom 9. Januar 2015, 18:32 Uhr

Achtung: Nur zur Dokumentation für ältere Boards. Beachten Sie bitte die neue Seite HX3 Remote/Update Application!

Grundsätzliches

Achtung: Nur zur Dokumentation für ältere Boards. Beachten Sie bitte die neue Seite HX3 Remote/Update Application!

Die HX3-Platine erlaubt es, die unter Bugfixes beschriebenen Updates über ein serielles USB-Adapterkabel selbst aufzuspielen. Keine Angst, Sie können die Hardware damit nicht beschädigen; falls doch etwas schief geht, können wir Ihnen die Platine jederzeit wieder neu programmieren. Sollten Sie sich das Update nicht zutrauen, können Sie die Platine auch einsenden und im Keyboardpartner-Shop für 10 Euro zzgl. Rücksendung ein Update bestellen.

Wir empfehlen bei Updates und Bugfixes, stets das ganze HOAX-Repository neu herunterzuladen (wenn GIT installiert ist, "clonen", wenn nicht, als ZIP herunterladen - Button in der rechten GIThub-Spalte - und auf "C:/" entpacken); persönliche Einstellungen sind vor dem Überschreiben Ihres evt. vorhandenen HOAX-Ordners zu sichern.

Ein Komplett-Update besteht in der Regel aus zwei Datei-Gruppen. Die erste Gruppe besteht aus dem Steuerprogramm (Firmware) für den Mikrocontroller ATmega644P, der sich um die Abfrage der Bedienelemente kümmert. Die Firmware besteht aus den Dateien

  • HOAX_main.hex (Flash-Inhalt) und
  • HOAX_main.eep (EEPROM-Inhalt, z.B. Preset- und Parameter-Voreinstellungen).

Daneben gibt es verschiedene Firmware-Anpassungen für besondere Fälle (z.B. Expander, XB-2 Kit etc.). Zum Aufspielen dieser Dateien auf Ihren HX3 entweder in obiges Schema umbenennen oder die Dateinamen in der Batch-Datei (siehe unten) ändern. Zum Update der Controller-Firmware verwendet man das Open-Source-Programm AVRdude oder eine ähnliche Lösung, die mit einem Arduino-kompatiblen Bootloader funktioniert. Und dann gibt es noch

  • die FPGA-Konfigurationsdatei main_midi.bit, die im Prinzip das "Schaltbild" und das physikalische Modell der B3-Orgel enthält,
  • die Datei hoax3rev.bin mit den Hallprogrammen für den kleinen Hall-DSP SPIN FV-1 und
  • max. acht Scan-Cores HX_xxx.dat, die wiederum im FPGA selbst von einer Art "Mini-Prozessor" ausgeführt werden und die Abfrage der Tastatur (bzw. MIDI) bewerkstelligen.

Die letztgenannten drei Teile lassen sich relativ einfach per XMODEM-Protokoll und einem Makro-fähgen Terminal-Programm hochladen, der ATmega644P kümmert sich dann weiter darum. In der Regel sollten Sie bei jedem Update alle Teile auf die HX3-Platine laden, zuerst immer das Firmware-Update. Im folgenden haben wir die Vorgehensweise anhand der kostenlosen Tools AVRdude und Teraterm 4.7x beschrieben.

Der Update-Prozess setzt eine funktionierende Platine mit Bootloader voraus, der auf jeder Bausatz-Platine bereits vorhanden ist. Vorbereitung des USB-Kabels wie unter Inbetriebnahme der Bausatz-Platine beschrieben. Das Upgrade/Update verlangt gewisse Kenntnisse im Umgang mit Kommandozeilen-Tools.

Test der Kommunikation

TeraTerm-Setup HOAX.INI aus HOAX-Repo-Ordner in den TeraTerm-Programmordner kopieren. FTDI-Kabel an Rechner-USB und HX3 anschließen, TeraTerm starten, Setup HOAX.INI laden (Menü Setup/Restore setup...) und ggf. passende Schnittstelle neu wählen (kann durch Windows-COM-Enumeration von der voreingestellten COM3 abweichen). HX3 einschalten, im TeraTerm-Fenster sollten die HX3-Bootmeldungen und Lizenznummern erscheinen (auch nach HX3-Reset mit 9999<ENTER>).

FTDI Kabel an HOAX-Platine angeschlossen, Reset-Jumper gesteckt für Firmware-Update über Bootloader. Pin 5 (+5V) des Steckverbinders sollte abgeknipst sein, sonst wird HX3 über USB versorgt (kann, muss aber nicht funktionieren).

Update der Controller-Firmware per Bootloader

Der AVR-Controller ATmega644 kümmert sich auf der HOAX-Platine um die Abfrage der Bedienelemente und die Auswertung der empfangenen MIDI-Controllernummern. Den Aufruf von AVRdude haben wir mit der Windows-Batch-Datei hoaxflash.bat erleichtert; sie beschreibt auch das EEPROM neu. VCP-Treiber für FTDI-Kabel und ggf. Terminal-Programm TeraTerm 4.7x müssen installiert sein (siehe Inbetriebnahme der Bausatz-Platine). Das benötigte Flash-Tool AVRdude ist im HOAX-Ordner bereits vorhanden, es sollte mittels der Batch-Dateien aufgerufen werden (außer, Sie wissen, was Sie tun!). Der COM-Port muss für AVRdude zugänglich sein, d.h. TeraTerm ggf. vorher beenden.

Achtung: Das Programmieren des Controller-EEPROMs überschreibt alle nachträglichen Einstellungen und eigene Presets, ebenso wie die Seriennummer-Freischaltcodes, die dann neu eingegeben werden müssen. Ihre Linzenzen bleiben dabei weiterhin gültig (evt. im Terminal-Programm ausgegebene Nummern beim Booten der HX3-Platine notieren).

  • Ggf. aktuelles "HOAX_main.hex" und "HOAX_main.eep" aus unserem GIT-Repository downloaden (als Raw-Text) und in das "C:\HOAX"-Verzeichnis kopieren. Wir empfehlen grundsätzlich, auch gleichzeitig die FPGA-Konfiguration main.midi.bit und die Scan-Cores HX_xxx.dat neu herunterzuladen (zum Upload in HX3 siehe unten). Bei umfangreicheren Updates passen sonst möglicherweise Firmware und FPGA-Konfiguration nicht zusammen!
  • Alternativ (und sicherer, Sie haben dann immer die neueste Dokumentation): Komplettes git-Repository als ZIP downloaden, entpacken und unter Beibehaltung der Verzeichnisstruktur in HOAX-Ordner kopieren; dann sind auf jeden Fall die COM-Partameter in den Batch- und Makro-Dateien erneut anzupassen (evt. Backup Ihrer Einstellungen aufbewahren)
  • Platine mit Strom versorgen (5V/500mA)
  • JP7 und JP8 müssen gesteckt sein
  • JP5 setzen
  • Windows "Command Prompt" im Verzeichnis "C:\HOAX" aufrufen, hoaxflash XX eintippen, aber Befehl noch nicht mit ENTER abschicken. XX steht für die Schnittstellennummer, z.B. "hoaxflash 3" für COM3.
  • Weiteren Jumper auf Position R quer auf PL1 setzen, das sind die beiden mittleren Pins 5 und 6 genau in der Mitte (grüner Jumper im Bild)
  • FTDI-Kabel an HOAX-Platine anschließen; GND = Pin1 = schwarzes Kabel!
  • Jumper auf Position R abziehen, LED1 muss 5x aufblitzen. Möglichst während die LED noch blinkt, in Windows Command Prompt "hoaxflash.bat" aufrufen, d.h. jetzt die ENTER-Taste drücken.
  • AVRdude programmiert Controller mit HEX- und EEP-Datei seriell und führt Verifikation der Daten durch.
  • Falls "out of sync" oder "verification error", Vorgang wiederholen.

Update der FPGA-Konfiguration (HX3-Sound-Engine)

Das FPGA ist der eigentliche Klangerzeuger und -verarbeiter der HX3-Platine; zusätzlich enthält es noch einen Mini-Controller für die Tastaturplatinen, der die eingestellte Scan-Routine abarbeitet. Beim Update der FPGA-Konfiguration sowie der Scan-Cores und Hallprogramme bleiben eigene Presets und Einstellungen sowie die Lizenz-Freischaltungen bestehen.

  • JP7 und JP8 müssen gesteckt sein
  • Ggf. aktuelle "main_midi.bit", "HX_*.dat" und "hoax3rev.bin" in Unterverzeichnis "FPGACORES" kopieren
  • In der Makro-Datei "HOAX_UPLOAD.TTL" in "\TERATERM_MACRO" Pfade "mypath=..." kontrollieren (mehrfach vorhanden, mit Texeditor zu öffnen) und ggf. auf aktuellen Pfad zu "<drive>:\HOAX\FPGACORES" setzen (Default C:\HOAX\FPGACORES)
  • TeraTerm starten und serielle Verbindung (57600/8n1) mit HX3-Platine herstellen, muss ENTER mit "#0:255=0 [OK]" beantworten
  • Makro "HOAX_UPLOAD.TTL" mit "Control/Macro..." öffnen/ausführen, Anweisungen folgen
  • Frage "Upload FPGA configuration?" mit Ja beantworten
  • Bei Frage nach Scan Core folgende Ziffern eingeben:
    • Core 0 = Chained OrganScan61 (alt, von Projekt Klangcomputer), mit ein bis drei Platinen in Reihe an PL14
    • Core 1 = MIDI receive only
    • Core 2 = ScanFatar2 mit ein oder zwei Manualen an PL14, ggf. zusätzlich Bass-Scanplatine mit 4014-SR an PL15
    • Core 3 = Scan4014-Strip/Bass parallel 2x 44 Tasten, 2x 3 Platinen an PL15
    • Core 4 = Scan4014-Strip/Bass parallel 2x 49 Tasten, 2x 3 Platinen an PL15
    • Core 5 = Scan4014-Strip/Bass parallel 2x 61 Tasten, 2x 4 Platinen oder ein bis drei Scan4014-Inline parallel an PL15
    • Core 6 = Test-Routine (Auslieferungszustand)
    • Core 7 = XB2 Retrofit Kit, XB2-Tastatur mit Adapterplatine
  • Bei nicht vollständig bestückter Platine (R-Netzwerke fehlen) immer Core 6 (Testroutine) wählen, HOAX ist sonst evt. nicht mehr ansprechbar!
  • Damit AVRdude wieder auf das FTDI-Kabel zugreifen kann, muss TeraTerm beendet oder Verbindung mit ALT-I unterbrochen werden!

Major Releases

Updates benötigen üblicherweise die komplette Neuprogrammierung des ATmega644 mit FLASH und EEPROM sowie Hochladen der beigefügten FPGA-Konfiguration. Da vorherige Einstellungen im EEPROM überschrieben werden, müssen Sie ggf. auch Ihre Lizenznummern erneut eingeben und die Presets neu abspeichern. Neuere Firmware-Versionen vertragen sich möglicherweise nicht mit älteren FPGA-Konfigurationen; wir empfehlen im Zweifelsfall, immer beides neu aufzuspielen!

Dateien im HOAX-Repository

HEX-Files zum Upload per AVRdude. Zum Update HX3 in Hardware-Reset versetzen durch Jumper auf PL1 "R" (Pin 5/6). Unmittelbar vor Aufruf von AVRdude über "hoaxflash.bat" (mit Angabe der COM-Port-Nummer, also z.B. "hoaxflash 3" für COM3) Jumper ziehen. Achtung: Update erfordert Neueingabe der Lizenznummern, siehe http://wiki.keyboardpartner.de/index.php?title=Lizenznummern_erwerben_und_eingeben für weitere Details. Zu jedem HEX-File gehört eine EEPROM-Datei mit Endung .EEP

HOAX_main.hex HX3 Standard, ggf. mit Preset24 oder 1 bis 2 Preset16-Panel
HOAX_main_latching.hex Latching Presets (einrastende Tasten) mit alter Preset12 MPX Platine
HOAX_main_tabvib.hex wie Standard, jedoch drei Schalter (V1,V2,CH - V3=V1+V2) statt Drehschalter an PL5
HOAX_main_buttonvib.hex wie Standard, jedoch Vibrato-Einstellung über die vier Common-Preset-Taster von Panel16 statt Drehschalter
HOAX_main_xb2.hex Spezialversion für XB2-Einbausatz, nutzt vorhandene Bedienelemente und Display
HOAX_main_xb2_panel16.hex Spezialversion für alten XB2-Einbausatz mit Panel16
HOAX_AVR_ALL.zip Enthält alle aufgeführten dateien, gepackt als ZIP

im Verzeichnis FPGACORES

main_midi.bit FPGA-Konfiguration zum Upload mit TeraTerm-Makro
*.dat PicoBlaze Keyscan-Routinen, zum Upload mit TeraTerm-Makro
*.bin SPIN-1 externe I2C Rerverb Programme, zum Upload mit TeraTerm-Makro

Sonstige Dateien

hoaxflash.bat Batch-Datei, ruft AVRdude mit allen Parametern zum Flashen des Controllers mit
"HOAX_main.hex" und EEPROM-Datei "HOAX_main.eep" auf (für Windows).
Batch-Datei ist ggf. für das gewünschte Flash-File anzupassen!
avrdude.exe AVRdude-Programm zum Firmware-Update über serielle Schnittstelle (für Windows)
libusb0.dll Wird von manchen Windows-Systemen benötigt, um AVRdude auszuführen

Verzeichnisse

BETA enthält allerletzte Firmware und FPGA-Konfiguration
DOCS_PDF Syntax-Tabelle zur Kommunikation und weitere Unterlagen
FPGACORES FPGA-Konfiguration, Hallprogramme und Scan-Cores
PLATINEN Schaltpläne, Bestückungspläne und weitere Unterlagen
TERATERM_MACRO Update-Makros für empfohlenes Terminal-Programm TeraTerm 4.7x (für Windows)
giveio Wird benötigt, um AVRdude auszuführen
FOR_OEM enthält alle dateien für AVR-Erstprogrammierung, wie oben, jedoch mit eingebautem Bootloader
(Arduino/AVRdude-kompatibel) für Programmierung eines fabrikneuen AVR- Controllers.
Außerdem: ATmegaBOOT_xx8.c und Makefile, nur für Neukompilierung des Bootloaders mit WinAVR nötig