d3c Firmware


Die Datenpakete für das Firmwareupdate werden über die Midischnittstelle in Form sogenannter Sysex Datenpakete übertragen und von d3c empfangen, dort zwischengespeichert und nach einer Fehlerüberpüfung in den beschreibbaren Flashspeicher geschrieben.


Dabei werden alternativ zwei Dateiformate benutzt:

SYX  - Files

oder

MID  - Midistandardfiles


Die SYX Dateien enthalten die 'reinen' SysEx Informationen, so wie sie später direkt an das d3c geschickt werden.
Es sind keinerlei andere Midi Daten sowie Zeitinformationen enthalten.
In einer SYX Datei können einer oder mehrere (im Prinzip beliebig viele) SysEx Blöcke enthalten sein.

Wenn mehrere SysEx Blöcke enthalten sind, muss die zum ordnungsgemässe Programmieren notwenige Pause von 5-6 Sekunden vom zu übertragenden Programm eingehalten werden bzw. eingestellt worden sein.
Hierzu verwenden wir das Programm Midiox.
Es existieren auch noch andere Programme / Möglichkeiten auf dieser und anderer Rechnerplatform, jedoch können wir zur Zeit darüber keine verbindlichen Aussagen machen und freuen uns natürlich auf jeden Hinweis, den wir von Benutzern dazu erhalten.


MID Dateien können alle Art von Mididaten enthalten, speziell im Gegensatz zu SYX Dateien, auch Zeitinformationen.
Viele Midiprogramme / Rechnerbetribessysteme unterstützen im Gegensatz zum SYX Format das Midistandardfile Format direkt und können dieses so abspielen.
Bei 'normalen Midi Events, wie Noten, Controller etc. in der Regel auch fehlerfrei und ohne Probleme.
Leider 'stolpert' so mancher Midifileplayer gerade bei den benötigten SysEx Daten Blöcken und der zeitlichen Information der einzelnen Blöcke. Vor allem, wenn diese eine gewisse Grösse überschreiten, sodass wir das Midistandardfile leider nicht uneingeschränkt empfehlen  bzw. benutzen können.

Die Tauglichkeit des Updates mittels  Midistandardfiles hängt somit stark vom verwendeten Rechner, Betriebssystem und dem dafür verwendeten Programm ab.

Wir haben den Mediaplayer unter Windows XP ausführlich getestet und er hat sich bei uns als zuverlässig & problemlos erwiesen.
Es ist dabei unbedingt darauf zu achten, das der Default-Midiausgang des Mediaplayer auf den verwendeten MidiOut geleitet ist:
Systemsteuerung->Sounds und Audiogeräte -> Audio -> Midi-Musikwiedergabe -> Standardgeräte:  MPU 401   !! und nicht 'MicrosoftGS Wavetable Software Synth' 
Ansonsten kann man hier leider nur sagen - Probieren geht über studieren.

Der Vorteil des Midistandardfiles ist somit hauptsächlich, dass normalerweise kein spezielles Programm, wie z.B. der Midiox dafür benötigt wird und das Handling einfacher ist 'Anschliessen - Doppelklicken - warten - fertig', wird aber mit einer etwas grösseren Unsicherheit beim Updaten erkauft.

 
Achtung:
Um den Firmwareupdate möglichst 'gefahrlos' durchführen zu können, sind im Downloadpaket zusätzlich verschiedenen Testdateien enhalten, mittels derer ein quasi simulierter -Download durchgeführt werden kann, um sich mit der Vorgehensweise 'trocken' vertraut machen zu können, ohne die Betriebssoftware zu beschädigen.
d3c_test_01.syx ; d3c_test_02_syx ; d3c_test_all.syx
d3c_test_all.mid
Dabei  werden wie beim 'echten' Update Daten real in den Speicher programmiert, allerdings an eine Stelle, die bisher nicht mit gültigen Programmcode belegt ist. Da der Flashspeicher also wirklich angesprochen und in den Brennmodus versetzt wird, könnte bei plötzlichen Stromausfall oder einem Hardwaredefekt / Störimpuls rein theoretisch doch auch der mit der Betriebssoftware belegte Speicherinhalt beschädigt werden. Daher darf auch bei einem Testupdate nicht während des Updatevorgangs das Gerät ausgeschaltet o.ä. werden.
Zusätzlich sind noch Dateien enthalten, die beim Updatevorgang fehlerhafte Daten übertragen bzw. eine Fehleranzeige zur Folge haben, damit auch dies einmal simuliert werden kann.
d3c_test_all_error.mid

Übertragung über Midi In / Out





Die Sysex Datenblöcke werden über die 'echte' Midischnittstelle des Computers und dc3 übertragen.

Hierzu Midi-Out-Computer mit Midi-In-d3c verkabeln und wenn man noch die Rückmeldung von d3c in Form von in Aftertouch Events verpackten Checksummen mitkontrollieren möchte wird Midi-In-Computer mit Midi-Out-d3c verbunden.

Achtung, wenn am Computer kein 'echter' Midi-In/Out mehr zur Verfügung steht (meist bei aktuellen Laptops) und der Computer somit mittels eines externen USB Midi Interface 'nachgerüstet' wurde, so empfehlen wir hierbei auf jeden Fall den Midi-Out-Buffer im Midiox auf mindestens 2048 Bytes (besser noch mehr) einzustellen. Ansonsten kann es auch hier zu den unter dem nächsten Punkt beschriebenen Problemen beim Übertragen von grösseren SysEx Blöcken kommen.

Übertragung über USB Midi

USB Midi wird zur Zeit nicht unterstützt



Da sich im Windows USB Midi Treiber zur Zeit ein Problem befindet, dass unter Umständen bei grösseren Sysex Datenpaketen auftreten kann, was genau auf der Updatetransfer zutrifft, ist die Datenübertragung für das Update auf diesem Wege zur Zeit noch nicht möglich.
Wir arbeiten jedoch an einem Workaround, der allerdings vermutlich nur durch Verwendung des Midiox mit speziellen Parametern arbeiten wird.
Eine sicherer Problemlösung auf der Basis eines Midistandartfiles wird es wahrscheinlich nicht geben können.
 



Übertragung Speicherblock 1 


Das Update ist aus technischen Gründen in eine Reihe / Anzahl von einzelnen Teilblöcken aufgeteilt.

Es können entweder alle Teilblöcke einzeln von Hand hintereinander übetragen werden  (Achtung - darauf achten, dass alle Blöcke vollständig & fehlerfrei im d3c angelangt sind, bevor das Gerät ausgeschaltet wird.)

Also z.B. beim V1.0 besteht das komplette Update aus  7 Blöcken

1)  Laden / Übertragen:         d3c_01.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 1) sonst weiter zu 2)
2)  Laden / Übertragen:         d3c_02.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 2) sonst weiter zu 3)
3)  Laden / Übertragen:         d3c_03.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 3) sonst weiter zu 4)
4)  Laden / Übertragen:         d3c_04.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 4) sonst weiter zu 5)
5)  Laden / Übertragen:         d3c_05.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 5) sonst weiter zu 6)
6)  Laden / Übertragen:         d3c_06.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 6) sonst weiter zu 7)
7)  Laden / Übertragen:         d3c_07.syx        6-7 Sekunden warten - Kontrolle Anzeige der Leuchtdioden - im Fehlerfall  zurück zu 7) sonst fertig


Alternativ kann auch eine SYX Datei geladen & verschickt werden, in der alle 7 Blöcke der Reihe nach enthalten sind.
Dabei muss das verwendete Programm (Midiox) dann jedoch die Pausen zwischen den einzelnen Teilblöcken einhalten.

d3c_all.syx

bzw. als  Midistandard  Datei

d3c_all.mid


In allen Fällen wird von d3c beim ersten Eintreffen eines gültigen SysEx Blockes in den Update Modus geschaltet, der sich nur noch auf diese Aufgabe konzentriert - d.h. alle anderen Funktionen, wie Abfragen der Drawbars, Taster und die Ausgabe der entsprechenden Midi Daten werden nicht mehr ausgeführt.

Auch die den Tastern zugeordneten Leuchtdioden haben nun andere Funktionen und zeigen den Zustand der fehlerbehafteten oder fehlerfreien Übertragung an bzw. den ordnungsgemässen Brennvorgang des Flashspeichers.

Dabei ist den durchnummerierten Teilblöcken auch jeweils die gleichnummerierte Leuchtanzeige der Preset Bank/Number Taster zugeordnet.

Global wird der Zustand nochmals von den Leuchtdioden des Tasters Rotor/SlowFast angezeigt.
Diese Anzeige wird bei jeden Teilblock erneuert, während nach einem erfolglos durchgelaufenden Teilblock die Leuchtdiode der Presetbank Nummer weiterblinkt, bei einem fehlerfreien Druchlauf die Leuchtdiode jedoch permanent angeschaltet bleibt.

Das Ziel ist also, dass nach einem kompletten Durchlauf die Leuchtdioden der Presetbank Taster von 1 - 7  (V1.0) permanent angeschaltet sind.
Wenn eine oder mehrere Anzeigen jedoch blinken, so ist ein Fehler aufgetreten und der zugehörige Blöck steht noch nicht im Flashspeicher.
Dann ist unbedingt der Updatevorgagn (teilweise oder komplett) zu wiederholen.
Auf keinen Fall das Gerät abschalten, wenn noch eine Leuchtdiode blinkt.
Mit ziemlicher Wahrscheinlichkeit wird dann anschliessend das d3c nicht mehr funktionieren und der Updatevorang wird somit in dieser Form auch nicht mehr möglich sein.

Dann gibt es jedoch trotzdem noch 2 Möglichkeiten dem d3c wieder Leben einzuhauchen, über den Bootloader und letztlich direkt über den im Prozessor eingebauten ROM Loader.




Verschiedene Übertragungssituationen / Fehlersituationen und die Anzeige der Leuchtdioden:



 Block 1 wird gerade übertragen




Block 1 wird gerade gespeichert





Block 1 nach Übertrag gespeichert.  Fehlerfrei
 


Übertragung Speicherblock 2






Block 1 o.k.
Block 2 wird gerade übertragen




Block 1 o.k
Block 2 wird gerade gespeichert




Block 1 - 2 o.k.



Alle Speicherblöcke richtig übertragen





Fertig - alles o.k.




Fehler bei der Übertragung




Fehler Speicherblock 2 und 5 bei der Übertragung
Erneuter Versuch erforderlich - d3c auf keinen Fall in diesem Zustand abschalten !


Letzte Änderung 18.04.06