Firmware mithilfe der Arduino IDE flashen



  • Es gibt eine sehr einfache Möglichkeit, *.bin-Dateien mithilfe der Arduino IDE zu flashen. *.bin-Dateien sind fertig kompilierte Programme - auch bekannt als Firmware. Ein sehr bekanntes Beispiel dafür ist zum Beispiel die Tasmota-Firmware für den ESP.

    Ich möchte euch hier eine Möglichkeit zeigen, das Flashen einer Firmware mithilfe der Arduino IDE durchzuführen.

    Dieses Verfahren funktioniert sowohl unter Windows, als auch unter Mac. Wahrscheinlich funktioniert das genauso unter Linux. Das habe ich aber nicht getestet.

    Vorbereitungen

    Geht in der Arduino IDE zuerst auf Datei - Voreinstellungen
    und setzt dann einen Haken bei Ausführliche Ausgabe während: [✓] Hochladen

    check_upload.png
    Beachte: Erst mit dem Bestätigen auf [Ok] - unten am Fenster - wird die Einstellung gespeichert.


    Wählt danach aus der Liste der Boards das Board aus, auf das ihr eure gewünschte Firmware flashen möchtet.

    Auf das Board wird zuerst ein Dummy-Programm geschrieben. Es kann sich dabei auch um ein leeres Programm handeln. Das Hochladen des Programms liefert uns die Daten die wir brauchen, um die gewünschte eigene Firmware zu flashen.


    Im Monitor der Arduino IDE findet ihr nach dem Upload eine Ausgabe, über die Pfade die für das Hochladen verwendet werden.

    Der Sketch verwendet 256312 Bytes (24%) des Programmspeicherplatzes. Das Maximum sind 1044464 Bytes.
    Globale Variablen verwenden 26804 Bytes (32%) des dynamischen Speichers, 55116 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.
    D:\Users\cooper\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 D:\Users\cooper\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/upload.py --chip esp8266 --port COM4 --baud 921600 --before default_reset --after hard_reset write_flash 0x0 D:\Users\cooper\AppData\Local\Temp\arduino_build_165769/Blink.ino.bin 
    

    Wichtig ist nur die letzte der drei Zeilen. Kopiert euch diese Zeile am besten in ein Textprogramm.


    Diese Zeile schreibt die Firmware auf das Board - die gerade eben durch die Arduino IDE kompilierte .ino Datei.

    
    D:\Users\cooper\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 D:\Users\cooper\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/upload.py --chip esp8266 --port COM4 --baud 921600 --before default_reset --after hard_reset write_flash 0x0 D:\Users\cooper\AppData\Local\Temp\arduino_build_165769/Blink.ino.bin 
    
    

    Diesen Befehl kann man nutzen, um jede andere *.bin-Datei auf das ausgewählte Board zu laden.


    Ersetzt dafür einfach den letzen Pfad in der Zeile, mit dem Pfad der *.bin-Datei, die ihr auf das Board schreiben wollt.

    Der Pfad:

    D:\Users\cooper\AppData\Local\Temp\arduino_build_165769/Blink.ino.bin
    

    wird zu

    D:\Users\cooper\Desktop\tasmota-DE.bin
    

    Der neue Befehl zum Schreiben auf das Board lautet also dann:

    
    D:\Users\cooper\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 D:\Users\cooper\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/upload.py --chip esp8266 --port COM4 --baud 921600 --before default_reset --after hard_reset write_flash 0x0 D:\Users\cooper\Desktop\tasmota-DE.bin 
    
    

    Firmware flashen

    Druckt Win + R und startet die Eingabeaufforderung in dem ihr cmd eintippt.

    Kopiert den Befehl zum Schreiben auf das Board und fügt ihn ein.
    Anschließend wird die Datei D:\Users\cooper\Desktop\tasmota-DE.bin auf das Board geschrieben. 🏁