Arduino UNO: come salvare un .hex per conservare sorgente.

Ciao A tutti!! Mi ripresento visto che è il mio primo post e non credo che tutti vadano a leggere la sezione presentazioni!! Mi scuso anche se tratterò un argomento già nel forum...ho fatto una ricerca, qualcosa è uscito ma mi ha fatto solo più confusione!!

Sono Marco, un appassionato di elettronica…anche se di studi "ragioneristici!!" Passione che si è trasformata in parte nel mio lavoro visto che programmo centrali antincendio e prima ero uno strumentista in uno zuccherificio! Mi sono iscritto perché vorrei iniziare ad approfondire il mondo Arduino e la programmazione C+ ecc ecc.

Naturalmente a tutto c'è un perché e il mio è la stampa 3D. Ho infatti da un po di tempo preso anche questa passione. Da qualche mese ho un "clone" della Creality CR-10S e visto che mi vorrei divertire a cambiare firmware e fare upgrade... si impone l'uso e conoscenza di Arduino.

Proprio per questo motivo, vorrei salvare il sorgente della scheda della stampante ( il file .hex). Da quanto ho capito non posso fare aggiornamenti alla scheda perchè ha il bootloader bloccato e quindi non riesco a installare direttamente.

Ho visto una procedura con una arduino UNO che dovrebbe risolvere il problema del boootloader ma prima di cimentarmi ho iniziato a giocare con la UNO.

Quello che vorrei capire è dove reperire informazioni o una procedura su come "scaricare" il software caricato sulla scheda.

Ho caricato uno sketch ma non capisco come e cosa devo fare per scaricare il file .hex.

Ho trovato app per caricarli ma nulla per scaricare.

Visto che ho scritto anche troppo mi fermo....e prometto sintesi in seguito!

Grazie!!

Non puoi "scaricare" un file caricato su una scheda... Puoi solo sovrascriverlo con un altro se c'è un bootloader che te lo fa fare ma non puoi leggerlo e ritrasformarlo da .hex in .ino.

Ho scritto una stupidaggine, evidentemente... Avevo letto così in giro per google e così ho riportatato ma è errato. Scusate.

Per leggere il codice sorgente dal microcontrollore, sempre che non sia bloccato di fabbrica, puoi usare AVRdude, e solo se il micro installato nella stampante è della "famiglia" di Arduino. Per comodità puoi usare AVRdudess (http://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/) una interfaccia grafica per AVRdude. Ti servirà anche un programmatore per collegare il PC all'interfaccia ICSP del micro della stampante, sempre che questa sia disponibile sulla scheda madre della stampante.

>CrazyHorse80: NON è vero, basta un programmatore ISP e saper usare avrdude da linea comando o usare una delle tante interfaccie grafiche e puoi tranquillamente leggere il .hex e salvarlo su disco.

Ovviamnete sempre che il chip non sia stato volutamente protetto in lettura.

Guglielmo

P.S.: ... mi sono sovrapposto con PaoloP :D :D :D

CrazyHorse80: Non puoi "scaricare" un file caricato su una scheda... Puoi solo sovrascriverlo con un altro se c'è un bootloader che te lo fa fare ma non puoi leggerlo e ritrasformarlo da .hex in .ino.

Si che è possibile leggerlo, ovviamente è codice sorgente e per capirlo, a patto di conoscere l'assembly e i registri del micro, andrebbe disassemblato. Ma è fattibile. Credo che la sua intenzione sia quella di fare un semplice backup. Lockbit permettendo.

>cardimarco: occhio che il .hex NON ha più nulla a che vedere con il sorgente originale … esso è solo il codice eseguibile che è stato ottenuto compilando e facendo il link dei vari moduli, ma, ad esempio, NON è che con il .hex puoi riavere il “sorgente” (il codice in C).

Ovviamnete, una volta letto dalla MCU e salvato su disco, puoi, in qualsiasi momento ricaricarlo, quindi … è come avere un “backup” di quello che è nella MCU. :smiley:

Guglielmo

>PaoloP … continuamo a sovrappore le nostre spiegazioni :smiley: :smiley: :smiley:

PaoloP: Ma è fattibile.

Non si finisce mai di imparare... Avevo letto così da qualche parte ed avevo preso la cosa per buona. Evidentemente ci sono delle eccezioni, ero convinto che il lockbit venisse SEMPRE attivato.

gpb01: ma, ad esempio, NON è che con il .hex puoi riavere il "sorgente" (il codice in C).

Dai, almeno metà della mia risposta era giusta... :D

Grazie mille per le vostre risposte.

...infatti il mio scopo è quello di avere un "backup" da poter ricaricare se qualcosa non va bene.

Ora proverò quanto suggerito....quindi aspettatevi altre domande!!

Grazie!!

Il più economico programmatore ISP dovrebbe essere l'USBasp, meno di 5 euro dalla Cina.

Consiglio di leggere qui --> http://forum.arduino.cc/index.php?topic=486707.msg3396979#msg3396979