Vom Programmcode zur Firmware

Schauen wir uns zunächst einmal an, welche Schritte gemacht werden müssen, um eine lauffähige Firmware für den TonUINO zu erhalten:
  1. Die Software, eigentlich der aktuelle Programm-Code, muss heruntergeladen werden
  2. Nach dem Herunterladen liegt der Programmcode als ZIP-Archiv vor und kann so noch nicht verwendet werden.
    Um den Programm-Code verwenden zu können muss das ZIP-Archiv "entpackt" werden, so dass alle enthaltenen Dateien im Originalformat verfügbar sind.
  3. Wenn die Dateien des Programm-Codes im Originalformat vorliegen, können (wenn gewünscht) Anpassungen und Änderungen vorgenommen werden.
  4. Der Programm-Code muss (nachdem ev. Anpassungen vorgenommen) in Maschinen-Code für den verwendeten Arduino übersetzt (compiliert) werden.
  5. Nach dem (erfolgeichen) Compilieren liegt nun die Firmware vor und kann auf den Arduino "hochgeladen" werden

Eine weitere Möglichkeit, die TonUINO Firmware mit Standardeinstellungen (ohne Möglichkeit der Anpassung) zu erhalten ist der Online-Upload



Download der TonUINO Software

Die jeweils neueste Release des TonUINO Programmcodes kann von GITHUB heruntergeladen werden.

Empfehlung;
Es hat sich als sinnvoll erwiesen, für das TonUINO Projekt ein eigenes Verzeichnis auf dem PC anzulegen, um dort alle benötigten Dateien und Informationen abzulegen.

So sind Dokumente und Informationen bei Bedarf schnell verfügbar.

Nach erfolgreichem Download befindet sich dann die Datei "TonUINO-TNG-main.zip" in diesem Ordner.


Entpacken der TonUINO Software

Die Datei "TonUINO-TNG-main.zip" ist eine komprimierte Archiv-Datei, die entpackt werden muss, damit die darin enthaltenen Dateien verwendet werden können.
Das Entpacken auf einem Windows-PC wird in einzelnen Schritten detailliert beschrieben:
  1. Schritt 1

    Mit dem "Windows Exlorer" das Verzeichnis öffnen, in das die Datei "TonUINO-TNG-main.zip" heruntergeladen wurde.
    Dort die Datei mit einem Doppelklick im Windows Explorer öffnen.

    In der Archiv-Datei befindet sich ein Verzeichnis "TonUINO-TNG-main"
  2. Schritt 2

    Das Verzeichnis "TonUINO-TNG-main" auswählen und mit der rechten Maustaste das Kontextmenü öffnen und die Funktion "Kopieren" auswählen.

    Anschließend wieder in das Verzeichnis "TonUINO" zurückkehren.
  3. Schritt 3

    Zunächst im Verzeichnis "TonUINO" mit der linken Maustate in einen freien Bereich klicken und anschließend dort mit der rechten Maustaste das Kontextmenü öffnen.
    Im Kontextmenü die Funktion "Einfügen" auswählen.

    Das Entpacken beginnt umgehend


  4. Schritt 4

    Wenn das Entpacken abgeschlossen ist, gibt es nun ein Verzeichnis "TonUINO-TNG-main"
    Dieses Verzeichnis muss abschließend noch umbenannt werden zu "TonUINO-TNG"
  5. Schritt 5

    Das Verzeichnis "TonUINO-TNG" sollte nun Struktur und Inhalt wie nebenstehenden gezeigt haben.

    Damit ist der Download und das Enpacken beendet und der Programm-Code des TonUINO für die nächsten Schritte bereit.


    Konfiguration / Modifikation der TonUINO Software

    Nach dem Download ist nun der gesamte Quellcode des TonUINO verfügbar und
    Geeignete Programme dazu sind "Arduino IDE und PlatformIO
    Wirkliche Ändeungen am Programm-Code sollten allerdings nur erfahrene Programmierer oder Experten vornehmen.

    Anpassungen an die verwendete Hardware und die Aktivierung von zusätzlichen Funktionen können einfach vom Anwender vorgenommen werden, da bereits die notwendigen Programmteile und Parameter so vorbereitet sind, dass sie nur noch über die Änderung einer einzigen Programmzeile aktiviert werden müssen.

    Alle für Änderungen vorgesehenen Programmzeilen befinden sich in der Datei "constants.hpp" und beginnen mit dem Schlusselwort "#define"

    Konfiguration der Hardware ist erforderlich für

    OHNE Konfiguration für Hardware kann das Programm nicht compiliert werden!

    "TonUINO-TNG Konfigurationsmöglichkeiten und Funktionen" enthält eine vollständige Übersicht der Möglichkeiten



    Compilieren der TonUINO Software

    Ist die Konfiguration / Anpassung des Programmcodes vollständig und korrekt ausgeführt, kann der Code nun compiliert werden.
    War das Compilieren erfolgreich, wird das Hochladen der Firmware auf den Mikrocontroller automatisch eingeleitet.

    Leider kommt es beim Compilieren auch zu Fehlern und der Vorgang wird abgebrochen. In diesen Fällen erzeugt der Compiler eine Reihe von Fehlermeldungen deren Analyse Hinweise auf die Ursache geben kann.

    Die potenziellen Fehlermeldungen sind so vielfältig, das es nicht möglich ist, auf alle einzugehen und bis zu einer Lösung zu analysieren. In den folgenden Beispielen sind einige typische Fehlermeldungen mit Hinweisen gezeigt, die als Interpretationshilfe dienen sollen.
    Diese Fehlermeldungen wurden auf einem funktionierenden System (bestehnd aus PC, Arduino IDE und TonUINO) für Dokumentatinszwecke gezielt provoziert.

    Hochladen der TonUINO Software

    Istder Programmcode erfolgreich compiliert worden, beginnt das Hochladen der Firmware automatisch.
    Hierbei kann es zu folgenden Fehlermeldungen kommen:

    TonUINO-TNG Uploader

    Mit dem "TonUINO-TNG Uploader" kann die Firmware für unterschiedliche Hardwarekonfigurationen mit den Standardeinstellungen direkt auf den TonUINO geladen werden.


    Es muss der entsprechende COM-Anschluss ausgewählt werden, uber den der TonUINO mit dem PC verbunden ist.
    (siehe dazu "Kontrolle / Herstellung der Verbindung")

    Sobald die vorliegende Hardware-Konfiguration für Mikrocontroller und Bedienfeld ausgewählt ist, kann der Upload gestartet werden.

    Der erfolgreiche Upload wird bestätigt.

    Funktionierende Hardware vorausgesetzt, ist der TonUINO nun nach einem Neustart einsatzbereit.

    Anpassung der Firmware in Datei "constants.hpp".

    Der Programmcode des TonUINO ist bereits für alle Funktionen vorbereitet und enthält auch bereits den dazu notwendigen Programmcode. Es ist wegen des begrenzten Programmspeichers des Arduino Nano jedoch nicht möglich, alle Programmanteile zu kompilieren und in den Arduino Nano zu laden.
    Aus diesem Grunde gibt es die Datei "constants.hpp" über die Programmteile einfach aktiviert und deaktiviert werden können.

    Die Programmteile, die zur Auswahl stehen, sind in der Datei mit dem Schlüsselwort "define" und einem charakteristischen Begriff für die Programmfunktion gekennzeichnet.
    Typisch wird diese Zeile in der constants.hpp mit 2 Schrägstrichen (//) eingeleitet
    Diese Schrägstriche am Zeilenanfang bedeuten, dass der entsprechende Programmteil NICHT aktiviert ist.
    Soll der Programmteil aktiviert werden, müssen lediglich die 2 Schrägstriche am Zeilenanfang entfernt werden.

    Beispiel:
    Im folgenden Programmcode ist die Funktion "USE_POLOLU_SHUTDOWN" nicht aktiviert, da die Zeile mit 2 Schrägstrichen beginnt.
    // ######################################################################
    
    /* uncomment the below lines if you use Pololu Powerswitch or Traeger Platine for shutdown
     * wenn der Pololu Powerswitch oder die Traeger Platine für das Shutdown verwendet wird, in den nächsten Zeile den Kommentar entfernen
     */
    //#define USE_POLOLU_SHUTDOWN
    //#define USE_TRAEGER_PLATINE_SHUTDOWN
    
    Im nächsten Abschnitt wurden die Schrägstriche am Zeilenanfang im Programmcode entfernt womit die Funktion "USE_POLOLU_SHUTDOWN" nun aktiviert ist.
    // ######################################################################
    
    /* uncomment the below lines if you use Pololu Powerswitch or Traeger Platine for shutdown
     * wenn der Pololu Powerswitch oder die Traeger Platine für das Shutdown verwendet wird, in den nächsten Zeile den Kommentar entfernen
     */
    #define USE_POLOLU_SHUTDOWN
    //#define USE_TRAEGER_PLATINE_SHUTDOWN
    
    
    Bei diesen Änderungen ist mit großer Sorgfalt vorzugehen, da alle anderen Zeichen (auch Satzzeichen !) zum Programmcode gehören und eine Veränderung zu Fehlern beim Compilieren führt.

    Nachdem alle Änderungen vorgenommen sind, muss die Firmware erneut compiliert werden.