Arduino Nano als ISP Programmer über serielle direkt von Hex Datei ?

Ich würde gerne ein Hex File per Email versenden (vorher auf .TXT umbenannt).
Der Empfänger soll dann über ein Terminal Programm die Datei mit zB geringer Baudrate an den Nano Comport senden.
Der Nano soll dann zB einen Atmega 128 über die SPI (Original Bootloader) programmieren.
Die Baudrate so gering gewählt das der Nano mit der Programmierung jeweils fertig wird.

Der Anwender soll also nicht über eine IDE programmieren sondern über ein Standartprogramm bzw. über ein sehr einfaches Programm (eventuell auch Text-Editor welcher die Datei auf COM1 "druckt").

Ich könnte dadurch einen Laien ein Update bzw. ein neues Programm senden und dieser spielt dieses selbst ein.
wie stehen da die Chancen ?

Ein normales Terminal-Programm allein reicht nicht.
Der Nano soll also ein ISP - Programmer sein. Also eigentlich sowas wie TinyISP oder usbasp.
Den müsste der "Anwender" auch haben und richtig anschliessen.

Richtig verstanden ?

Schau dir besser an, was avrdude beim Laden über bootloader (normales Upload) macht.
avrdude.exe und .conf kannst du leicht, zusammen mit deiner .hex und einem .bat Kommando deinem "Anwender" geben.

michael_x:
Der Nano soll also ein ISP - Programmer sein. Also eigentlich sowas wie TinyISP oder usbasp.
Den müsste der "Anwender" auch haben und richtig anschliessen.

Ja, ich plane ein Board mit einem Atmega128 welcher den 2€ Nano ebenfalls schon drauf hat - der Anwender verwendet dann den USB des Nano für eine Neuprogrammierung.

Eines habe ich noch verschwiegen: Das HEX File soll mit zB einem 128Bit Schlüssel verschlüsselt sein, der Nano soll den gleichen Schlüssel fix im Programm haben und im 128er ist eine abfrage enthalten welcher periodisch nachfragt ob der richtige Nano da ist. (Logischerweise soll nirgends der Schlüssel direkt drinnen stehen und die Periodische abfrage soll nicht "kopierbar" sein). Für jeden Nano dann ein anderer Schlüssel.

Ernst16:
Ich könnte dadurch einen Laien ein Update bzw. ein neues Programm senden und dieser spielt dieses selbst ein.
wie stehen da die Chancen ?

Es gibt das ArduinoISP-Skript. Im Prinzip könntest du das natürlich nach deinen eigenen Ideen modifizieren.

Ernst16:
Eines habe ich noch verschwiegen: Das HEX File soll mit zB einem 128Bit Schlüssel verschlüsselt sein, der Nano soll den gleichen Schlüssel fix im Programm haben und im 128er ist eine abfrage enthalten welcher periodisch nachfragt ob der richtige Nano da ist. (Logischerweise soll nirgends der Schlüssel direkt drinnen stehen und die Periodische abfrage soll nicht "kopierbar" sein). Für jeden Nano dann ein anderer Schlüssel.

Ich halte nichts von künstlicher Verkomplizierung um einen Kopierschutz zu etablieren.

Wollte ich so etwas machen, würde ich die Strategie nicht öffentlich diskutieren, das Netz vergisst nichts.

Ich würde so ein Produkt nicht kaufen und jedem davon abraten.

Wollte ich so etwas machen, würde ich die Strategie nicht öffentlich diskutieren, das Netz vergisst nichts.

Ich würde so ein Produkt nicht kaufen und jedem davon abraten.

@Whandall
Wieso? Sollte die Sicherheit eines Kopierschutzes nicht durch den Schlüssel gegeben sein und nicht durch Geheimhaltung der Verschlüsselungsmethode?

@Ernst16
Übertreibst Du nicht maßlos?

Grüße Uwe

uwefed:
@Ernst16
Übertreibst Du nicht maßlos?

Ich denke da an eine einfache Verschlüsselung von jeweils 16 Byte mit exor und den 16Byte Schlüssel.
Im Programmcode steht der Schlüssel mit exor Mastercode. Dh der Prozessor macht jedesmal ein exor mit dem Mastercode und ein exor mit dem Schlüssel und erhält den Originalwert - diesen flasht er dann in den 128er.

Die im Programm des 128ers durchzuführende SPI Abfrage ob der richtige Nano da ist, wäre ohne Maßnahmen leicht zu simulieren da ja immer die gleichen Rückmeldungen sind. Diese Sache wäre aber zweitrangig.

Whandall:
Ich würde so ein Produkt nicht kaufen und jedem davon abraten.

Es soll immer eine fertige Anwendung sein. Lediglich für Updates soll der Anwender auf möglichst einfache Weise eine Neuprogrammierung machen können.

Das Dilemma ist, daß Leute die solche Anwendungen gut schreiben können soviel Wissen haben, um solche Sachen nicht fragen zu müssen. Leute die fragen müssen haben, nicht das Wissen, um sowas sicher machen zu können, weil sie das Wissen um Fallstricke nicht haben.

Da bin ich mit Whandall einer Meinung.

Ich würde so ein Produkt nicht kaufen und jedem davon abraten.

Grüße Uwe

Die Kunst ist ja immer, dass ganze so hinzubekommen, dass nicht der ehrliche Anwender der dumme ist, während sich der Profi über den Kopierschutz schlapp lacht.
Zum einen müsste erst ein großes Interesse bestehen, die Schaltung zu kopieren statt sie bei dir zu kaufen. Wenn das Interesse so groß ist, findet sich vielleicht auch jemand, der die Software nachprogrammiert oder auch die Kommunikation zwischen Nano und 128 analysiert. Zum anderen müsstest du den Überblick behalten, wer welchen Schlüssel hat, wer wie bei einem Defekt supportet wird und wer einspringt ,wenn du ausfällst (Unfall, neues Arbeitsgebiet, Urlaub).

In erster Linie möchte ich die ISP Programmierung von einer HEX Datei hinkriegen ohne eine IDE zu verwenden. Das mit dem Kopierschutz möchte ich schon dabei haben, aber erst wenn ich das Hauptproblem gelöst habe.
Die HEX Datei weiterzugeben ist ohnehin schon ein gewisser Schutz gegenüber der Weitergabe eines kommentierten Programmes. Da der Hardwareaufbau auch nicht von Jedermann nachgebaut werden kann, würde mir da eine geringe Verschlüsselung schon genügen.

Habe da auch schon etwas von NickGammon gefunden:
Von einer SD Karte wird das HEX File über ISP programmiert .... schaut recht gut aus ?

Müsste dies so umbauen das anstelle von der SD-Datei von der Seriellen gelesen wird - aber vielleicht finde ich noch etwas direkteres ?

.... HEX Programmer von SD Card

Ein Stand-alone programmer
http://www.crossroadsfencing.com/BobuinoRev17/Programmer.html