Ciao,
ho realizzato un piccolo sketch per una illuminazione con led che presenta degli effetti e sequenze di luci.
Un conoscente me lo ha chiesto, vorrei inviarglielo ma vorrei evitare che modifichi lo sketch. Non mi interessa se lo condivide, semplicemente vorrei restasse così senza alcuna modifica.
E' possibile "proteggere" banalmente lo sketch magari trasformandolo in .bin e caricandolo su arduino con mezzi alternativi?
Ripeto, non voglio impedire la diffusione, solo la modifica. L'ideale sarebbe una sorta di file autoscompattante che si carica su arduino ma che non può essere aperto.
Perdonatemi la richiesta stupida!
Nelle "preferenze" metti il segno di spunta sul dettaglio ("verbose") sia della compilazione che dell'upload, quando compili guarda dove mette tutti i files e guarda dove salva il .hex (il compilato) e manda quello. Per caricarlo basta un comando con avrdude.
Se ti studi bene la compilazione, ad esempio di "Blink" vedi che essa finisce con (a parte la directory, dato che io sono su macOS):
....
"/Applications/Arduino/Arduino 1.8.7 Portable.app/Contents/Java/hardware/tools/avr/bin/avr-objcopy" -O ihex -R .eeprom /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_722551/Blink.ino.elf /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_722551/Blink.ino.hex
"/Applications/Arduino/Arduino 1.8.7 Portable.app/Contents/Java/hardware/tools/avr/bin/avr-size" -A /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_722551/Blink.ino.elf
Sketch uses 930 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
... nella seconda riga, quella subito dopo i .... trovi come si chiama e dove mette il .hex
Se poi fai il caricamento e guardi i dettagli, scopri la riga comando che usa l'IDE per comandare avrdude:
/Applications/Arduino/Arduino 1.8.7 Portable.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino/Arduino 1.8.7 Portable.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.usbmodem1A12151 -b115200 -D -Uflash:w:/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_722551/Blink.ino.hex:i
... sempre tenendo presente che in questi esempi c'è il formao directory usato sotto macOS
Guglielmo
Grazie mille!
File .hex recuperato senza difficoltà.
Per semplificare il caricamento, al mio amico invierò anche un programmino avrdude GUI in modo che deve solo selezionare il file, scegliere la porta e la board e caricare il tutto.
Non è cattiveria, ma avevo realizzato per lui uno sketch che simulava la pressione del tasto di accensione luce con un telecomando (quelle lucine cinesi colorate). Dopo un po di tempo ho visto da altri amici una soluzione identica. Lo sketch riportava "Creato da ...." e non ero io. La cosa mi aveva infastidito.
Grazie!
khriss75:
... Dopo un po di tempo ho visto da altri amici una soluzione identica. Lo sketch riportava "Creato da ...." e non ero io. La cosa mi aveva infastidito.
... capisco perfettamemte
Guglielmo