Upload Sketch su Arduino Mega 2560 da rete o via SD

[quote author=Michele Menniti link=topic=172938.msg1290263#msg1290263 date=1372066010]

PaoloP: Possibile che tu sia il primo a programmare un bootloader da MEGA a MEGA? Perché a me sembra un bel BUG questo. :( Forse ha ragione Leo.

No, ricordo che Pablos aveva due MEGA (ne ha regalata una a me, alla fine delle fatiche XD) però sinceramente non ricordo cosa facevamo, forse solo il caricamento diretto dello sketch via ISP Ambro, fatti prima una bella copia di tutto quanto e poi segui le istruzioni del primo posto di questo mio Topic, se è come sembra il problema è propriom il bug noto del caricamento di software oltre i 128k, con questa procedura dovresti risolvere. [/quote]

Ho seguito le tue istruzioni, su due postazioni pc diverse, sempre partendo dall'ultimo ide 1.0.5, ma il problema rimane, sempre uguale.

Ricordo poi, che anche se va in errore la programmazione del bootloader, io poi su quell'Arduino, sono in grado di caricare gli sketch normalmente, e sembra che il bootloader venga caricato, perchè provando a caricare il bootloader Ariadne, al reset HW della scheda, rimane in ascolto sulla porta 69 TFTP, quindi in qualche modo il bootloader, viene caricato.

PaoloP: Il problema è di AVRdude o di Arduino as ISP su MEGA non del bootloader. Lui non riesce a caricare il bootloader non gli sketch col bootloader; quindi il problema è a monte.

Non sono d'accordo.... Quando carichi uno sketch via ISP i fuse vengono ignorati ed esso si sistema a partire dalla locazione 0$0000; se invece carichi il bootloader, esso, come ben sai, ha uno spazio riservato dal fuse high, nella parte più alta della memoria, e lì entra in ballo il famoso bug. Quando carica uno sketch correttamente lo fa perché opera via IDE.

Per avere conferma di ciò gli avevo chiesto di provare a caricare uno sketch via ISP e non via IDE. SOLO CHE C'é un CONTRO: se riesce a fare questa operazione e poi non riesce più a mettere il bootloader originale allora diventa un problema più serio.

Tornano a noi, a maggior ragione se il bootloader Ariadne viene caricato (ma non avevi aperto il Topic perché non riuscivi????), significa che, come dice Leo, il bootloader originale della MEGA va ricompilato con il sistema aggiornato e poi dovrebbe risolvere. A mio parere il bootloader Ariadne è quello della Mega, modificato opportunamente ed implementato con il loro sketch (quello che si mette in ascolto sulla porta 69TFTP; quando lui carica il blink esso lo accetta ma ovviamente perde lo sketch originale. A me sembrerebbe che a questo punto lui sia a posto :sweat_smile: Se l'Ariadne funziona che ti frega di voler rimettere l'originale?

[quote author=Michele Menniti link=topic=172938.msg1290576#msg1290576 date=1372085413] Per avere conferma di ciò gli avevo chiesto di provare a caricare uno sketch via ISP e non via IDE. SOLO CHE C'é un CONTRO: se riesce a fare questa operazione e poi non riesce più a mettere il bootloader originale allora diventa un problema più serio. [/quote] Questa prova di caricare lo sketch via ISP confermo di non averla fatta

[quote author=Michele Menniti link=topic=172938.msg1290576#msg1290576 date=1372085413] Tornano a noi, a maggior ragione se il bootloader Ariadne viene caricato (ma non avevi aperto il Topic perché non riuscivi????), significa che, come dice Leo, il bootloader originale della MEGA va ricompilato con il sistema aggiornato e poi dovrebbe risolvere. A mio parere il bootloader Ariadne è quello della Mega, modificato opportunamente ed implementato con il loro sketch (quello che si mette in ascolto sulla porta 69TFTP; quando lui carica il blink esso lo accetta ma ovviamente perde lo sketch originale. A me sembrerebbe che a questo punto lui sia a posto :sweat_smile: Se l'Ariadne funziona che ti frega di voler rimettere l'originale? [/quote]

Il bootloader apparentemente viene caricato, sia l'originale che quello Ariadne, la cosa strana è che il caricamento termina in errore. Inizialmente non riuscivo nemmeno a caricarlo.

Allora, Leo sostiene che il bootloader vada ricompilato con la nuova situazione aggiornata, nell'apposita cartella trovi il sorgente (parlo di quello originale), poi dovrebbe andare....

Questo Ariadne è garantito per Arduino MEGA???? Se lo è prova a sentire loro e vedi cosa ti dicono.

La prova di caricare uno sketch via ISP ci permetterebbe di avere conferma assoluta di quanto stiamo immaginando però, se va a buon fine, ti disattiverebbe il bootloader, e non so dirti che col caricamento con l'errore ti ritorna almeno nelle condizioni attuali o no; a quel punto se non si dovesse risolvere avresti la mega non utilizzabile se non caricandole per semrpe sketch via ISP, mentre con l'IDE non potresti più; questo ti deve essere ben chiaro, poi decidi tu cosa fare.

[quote author=Michele Menniti link=topic=172938.msg1290618#msg1290618 date=1372087217] Allora, Leo sostiene che il bootloader vada ricompilato con la nuova situazione aggiornata, nell'apposita cartella trovi il sorgente (parlo di quello originale), poi dovrebbe andare.... [/quote]

Ma io questa prova l'ho già fatta(oppure no?!?), andando a installare il toolchain e seguendo il link. http://forum.arduino.cc/index.php?topic=96976.0 (ho seguito tutti i primi 7 punti del primo post e riprovato a scrivere il bootloader.)

Questo Ariadne è garantito per Arduino MEGA???? Se lo è prova a sentire loro e vedi cosa ti dicono. Dalla pagina ufficiale del progetto lo danno come totalmente supportato https://github.com/codebendercc/Ariadne-Bootloader#supported-boards

La prova di caricare uno sketch via ISP ci permetterebbe di avere conferma assoluta di quanto stiamo immaginando però, se va a buon fine, ti disattiverebbe il bootloader, e non so dirti che col caricamento con l'errore ti ritorna almeno nelle condizioni attuali o no; a quel punto se non si dovesse risolvere avresti la mega non utilizzabile se non caricandole per semrpe sketch via ISP, mentre con l'IDE non potresti più; questo ti deve essere ben chiaro, poi decidi tu cosa fare.

Questa è una prova molto rischiosa, rischierei di brikkare la seconda scheda, e il fornitore comincerebbe a dubitare alla seconda scheda guasta/brikkata.

Tu hai aggiornato il compilatore, ma stai usando il bootloader compilato con la versione originale, che forse non va bene; dovresti eseguire manualmente la ricompilazione del bootloader per poi riprovare a ricaricarlo.

Se la danno come supportata ribadisco: senti loro su questo problema e vedi che ti dicono

Mi pareva d'aver capito che il problema lo avessi solo su una scheda non che avevi già fatto fuori anche l'altra, se è così non hai una scheda perfettamente funzionante in questo momento, allora è inutile che usciamo pazzi. Io ti sto consigliando di fare le prove SEMPRE su quella che ti sta dando problemi a caricare il bootloadder, NON su quella buona!

Allora proverò nei prossimi giorni se riesco a compilare manualmente il bootloader e vi aggiornerò. Al di là dell'Ariadne, mi interessa anche mettere il bootloader originale senza avere errori.

Io ho due schede, entrambe si comportano allo stesso identico modo......

Ultima cosa mi sai indicare come compilare manualmente il bootloader, o trovo facilmente info in altri topic? Ho fatto una veloce ricerca, ma vorrei evitare di fare danni.. GRASSIE!!! ^_^

ambro7: Ultima cosa mi sai indicare come compilare manualmente il bootloader, o trovo facilmente info in altri topic? Ho fatto una veloce ricerca, ma vorrei evitare di fare danni.. GRASSIE!!! ^_^

Su che sistema lavori? Se su Linux, posso dirti come fare, sono un paio di passaggi semplici, dovresti avere già tutti gli strumenti.

sinceramente no, nella cartella dei bootloader della mega dovresti trovare il file sorgente ed un eseguibile con nome tipo "makefile", la procedura però non l'ho mai fatta, magari cerca "makefile" (o come si chiama lui, vedrai che qualcosa trovi, mi pare sia stata descritta più di una volta sul Forum.

Scusa, un chiarimento, visto che è già successo in un'altro topic e stavamo uscendo matti con i fuse. Sei sicuro che durante l'upload sulla scheda stai usando l'upload "con programmatore"? Altrimenti programmi la scheda con a bordo "Arduino as ISP" e non quella target.

leo72:

ambro7: Ultima cosa mi sai indicare come compilare manualmente il bootloader, o trovo facilmente info in altri topic? Ho fatto una veloce ricerca, ma vorrei evitare di fare danni.. GRASSIE!!! ^_^

Su che sistema lavori? Se su Linux, posso dirti come fare, sono un paio di passaggi semplici, dovresti avere già tutti gli strumenti.

Lavoro su Sistemi Windows per questo progettino arduino, ma ho a disposizione una macchina virtuale con UBuntu per fare delle prove!

PaoloP: Scusa, un chiarimento, visto che è già successo in un'altro topic e stavamo uscendo matti con i fuse. Sei sicuro che durante l'upload sulla scheda stai usando l'upload "con programmatore"? Altrimenti programmi la scheda con a bordo "Arduino as ISP" e non quella target.

Ciao, sono sicuro di questo..... ASsolutamente SI!!!!! :)

ambro7: Lavoro su Sistemi Windows per questo progettino arduino, ma ho a disposizione una macchina virtuale con UBuntu per fare delle prove!

Ti installi gli strumenti per la compilazione, se non li hai già: apri un terminale e dai

sudo apt-get install autoconf build-essential

Poi ti porti nella cartella /arduino-xxx/hardware/arduino/bootloaders/optiboot e dai:

make clean && make atmega328

Una volta terminata la compilazione, il firmware è il file optiboot_atmega328.hex Se devi modificare qualcosa il file è otpiboot.c. Attento che, una volta compilato, il file sia MENO di 512 byte altrimenti non sta nello spazio riservato al bootloader.

Salve a tutti,

Volevo condividere i test che io ho effettuato, sperando che possano essere utili all’argomento di questo post.
Per il famoso progetto sempre del telecontrollo, sto valutando la possibilita’ di aggiornare il programma dell’arduino mega 2560 R3 via remoto. Da qui mi sono imbattuto in Ariadne per merito di questo post.
Premetto che sono stato molto attento all’uso dei vari IDE di arduino, verificando ogni volta che essi avessero il proprio file di preferences.
Hardware usato: Arduino Uno R2 utilizzato come programmatore (Arduino as ISP), Arduino Mega 2560 R3 (Il target), Ethernet Shield R3 e cavo da me preparato per la programmazione. Allego le immagini.
Ho quindi eseguito tutti i test enunciati nella tabella pdf allegata. La prima colonna indica con quale versione di IDE e progetto e’ stato caricato il programmatore (Arduino 1).
Poi le colonne sucessive indicano la versione dell’IDE Usato, il risultato dopo la programmazione del bootloader e lo stato dei fuse. In giallo sono la programmazione di Ariadne e in Verde la programmazione del BootLoader originale.
Al termine della programmazione del bootloader Ariadne, ho caricato il progetto Comunication->ASCIITable. Mentre al termine della programmazione del bootloader originale ho caricato il classico Blink.
I messaggi di risultato come si evince, sono sintetizzati e si deve inserire prima del valore sempre la stessa frase: “avrdude: verification error, first mistmatch at byte 0x1e000 …”.
Dopo tutti i test suddetti, nonostante gli errori posso confermare che la scheda Arduino Mega 2560 funziona. Inoltre posso garantire che ho caricato il programma di telecontrollo (circa 60 kB di progetto) e ho anche testato il funzionamento tramite tftp. Tutto funziona!

Spero che questi dati possano servire, di nuovo ringrazo per la collaborazione.

AsamLink.

Ariadne1.jpg

Ariadne2.jpg

Ariadne3.jpg

AriadneRisultati.pdf (25 KB)

Grazie per i test. Noto con piacere che sullo sfondo delle foto c'è la guida di Michele. ;)

azz che colpo d'occhio Paolo, non me n'ero accorto :) però fa un certo effetto e moltissimo piacere vederla stampata e, soprattutto, ancora integra alla fine dei test XD

non ho ancora avuto il tempo per fare altre prove e ricompilare il bootloader con linux, ma dalle prove fatte anche da asamlink sembrerebbe che l'ide dia errori anche a scrittura del bootloader completata correttamente..... Certo che è strano... :~

asamlink: Dopo tutti i test suddetti, nonostante gli errori posso confermare che la scheda Arduino Mega 2560 funziona. Inoltre posso garantire che ho caricato il programma di telecontrollo (circa 60 kB di progetto) e ho anche testato il funzionamento tramite tftp. Tutto funziona!

Spero che questi dati possano servire, di nuovo ringrazo per la collaborazione.

AsamLink.

Il programma di telecontrollo da 60 kb, sei riuscito a caricarlo correttamente via TFTP? Io non riesco a caricare sketch su Mega 2560 con dimensioni compilate che superano i 29 kb circa....

Il bootloader ariadne (il file con estensione .hex) l'hai ricompilato oppure preso e caricato?

Grazie

Due domande sul discorso bug 128k

  • i risultati positivi ottenuti di caricamento bootloader sulla mega, nonostante la presenza di errori, è avvenuta con i file originali dell ide 1.0.5 oppure ricompilati ?

  • se il problema 128 esiste e deriva dal bootloader allora dovrebbe affliggere sia la uno che la mega quando usate come arduinoIsp, cioè anche se si usa la Uno come programmatore di una maga pur sempre oltre i 128k viene chiamata a scrivere

  • altri programmatori, usbAsp o anche il parallelo, non soffrono di questi problemi (lascia stare il parallelo e compra un usbAsp da 5euro)

Il problema over128k si risolve aggiornando la toolchain, il bootloader non viene toccato; nelle prove che facemmo con Astro per l’articolo usai la UNO per programmare l’ATmega2560 montato sul TiDiGino. :slight_smile: