Firmware mithilfe der Arduino IDE flashen

Arduino IDE Apr. 09, 2020
https://my.makesmart.net/topic/45/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: [ _ ] Kompilierung [✓] 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. 🏁

Community

Die makesmart Community ist der Ort, an dem du deine Ideen mitteilen und deine Erfahrungen austauschen kannst.

Großartig! Das Abonnement wurde erfolgreich abgeschlossen.
Großartig! Schließe als Nächstes die Kaufabwicklung ab, um vollen Zugriff zu erhalten.
Willkommen zurück! Du hast dich erfolgreich angemeldet.
Erfolg! Dein Konto ist vollständig aktiviert, du hast jetzt Zugang zu allen Inhalten.