Hex-File über USB-Buchse vom Arduino aufspielen

Hallo,

ist es möglich, einen Sketch so aus Arduino raus zu exportieren, dass eine andere Person diese Datei dann mit der Arduino-Software selbständig auf einen baugleichen Arduino aufspielen kann, ohne dass er dabei den eigentlichen Inhalt des Sketches (inkl. Kommentare usw.) lesen kann?

Gruß Chris

Das HEX File ist der kompilierte Sketch. Das sind dann nur Zahlen. Um auf einen C-Programm zu kommen mußt Du dekompilieren. Das dekompilierte Programm ist dann aber sehr unleserlich.
Dabei sind alle Komentare, Variablennamen, Funktionsnamen, Funktionen verloren.
Grüße Uwe

Kann man ein Hex-File mit der Arduino-Software erzeugen? Kann man ein bestehendes Hex-File über die Arduino-Software auf einen Arduino schreiben?

Gruß Chris

Jein und nein.

Jein: Das HEX_File wird beim Compilieren erzeugt und steht in einem temporären Buildordner. (c:\Benutzer<name>\AppData\Local\Temp\build<rigendetwas langes unverständliches>.tmp) (Dort sollte man auch ab und zu mal Aufräumen. Jeder Start hinterläßt da leider ein paar Verzeichnisse, die nicht gelöscht werden.)
Die HEX Datei heißt dann .cpp.hex

Nein, die Arduinosoftware kann das nicht. Aber AVRDude, der in der ArduinoIDE mit dabei ist. Denn den steuert die IDE auch für das Hochladen an.

Hallo Chris,

das hex File kannst du dir, wie schon gesagt, aus dem Temp Ordner ziehen.
Um das hex File auf einen anderen Controller zu bringen, eignet sich sehr gut der USBasp Programmer. entweder selber bauen, oder beim freundlichen Chinesen bestellen. Besorge dir gleich einen Adapter
10 --> 6 polig dazu, denn der ISP Header auf dem Arduino hat nur 6 Pole. Das Programm eXtremeburner steuert dann den USBasp. Du kannst natürlich auch mit dem USBasp über den ISP Header den ersten Arduino auslesen und so an deine hex Datei kommen. Das ist Plan B :wink:
Aber pass auf, denn unter eXtremeburner hast du direkten Zugriff auf die Fuses und das Lockbit. Laß da alles so, wie es ist, denn du kannst einen Controller so "verfusen" das du mittels eines einfachen ISP Programmers keinen Zugriff mehr auf den Chip hast!!!
So ein externer Programmer ist schon "nice to have", wenn man eine Schaltung, die man auf dem Arduino entwickelt hat, nur mit dem Controllerchip und ein bisschen Peripherie drum herum dauerhaft verwenden will. Mit dem Programmer kann man dann später immer noch eine neue Software aufspielen :smiley:

Gruß Gerald

Und dass kommt von einem der keine Ahnung hat von Programmieren :smiley:

30 Jahre Elektronikbastelei, Programmieren null Ahnung

Alles verstanden soweit, ich möchte das Hex-File aber über den auf einem Arduino Mega 2560 vorhandenen USB-Anschluss übertragen. :stuck_out_tongue:

Funktioniert es evtl. doch und zwar hiermit?

http://russemotto.com/xloader/

Welche Baudrate würdet Ihr hierbei wählen?

Gruß Chris

Hallo Chris,

das geht auch mit avrdude, das auch von der IDE benutzt wird. Beim Aufspielen eines Programms macht die IDE auch nichts anderes, nämlich den HEX-File, der im tmp Ordner liegt auf den Controller zu schieben. Der Bootloader simuliert dabei den Programmer.
Schalte mal den Debug Modus ein, dass kannst du dir den avrdude Befehl anschauen und in der cmd-Shell nachstellen.

Gruß
Reinhard

Super Idee! Dank Dir. 8)

Gruß Chris