Tutorial per Burn Bootloader con qualsiasi Arduino - NUOVA Versione 2.0

Allora amici del Forum, il Tutorial è arrivato (già?) alla versione 2.0 Arduino Playground - Tutorials, ho implementato la gestione del connettore ISP, per poter facilmente collegare con un cavetto sia due Arduino che un’Arduino con una breadboard, prevedendo anche l’ormai fatidico “anti-autoreset” come l’ho amichevolmente soprannominato. Tutto al solito con molte foto ma anche due semplici schemi di collegamento disegnati, in modo che chiunque possa in pochi minuti realizzare quello che gli serve o entrambi, come ho fatto io.
Ho corretto, nella parte descrittiva, un errore di natura tecnica e inserito una nota specifica a parziale correzione di quanto affermato a proposito dell’intercambiabilità tra i vari modelli di Arduino.
Infine ho risolto, a modo mio, la questione scherzosamente sollevata da uwe, circa il “sesso” di Arduino; Vi risparmio i commenti che avevo fatto, e anzi mi scuso pubblicamente con lui se per caso ho offeso il suo senso del pudore, e ho deciso in tal modo: Arduino è maschio, se ci si riferisce ad esso genericamente, come progetto; quando invece si parla di uno dei modelli, chiamandolo col solo “nome proprio”, quindi UNO, 2009, ecc. allora sottintendo che si stia parlando di board e, di conseguenza, diventa femmina; insomma una sorta di ermafroditismo elettronico, hai visto mai che mettendone due vicini nella giusta combinazione, dopo 9 ore ti trovi un Arduino mini che emette i primi bits? :wink:
Ringrazio sinceramente uwe per la notevole consulenza tecnica ed il tempo che mi ha dedicato, ringrazio GianfrancoPA per le sue intuizioni straordinarie, che io poi realizzo e faccio funzionare :grin:, ne aspetto altre!
Insisto nel chiedere a TUTTI di dare un’occhiata al lavoro, è scaricabile, pieno di foto, non dovete leggere molto…; ogni consiglio o critica serve a renderlo sempre migliore, in fondo è un bene per tutti.
Buona lettura!

Ho letto tutto il pdf ma non ho provato niente di quello che e' scritto.
Complimenti per il lavoro, i test e il documento, mi pare piuttosto chiaro.

Vorrei muovere pero' una critica. Tutte le menzioni a luigino mi paiono un po' fuori luogo. Ho capito che hai voluto inserirlo perche' lo possiedi, ma verrebbe a questo punto da chiedersi come mai non hai parlato delle altre 20/30 schede compatibili con arduino.

Io avrei piuttosto scritto una documentazione sugli arduini ufficiali e una sui cloni, per distinguere il progetto base da tutte le derivazioni.

La mia modestissima opinione!
Federico

Grazie del commento e dei complimenti; la tua “critica” merita una risposta esaustiva, in modo che non restino dubbi.
Sono legatissimo ad Arduino perché mi ha permesso di avvicinarmi con naturalezza al mondo dei microcontrollori, non ho alcun tipo di legame, né commerciale, né “affettivo” nei confronti di Luigino328; l’ho comprata perché costava poco (versione prototipo), per poterla usare nelle prove di battaglia (usura dei vari zoccoli, rischi di inversione di alimentazione o dei segnali sballati, ecc) e salvaguardare la 2009 e la UNO comprate in precedenza. Inizialmente avevo messo nel Tutorial il marchio Arduino, nel dubbio ho scritto a Banzi per avere lumi sull’utilizzo ma lui non mi ha mai risposto, allora l’ho eliminato perché non volevo rischiare di commettere un illecito.
La filosofia che ha decretato il successo di Arduino è l’open source, quindi i compatibili (non i cloni) sono perfettamente leciti, tant’è che molta gente li compra come unica scheda a motivo del costo inferiore o della migliore dotazione. Onestamente non sapevo che esistessero così tanti modelli di compatibili, conosco (di nome) solo la Seeeduino distribuita da Futurel, uno dei miei fornitori.
Ciò detto, l’idea portante di questo lavoro era quella di mettere chiunque nelle condizioni di fare questa operazione, a prescindere dalla board posseduta; naturalmente avendo solo queste tre non potevo che parlare di queste e mostrare che con tutte avevo fatto le prove ed ero riuscito a raggiungere l’obiettivo; infatti ho scritto nelle conclusioni

L’altra cosa importante è aver compreso che le board Arduino, almeno per quanto riguarda le 2009 e le UNO, e tutte le varie compatibili XXXX(u)ino che ci sono in commercio, a parte le differenze riguardanti i connettori ed in alcuni casi anche le differenze circuitali, sono TOTALMENTE intercambiabili tra loro

(quindi come vedi le ho citate tutte genericamente).
Quindi ti garantisco che non avevo (e non ho) alcuna intenzione di sponsorizzare questa board a danno di altre, men che meno a danno di Arduino (sto partecipando ad un’asta su ebay per comprare un’altra 2009 usata, anche se per ora non saprei che farmene…).
Però l’argomento è interessante; spero che altri si facciano avanti esprimendo la loro opinione, se altri condivideranno così mi darò da fare immediatamente per far sparire questa board dal tutorial, almeno nella menzione del nome; certamente non farei un tutorial specifico perché tutto quanto scritto si applica perfettamente a qualsiasi board, sono tutte identiche nei collegamenti!
Grazie ancora, Federico.Ciao.

Premesso che condivido moltissime delle idee espresse da menniti, sono anch'io per un tutorial esclusivamente dedicato alle Arduino.
Per 2 motivi:

  1. siamo sul sito dell'Arduino, delle altre schede possono parlare i rispettivi produttori.
  2. il team di Arduino specifica proprio nelle FAQ che, per evitare confusioni con le board ufficiali, le schede clone non dovrebbero usare il suffisso "duino". Una scheda che si chiama quindi Luigino è già di per sé una cosa che contravviene alle raccomandazioni del team ufficiali.

Detto questo, esprimo un'opinione personale che va controcorrente. Devo molto ad Arduino perché mi ha avvicinato all'elettronica, espandendo le mie capacità. Però ultimamente mi sono indirizzato verso l'uso dei micro stand-alone, siano essi Atmega che Attiny, vuoi per la comodità di costruire i circuiti come più voglio vuoi per la comodità di avere, su una breadboard, un "banco da lavoro" più grande di quello concesso da una Arduino che, allo stato attuale, uso più che altro come interfaccia USB.

Poi, ognuno la vede come vuole: il lavoro di menniti è utile e da lodare indipendentemente dal riferimento a questa o quella scheda. Anzi, visti i problemi, i dubbi, le richieste apparse non solo sul forum italiano ma anche su quello internazionale di come usare la UNO come programmatore ISP, mi suona un po' "curioso" che in tutti questi mesi nessuno del team abbia informato in maniera ufficiale della possibilità dell'azione col solo uso di un condensatore... correggetemi se sbaglio.

luigino non finisce per duino...:stuck_out_tongue_winking_eye:

Vabbè... son sottigliezze linguistiche. :wink:
Chiunque concorderebbe nel dire che il nome è assonante con Arduino. Ino ino ino ma che bel circuitino XD

leo72:
Premesso che condivido moltissime delle idee espresse da menniti, sono anch'io per un tutorial esclusivamente dedicato alle Arduino.
………………omissis………………….
Poi, ognuno la vede come vuole: il lavoro di menniti è utile e da lodare indipendentemente dal riferimento a questa o quella scheda. Anzi, visti i problemi, i dubbi, le richieste apparse non solo sul forum italiano ma anche su quello internazionale di come usare la UNO come programmatore ISP, mi suona un po' "curioso" che in tutti questi mesi nessuno del team abbia informato in maniera ufficiale della possibilità dell'azione col solo uso di un condensatore... correggetemi se sbaglio.

Intanto ti ringrazio moltissimo per il commento e la “lode”; stavo appunto cercando quella dichiarazione di Banzi in cui spiegava questa cosa, mi pare parlasse anche dell’uso del marchio, anzi se riesci a darmi un link te ne sarei molto grato; in verità ricordavo l’opposto (cioè che si potesse usare il suffisso “duino”), quindi decisamente devo rileggere!
In verità sul sito ufficiale continua a campeggiare la scritta che l’UNO non va bene, le mie fonti sono due: un topic americano in cui un tizio ha inchiodato al reset un condensatore da 100µF (quell’Arduino non resetterà mai più in vita sua…) ma diceva che a suo avviso poteva essere molto più piccolo, e poi il “nostro” GianfrancoPA che mentre io disperavo perché scoprivo la non fattibilità (sulla carta), lui è intervenuto dicendo che aveva usato questo condensatore.
La cosa buffa, alla fine, è che il condensatore e la resistenza (funzionano decisamente meglio assieme nei casi critici) li ho dovuti usare sulla 2009 mentre l’UNO mi lavora da solo senza problemi!
Leo, apprezzo moltissimo, come sai, il lavoro che fai (come altri) su questo forum, verso noi neofiti, e due indicazioni per me sono sufficienti; nella prossima versione del tutorial (te lo dico in anteprima: realizzo uno schedino specifico per il burn bootloader su millefori, da tirare fuori all’occorrenza e collegarlo col cavo ISP ad un Arduino per caricare il bootloader sul chip vergine, con tanto di spiegazioni e molte foto delle fasi realizzative, tutte cose per noi piccini…) faccio sparire i riferimenti a Luigino e compatibili, anche se dovrò rifare i collegamenti per le nuove foto.
Grazie ancora per le belle parole di apprezzamento.

Riguardo al condensatore, io ne uso uno elettrolitico da 10 uF, e va benissimo.

Riguardo al passo: "Leo, apprezzo moltissimo, come sai, il lavoro che fai (come altri) su questo forum, verso noi neofiti", non so se sotterrarmi oppure sparire dalla vista! :sweat_smile:
Io sono un neofita come tanti altri. So di programmazione perché "spippolo" sui computer da quando avevo 12 anni ma puramente a titolo autodidattistico e amatoriale. Figurati che il C/C++ l'ho iniziato ad usare con Arduino. E di elettronica sapevo giusto la differenza fra resistenza e condensatore, mentre ora so anche usare un LED ah ah ah XD

In riferimento al nome, ti estraggo alcuni passaggi dalle FAQ ufficiali:

(...)
"Arduino" is a trademark of Arduino team and should not be used for unofficial variants.
(...)
While unofficial products should not have "Arduino" in their name, it's okay to describe your product in relation to the Arduino project and platform.
(...)
Note that while we don't attempt to restrict uses of the "duino" suffix, its use causes the Italians on the team to cringe (apparently it sounds terrible); you might want to avoid it. (It's also trademarked by a Hungarian company.)

Consigliano di non usare il suffisso "duino" per problemi di cacofonia (quali?), che mi suonano un po' strani. A me pareva di ricordare diversamente, ma forse mi sbaglio.

leo72:
Riguardo al condensatore, io ne uso uno elettrolitico da 10 uF, e va benissimo.

Sì, certo, a volte capitano combinazioni particolarmente ostili (nelle mie centinaia di prove mi è capitato qualche caso.. :sweat_smile:), basta aggiungere la 120 Ohm e tutto riparte.

.......non so se sotterrarmi oppure sparire dalla vista! :sweat_smile:

no, no, resta lì che abbiamo bisogno di te :grin:

In riferimento al nome, ti estraggo alcuni passaggi dalle FAQ ufficiali:
Note that while we don't attempt to restrict uses of the "duino" suffix, its use causes the Italians on the team to cringe (apparently it sounds terrible); you might want to avoid it. (It's also trademarked by a Hungarian company.)

Quindi ricordavo bene, altrimenti non mi spiego come grossi produttori (quindi non quelli dei cloni cinesi) abbiano realizzato schede compatibili con "duino" o "uino" finale; riguardo la cacofonia: hai provato a leggere in inglese il termine "Arduino" o anche il solo "duino"? e scrivono che il problema è nostro... :smiley: :smiley: :smiley:
Ciao!

bene, le nuove modifiche sono interessantissime, complimenti!!

Come al solito preciso che non ho avuto alcuna intuizione, ma ricordo ancora una volta che ho letto tutto sul forum inglese :smiley:

Bel lavoro!!

Mi permetti una piccola precisazione, menniti?
Il quarzo lo metterei il più vicino possibili ai corrispondenti pin del micro, e dietro i condensatori.

GianfrancoPa:
bene, le nuove modifiche sono interessantissime, complimenti!!
Come al solito preciso che non ho avuto alcuna intuizione, ma ricordo ancora una volta che ho letto tutto sul forum inglese :smiley:
Bel lavoro!!

Grazie, come vedi ho mantenuto la promessa di farti trovare tutto pronto per il tuo rientro :D! la questione dell'intuizione era riferita al fatto che hai tirato in ballo la possibilità di usare la presa ISP, sul forum inglese non l'ho trovato, anche se l'immagine che hai postato in verità mi è stata più che sufficiente.
Ora parto per ragioni di famiglia importanti, purtroppo, ma al rientro voglio ampliare il lavoro aggiungendo le modalità di costruzione di una piccola millefori stand alone con presa ISP, così si supera pure la questione della breadboard.

leo72:
Mi permetti una piccola precisazione, menniti?
Il quarzo lo metterei il più vicino possibili ai corrispondenti pin del micro, e dietro i condensatori.

Naturalmente leo, potrei mai dirti di no, mio salvatore? :grin:
Ovviamente hai perfettamente ragione, c'è il rischio di capacità parassite, anche se aver usato i ponticelli invece dei cavetti lo ha ridotto molto. in verità lo scopo era quello di rendere chiariamente visibili i collegamenti da fare; però a ben guardare potevo far girare il pin 8 del chip dall'altro lato e liberare lo spazio per mettere il quarzo proprio sulla fila esterna della breadboard.
Meglio ancora, forzando un po’ i pin del quarzo potrei piazzarlo direttamente sui pin 9-10 e collegare i due cap verso il pin 8 (che va a GND) e risparmiare 2 ponticelli, ma ho sempre la preoccupazione della foto; se non è chiarissima i neofiti come me rischiano di sbagliare, devo valutarla “sul campo”, ergo devo rimontare la bread per rifare le foto, :sweat_smile: obbedisco!

Ehi, Leo72 sul forum inglese ha dato una buona dritta, ovvero come caricare sketch usando Uno come ISP su un altro ATmega, sul quale non è installate il bootloader. Non sarebbe il caso di metterlo nella guida o di farne una nuova??

Ah, non avevo letto il post sul forum italiano...

Ed ora aspetto i 1000 euri di premio. Mi sa che sono il primo che ha flashato uno sketch in un Atmega usando una Arduino Uno senza tanti arzigogli circuitali ]:smiley:

Bei tempi quando si ci accontentava della gloria... :grin:

Ma mi spiegate una cosa: caricare il burn bootloader o un qualsiasi sketch danno all'Arduino sempre il "ruolo" di ISP Programmer?
Ho letto il topic americano (@GianfrancoPa: thank's for quote! ;)) e mi pareva d'aver capito che il tizio newbie avesse problemi a caricare il burn bootloader; ora se ha ringraziato felicemente Leo72, significa che ha fatto questa operazione con il suo suggerimento, mi pareva d'aver capito che Leo72 parlasse di caricare gli sketch, non il bootloader; in quest'ultimo caso, e SOLO in quest'ultimo caso, la tecnica che stiamo usando non è più semplice di quella di Leo72?
I chiarimenti mi necessitano perché con l'inglese vado "a senso", purtroppo :* e perché, volendo implementare nella mia guida anche questa funzione (ho alcune altre idee da testare, dopo aver letto alcuni post inglesi) non voglio scrivere fregnacce (non è romanesco?)

Si, sono due cose differenti. Il problema che hai trattato fino ad oggi serve per scrivere il bootloader su un ATmega. Il bootloader consente di poter caricare lo skecth direttamente sull'atmega senza dover passare utilizzare altro hw. Il guadagno di questa funzionalità comporta la perdita di 0.5Kb (dimensione del bootloader).

Se invece si vuol risparmiare tale spazio bisogna scrivere lo sketch direttamente sull'ATmega bypassando quindi l'opzione offerta dal bootloader. Ovviamente su un ATmega328 l'esigenza e' minima in quanto si hanno 32Kb di memoria, ma su alcuni ATmega lo spazio a disposizione è minore e quel mezzo KB può essere importante!!

Per poter scrivere su un ATmega senza passare dal bootloader, ci vuole un programmatore ISP che faccia da tramite poichè si perdono i benefici del bootloader. In fondo e' la stessa ragione per cui non è possibile scrivere il bootloader su un ATmega vergine direttamente, senza ricorrere ad un programmatore ISP.

E' una opportunità in più, poi le esigenze di ognuno renderanno più conveniente l'uso del primo o del secondo metodo!

Chiarissimo, grazie, l'ideale ora sarebbe riuscire a fare un metodo unico, semplice, per entrambe le operazioni. Vediamo :astonished:

Siccome il mio metodo usa l'Atmega dell'Arduino come un programmatore ISP dato che carico su di esso proprio tale sketch, io credo che la strada percorribile sia quella. Provate a impostare tutto con il mio metodo e poi a scegliere Tools/Bord bootloader/w/ Arduino as ISP e vedere cosa succede. Io al momento non posso provarlo.