Programm über Ethernet auf 2560 übertragen

Hallo,
trotz google und forumssuche bin ich noch total verwirrt.
Es wäre nett, wenn ihr mich in die richtige Richtung schickt.

Stand: Erste Versuche mit meinem Arduino 2560 mit Ethernet(+SD-Card)-Shield laufen sehr zufriedenstellend. Das Auslesen der DS18B20 ist dank der hervorragenden Bibliotheken und Beispiel-Sketches sehr einfach. AInputs und DInputs auch super. Netzwerk per DHCP auch super.

Ziel: Künftig werde ich das gute Stück nicht per USB erreichen. Am liebsten wäre mir, ich könnte das Programm(Sketch) über ETHERNET auf das Board spielen, theroretisch geht natürlich auch übee Ethernet auf die SD-Card und der Arduino "holt sich dann das Programm???".

Die Artikel zum Bootloader verwirren mich eher, vor allem, weil ich "wie ich es von klassischen Boot-Loadern kannte" - keinen TFTP-Server oder ähnliches einsetzen wollte.

Vielen Dank im Voraus

Hi,

willkommen im Club.

An dem Thema häng ich auch gerade. Hab mit dem Ariadne Bootloader geliebäugelt. Aber den gibt es (noch) nicht für den ATMega 2560.
Steh mit einem der Entwickler in Kontakt, und der meinte evtl. bis Weihnachten wäre eine Version fertig.

Werde in der Zwischenzeit mal probieren über einen umgebauten Router zu flashen. Sieh dazu auch diesen Thread http://arduino.cc/forum/index.php/topic,133041.0.html
Den Router hab ich schon. jetzt fehlt mr nur noch die Zeit dafür. :~

Gruß/hk007

Hi,
vielen Dankfür die Info.

Ich werde das halt wohl noch beobachten müssen. Einen Router o.ä. möchte ich ungern verwenden, derzeit habe ich einen USB-LAN-Server davor, wollte aber gern ein Gerät (und einen Switch-Port) sparen.

herbert-f:
derzeit habe ich einen USB-LAN-Server davor

Das klappt??? Du kannst damit flashen? Welchen USB-LAN-Server hast du da?
Mir wurde (auch von Herstellern gesagt, daß das nicht funktioniert.

Na klar geht das auch mit USB-LAN Servern.

FritzBoxen zum Beispiel können das,
OpenWRT und DDWrt Router haben das ebenso drauf.

Weiterhin wäre zu beachten, dass man mittels avrdude als Package einen ganz kleinen 15€ Router als Flashdongle nutzen kann.

Manawyrm:
Weiterhin wäre zu beachten, dass man mittels avrdude als Package einen ganz kleinen 15€ Router als Flashdongle nutzen kann.

Hast du dazu weitere Infos?

Was verstehst du unter Flashdongle? Arduino Software auf Router, anstecken und dann automatische Übertragung.
So was ähnliches hab ich schon mal kommerziell für teures Geld gesehen. Weiss aber leider nicht mehr den Namen.

Die Ironie an dieser Lösung ist, das die Hilfselektronik zum Flashen des 8bit Arduino vermutlich ein 32bit ARM-Cortex o.ä. mit dem 10fachen an FlashRAM und SRAM und Taktfrequenz, einer Netzwerkschnittstelle und einem Embedded Linux ist. :smiley:

Genau diese Ironie finde ich auch "unschön" - deswegen suche ich ja nach einer Lösung OHNE extra Gerät.

Meine Idee, das Programm (von mir aus auch in hex) auf die SD-Card zu speichern und von dort zu laden ist wohl vollkommen unrealistisch??

Vermutlich nicht, würde aber einen angepassten Bootloader voraussetzen. Der "normale" Bootloader macht ja eigentlich auch nix anderes, als nach einem Reset eine Weile auf der seriellen Schnittstelle auf den Upload eines Sketches zu warten. Kommt was sinnvolles, wird es geflashed. Wenn nicht wird der aktuelle Sketch ausgeführt.
Was Du dann aber brauchst sind zwei Dinge.

  1. Der laufende Sketch Deiner Anwendung muss in der Lage sein per Netzwerkverbindung ein HEX-File auf die SD-Karte zu schreiben und danach um das Flashen zu initiieren einen RESET auslösen.

  2. Der angepasste Bootloader wartet nicht nur auf der seriellen Schnittstelle auf einen Sketch, er schaut auch auf der SD-Karte nach einem HEX-File. Findet er eins, flashed er sich selbst, so als würden die Daten von der seriellen Schnittstelle kommen. Anschliessend löscht er die Datei (oder benennt sie um), damit sie beim nächsten Reset nicht nochmal geflashed wird. Danach wird ein Reset ausgelöst und da es dann keine "neue" HEX-Datei mehr gibt und auf der seriellen Schnittstelle kein Sketch kommt, wird der aktuelle Sketch gestartet.

Das wäre sicher ein spannendes Projekt, denn der Bootloader müßte noch nichtmal Netzwerk-Funktionen haben, nur SD-Karten lesen können. Ein neuer Sketch könnte dann auch einfach durch Tauschen der SD-Karte geladen werden.

@hk007: Klar! http://arduino.cc/forum/index.php/topic,133041.0.html

Hast du dazu weitere Infos?

Manawyrm:
@hk007: Klar! http://arduino.cc/forum/index.php/topic,133041.0.html

Hast du dazu weitere Infos?

OK. Den Thread kenn ich nur zu gut :slight_smile:
Ich dachte dass mit Flasdongle ein offline-Modul gemeint ist, daß ich über USB an den Arduino anstecke und der dann den Arduino ohne Netzwerk bzw. ohne PC flashen kann. Dazu hab ich nach Infos gefragt.

=)

Danke für den Link. Da werde ich mir mal eins ordern..