Hallo,
ich habe vor einiger Zeit meinen 3D-Drucker mit einem Arduino Mega ausgerüstet nachdem die Original Platine defekt war. Leider habe ich anschließend nicht mehr mit der Arduino IDE gearbeitet und zwischenzeitlich meinen Rechner gewechselt (soll heissen die Originaldatei ist nicht mehr vorhanden). Nun muss ich kleinere Optimierungen an der Treibersoftware durchführen, was aber daher zu einer kompletten Neuinstallation führt.
Aus dem Grund würde ich gerne den vorhandenen Code vorher aus dem Arduino auslesen und sichern. Ich möchte an dem Code nichts verändern sondern nur zur Sicherheit speichern, sodass ich ihn im schlimmsten Fall unverändert wieder einspielen kann.
Ich habe da bisher ausser avrdude nichts gefunden, aber das scheint mir recht kompliziert zu sein (ich bin kein großer Commandlinecoder ;-)).
Gibt es da keine einfache Möglichkeit?
Danke für einen Tip
Von einer "einfachen" Möglichkeit - klick - klick - klick - habe ich in diesem Forum noch nicht gelesen. Eventuell solltest Du Dich doch mit avrdude anfreunden und Deine Frage in "Wie geht das Auslesen und das anschließende Einspielen mit avrdude?" ändern
Nur so als Idee: Hast Du keine Sicherung Deines alten Rechners? Die Quelldatei in C++ wäre sicherlich hilfreich, denn die bekommst Du durch das Lesen der Datei in Prozessorsprache nicht erstellt.
Du bekommst maximal nur den übersetzten Maschinencode.
Daraus eine Code-Datei zu machen ist nicht unmöglich, aber eher mit einem unverhältnismäßigem Aufwand verbunden.
Ich mußte mich bisher nie mit avrdude beschäftigen und ich bin ein Fummler, also vermutlich kein guter Ratgeber.
Ich habe in Win10 die Eingabeaufforderung geöffnet, bin ins Verzeichnis c:\Program Files (x86)\Arduino-1.8.19\hardware\tools\avr\bin gewechselt und habe avrdude gestartet. Erwartungsgemäß bekomme ich die Hilfe angezeigt. Dort steht auch ein Link zur Doku http://savannah.nongnu.org/projects/avrdude/. Da ich die nicht kenne, kann ich nicht beurteilen, ob sie gut ist.
Dann würde ich die IDE starten, die Ausgabe beim Kompilieren und Hochladen auf "ausführlich" stellen, um vom Speichern zu lernen und auf das Lesen zu übertragen.
Mit dem Ergebnis würde ich dann hier im Forum fragen, wie es besser geht.
Dann hätte ich Initiative gezeigt und eventuell jemanden motiviert, mir auf die Sprünge zu helfen.
Ist mein Vorgehen klug? Da ich aus einer Zeit ohne Internet stamme, versuche ich mich wie Münchhausen selbst aus dem Sumpf zu ziehen. Heute fragt man Alexa "regnet es gerade", ich halte die Hand aus der Tür.
Maschinencode wäre ja OK wenn ich den auslesen und im Notfall auch wieder einspielen könnte. Ich bin mir halt nur unsicher, das ich am Ende den Drucker unbrauchbar mache weil mir dann am Ende irgendwelche Parameter fehlen und nix mehr funktioniert. Dann lieber mit dem leben was im Moment läuft.
Nur ich komme mit avrdude einfach nicht klar.
Die überarbeitete Firmware würde ich ja mit Anrduino IDE bearbeiten und einspielen. Ich weiss halt nicht mehr genau welche Temps und Stepper genau verbaut sind. Kann man ja alles ausprobieren. Es geht nur darum auch eine Sicherung des Istbestandes zu haben.
Vorsicht: wenn du "Hochladen" statt "Nur Kompilieren" wählst und mit dem zu sichernden Arduino spielst, hast du hinterher nichts mehr, was sich zu sichern lohnt.
Daher würde ich auch den aktuell verbauten Mega nicht zum Testen verwenden sondern wirklich als Backup beiseite legen. Anders ausgedrückt: erstmal nur das Auslesen mit dem Board, dann schauen ob das Ergebnis auf einem zweiten Board auch läuft. Nur dann weißt Du, ob das alles so geklappt hat. Und wenn nicht, dann ist wenigstens Board 1 noch lauffähig.
Ja wo schalte ich denn auf "ausführlich"? Da ist nur der Kompilieren und der Hochladen Button?!?
Und natürlich wäre es schön zunächst einen zweiten Arduino zum Testen zu nutzen. Aber den hab ich nun mal nicht und ich wollte mir jetzt auch keinen dafür kaufen.
Für Änderungen am ursprünglichen Sketch musst du eh bei Null anfangen. Da ist das Weglegen des ersten Arduino als Backup evtl. besser als nur eine .HEX Datei irgendwo zu vergraben sichern.