Ein Arduino mit einen Arduino flashen

Hallo,

ich würde euch gerne um Rat bitten mir bei meiner Projekt-Idee weiter zu helfen. Danke im Voraus!

Es geht darum, dass ich einen Arduino (mit Display versehen) dazu benutze, um einen anderen Arduino UNO mit Sketches zu flashen. Dabei soll es die Auswahl-Möglichkeit geben von mehreren Sketches geben, die auf den zweiten Arduino UNO geflasht werden können. Dh., dass der Arduino mit Display soll dazu in der Lage sein, zwischen mehreren Sketches auswählen zu können, um dann ein ausgewählten Sketch auf den zweiten Arduino UNO drauf zu flashen. Der Arduino mit Display ist im Gebrauch nicht mit dem Laptop ect verbunden. Er soll mit Batterie betrieben werden und muss die Sketches dementsprechend auf dem Board (vielleicht per SD-Karte?) gespeichert haben.

Wäre meine Idee umsetzbar?
Wenn ja, wie bekomme ich das hin, das ich per Display ein gespeicherten Sketch auswählen und dann den zweiten Arduino UNO damit flashen kann?

Ich wäre sehr dankbar für passende Vorschläge, danke an euch.

Beste Grüße
Sebastian

Moin Sebastian!

Wäre meine Idee umsetzbar?

Ich denke schon, dass gehen kann.

wie bekomme ich das hin, das ich per Display ein gespeicherten Sketch auswählen und dann den zweiten Arduino UNO damit flashen kann?

Das ist ein Ü-Ei mit drei Überraschungen - ach nee, Aufgaben:

  • Display ansteuern und (Dummy-)Sketch auswählen
  • Die Sketches ablegen und auslesen können
  • Den zweiten Uno flashen

Je nach Deiner Vorerfahrung würde ich die in der Reihenfolge zunächst einzeln erarbeiten und dann das Werk zusammenführen.
#3 scheint mir schwierig, denn Du musst wohl (mindestens) den Sketch 'ArduinoISP' verstehen und daraus die Programmierung des Slave-Chips in Dein Werk integrieren oder nach intensivem Studium der Dokumentation selbst implementieren.

Scheint mir eine durchaus nicht triviale Herausforderung zu sein.

Gruß Walter

Du willst also auf einem Arduino einen Sketch unter mehreren aussuchen und diesen auf den zweiten Arduino zu flashen.
Grüße Uwe

Hier mal ein Ansatz

@TO: Ich denke du solltest mal dein Ziel beschreiben, nicht den Weg, denn den kennst du nicht.

So wie ich das verstehe möchtest du verschiedene Sketche laufen lassen können-> Warum?
Warum baust du nicht alle zusammen und wählst sie dann aus?
Dann musst du nicht jedes mal neu flashen.
Was ist der Sinn dahinter?

Lieben Gruß,
Chris

Moin und danke an der STelle für eure große Teilnahme an meiner Projekt-Idee.

@wno158
Danke für dein Beschreibung, wie ich vorgehen sollte/könnte. Ich finde die Aufgabe auch alles andere wla
selbsterkläre.

@uwefed
Ja genau und dabei ist es vorgesehen, dass beide nicht mit dem PC/Arduino-IDE verbunden sein werden.
Das ist für mich auch die große Herausvordrung, da der Arduino mit Display den zweiten Arduino flashen soll,
ohne dass das flashen über/durch (wie auch immer) die Arduino IDE ablaufen soll.

@combie
Vielen Dank für den Ansatz.

@themanfrommoon
Dadurch, dass auf dem Arduino UNO (ziel.Board) viel verschieden Hardware vorhanden ist (WiFI, GSM, Lora, Bluetooth) und die
unterschiedlichen Skatches die unterschiedliche Hardware "beinhalten", bez. nur für die einzele Hardware und nicht alle zusammen
vorgeshen ist. Und so soll man die Möglichkeit haben mit den Test-Sketches die Hardware einzelt austesten zu können.

Das ist der Sinn dahinter :wink:

Ich stimme allem bisherigen zu

  • Prinzipiell machbar
  • Teilaufgabe 3 (anderen Uno flashen) ist die eigentliche Herausforderung.

Alternativ zu combie's Hinweis ( ArduinoAsISP_standalone) wäre evtl. auch möglich, Seriell mit dem Ziel-Uno und dessen Bootloader zu kommunizieren.
Da würde der Quell-Uno den Part der IDE beim Sketch-Hochladen übernehmen und einen Bootloader auf der Gegenseite erwarten.
Ob dadurch irgend etwas einfacher würde, kann ich nicht beurteilen.

Der Quell-Uno braucht sicherlich neben Display und Menü-Tasten eine SD-Karte mit den wählbaren .hex Dateien drauf, damit das Ganze überhaupt Sinn macht. Diese SD-Karte würde dann am PC, wo die Sketche übersetzt werden (Ergebnis: .hex Datei) vorbereitet bzw. aktualisiert.

Es gab auch mal den Ansatz, einen Spezial-Bootloader zu machen, der prüft, ob eine SD Karte vorhanden ist, und wenn ja und erforderlich (?), nach Reset von dort den zu ladenden Sketch zu holen. Da bräuchte jeder deiner Ziel-Unos einen SD-Leser.

Mode heutzutage ist natürlich das Internet, und OTA flashen. Das passt aber nicht zu atmega328 - Unos.

Schau dir mal IOT App Story . Com an (mal googlen) von Andreas Spiess. Da kannste verschiedenen MCs Code zuweisen. Der Rest geht automatisch. Ist alerdingsInternetzugang für nötig. Hab ich mit einigen ESP8266 gemacht. Funktioniert sehr gut