Se vi siete imbattuti nell’errore “avrdude: stk500_getsync() Errore durante il caricamento dello sketch“, durante il caricamento di un qualsiasi sketch, è semplicemente perchè il chip ATmega328P della vostra board non ha il bootloader aggiornato. In questo post vedremo come Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP.
Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP
Come anche spiegato sul sito di Arduino, è stato migliorato il bootloader per quanto riguarda la programmazione dell’ATmega328P tramite Arduino IDE. l’unico problema è che, per poter essere compatibile con l’IDE, bisogna aggiornare il bootloader.
Resta comunque possibile caricare gli sketch sui microcontrollori non aggiornati selezionando, dall’IDE, Strumenti -> Processore -> ATmega328P (old bootloader)
Questo è il messaggio di errore che viene visualizzato in fase di caricamento di uno sketch su un microcontrollore con l’ATmega328P non aggiornato:
Materiale occorrente
In questa guida vedremo come aggiornare una board Arduino Nano tramite Arduino UNO Rev3 utilizzando i connettori ISP presenti su entrambe le schede:
- Arduino Nano ATmega328P CH340G: lo abbiamo già utilizzato per altri progetti (acquistabile su Amazon – eBay)
- Arduino UNO Rev3: (acquistabile su Amazon – eBay)
- Jumper Wire: cavetti (acquistabili su Amazon – eBay)
- Arduino IDE: ambiente di sviluppo per programmare il micro controllore Arduino (per l’installazione e la configurazione vi rimando a questi post)
Per comodità chiameremo la board Arduino Nano, quella con il bootloader da aggiornare, Target e Arduino UNO Rev3 Programmer.
Collegamenti
Il connettore ISP ha una piedinatura standard ma può essere saldato sulle varie schede in modo differente.
Questa è la piedinatura:
Per questioni di spazio le indicazioni dei 6 piedini non vengono stampate tutte ma viene indicato solo il piedino 1 (MISO). Una volta individuato il piedino 1 basta guardare lo schema dell’immagine precedente per individuare la disposizione degli altri piedini del connettore.
Sulla board Arduino Nano, utilizzata in questa guida, il piedino 1 è evidenziato con il numero 1
Sulla board Arduino UNO Rev3 il piedino 1 è contrassegnato con un cerchietto bianco
N.B. sulla board Arduino UNO sono presenti due connettori ISP, quello che andremo ad utilizzare per aggiornare il bootloader è quello collegato al chip ATmega, come evidenziato nell’immagine seguente
Procediamo con il collegamento dei piedini dei connettori ISP, tra le due schede, in questo modo:
COLLEGAMENTO PIEDINI | ||
---|---|---|
Arduino Nano (Target) | Arduino UNO Rev3 (Programmer) | Jumper Wire |
1 MISO (ISP) | 1 MISO (ISP) | Blu |
2 VCC (ISP) | 2 VCC (ISP) | Rosso |
3 SCK (ISP) | 3 SCK (ISP) | Verde |
4 MOSI (ISP) | 4 MOSI (ISP) | Giallo |
5 RESET (ISP) | D10 | Viola |
6 GND (ISP) | 6 GND (ISP) | Nero |
Prestare attenzione al piedino 5 RESET, del connettore ISP, della board Target (Arduino Nano) che deve essere collegata sul piedino D10 della board Programmer e non al piedino 5 RESET presente sul connettore ISP.
Questo è lo schema di collegamento realizzato con Fritzing (Arduino UNO Rev3 Programmer a sinistra e Arduino Nano Target a destra)
Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP
Aggiornamento chip
Una volta effettuati i collegamenti tra le due board, colleghiamo la scheda Programmer (Arduino UNO Rev3) al nostro PC tramite cavo USB e avviamo Arduino IDE.
Selezioniamo da Strumenti -> Scheda -> Arduino/Genuino Uno la voce relativa alla board che stiamo utilizzando come Programmatore
Selezioniamo la porta su cui è collegata la scheda Programmer da Strumenti -> Porta -> COM7 (N.B.: il nome della porta potrebbe essere differente)
Impostiamo la board Programmer in modo da poterla utilizzata come programmatore da Strumenti -> Programmatore -> Arduino as ISP
Selezioniamo lo sketch che si occuperà di effettuare il flash del bootloader da File -> Esempi -> ArduinoISP
Carichiamo il codice ArduinoISP sulla board Arduino Programmer cliccando sul pulsante Carica
Al termine della carica dello sketch vedremo un messaggio in basso all’IDE che ci conferma l’avvenuta carica
A questo punto, tenendo sempre collegata al PC la scheda Programmer (Arduino UNO Rev3), configuriamo l’IDE per poter permettere il flash del bootloader sulla board Target.
Selezioniamo la board Target da Strumenti -> Scheda -> Arduino Nano
e il processore da Strumenti -> Processore -> ATmega328P
Per avviare il flash del bootloader clicchiamo su Strumenti -> Scrivi il bootloader
L’operazione di flash del bootloader durerà qualche secondo. Se tutto è andato correttamente ci verrà mostrato un messaggio dell’avvenuta scrittura
Ora non ci resta che testare se il bootloader appena aggiornato funziona.
Scolleghiamo le due schede, colleghiamo Arduino Nano al pc e avviamo l’IDE, selezioniamo il processore da Strumenti -> Processore -> ATmega328P, e proviamo a caricare il codice blink come mostrato in questo post.
Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP
Problemi e soluzioni
Come segnalato nei commenti del post se viene utilizzato un sistema operativo diverso da Windows, in fase di aggiornamento del bootloader, si potrebbe verificare questo errore
Per risolverlo dovrebbe essere sufficiente inserire un condensatore elettrolitico da 10uf collegando il piedino positivo del condensatore al PIN Reset, e il piedino negativo al PIN GND di Arduino UNO (Programmer).
Se riscontrate delle anomalie durante l’aggiornamento del bootloader non esitate ad utilizzare i commenti per segnalarli.
A presto 😉
Ciao ho provato a seguire la tua guida ma mi da errore.
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): unknown response=0x12
Errore durante la scrittura del bootloader
Ora se provo ad alimentare il nano da solo mi si accende il led L e non riesco a caricare nessuno sketch, anche segnando “ATmega328P (Old Bootloader)”. Cosa posso fare?
Ciao TDARIO, premetto che ho aggiornato 3 Arduino Nano CH340G con questa procedura senza problemi.
Dal messaggio di errore sembra un problema di collegamento tra i due connettori ISP.
Hai provato a rifare la procedura controllando bene i collegamenti?
Qual’è la versione dell’IDE che stai utilizzando (io ho utilizzato la 1.8.5) e su quale sistema operativo?
Sono riuscito a risolvere sotto windows, con il Mac non ne voleva di scrivere il bootloader. Grazie.
Bene. In effetti ho testato la procedura solo su Windows 10.
Non appena ne avrò l’occasione proverò a trovare una soluzione funzionante anche su Mac.
A presto.
sei un grande nella tua semplicita di espressione hai reso possibile anche a me di recepire il procedimento per il boot di nano che non ho mai fatto scuole di elettronica faccio l’artigiano GRAZIE Giuseppe
Ciao Giuseppe,
grazie a te per aver visitato il mio blog.
Mi fa piacere che questo post ti sia stato utile. Cerco di fare del mio meglio per rendere ‘semplici’ le guide che pubblico.
A presto 😉
Ciao ho seguito la tua guida ma mi da questo errore:
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Errore durante la scrittura del bootloader
Come posso risolvere?
Grazie in anticipo!
Ciao Filippo,
scusami se ti rispondo solo ora.
Premetto che ho testato la procedura descritta nel post su 3 Arduino Nano CH340G senza problemi (utilizzando come board Programmer un Arduino UNO Rev 3 originale e come sistema operativo Windows 10).
Per quanto riguarda l’errore che stai riscontrando prova a controllare i collegamenti: potrebbe capitare che i jumper utilizzati non siano tutti funzionanti. Assicurati che non siano danneggiati, magari utilizzando un tester, e prova a ripetere tutta la procedura del post (compreso i collegamenti tra le due board).
Grazie ottimo tutorial.
Ciao, inserendo un condensatore elettrolitico di 10uF (microfarad) tra il PIN RESET ed il PIN GND di Arduino UNO (il pin con segno (-) del condensatore va messo nel GND), ho risolto il problema segnalato da TDARIO che avevo pure io usando un MacBook Air con OSX.
Ciao Marco, grazie per la segnalazione.
Buona sera ho un problema con un kit preso su amazon:
KEYESTUDIO Kit Robot Mini Tank con Evitare di ostacolo a ultrasuoni, Scheda R3, Modulo Bluetooth Lultimo Gioco Intelligente ed Educativo per Bambini for Arduino Uno
Il software IDE non mi carica i programmi resta fermo in STO CARICANDO…..poi dopo un paio di minuti
mi esce la scritta :Errore durante il caricamento dello sketch.
cosa posso fare per far funzionare tutto?
grazie mille
Ronny
Ciao Ronny,
per provare a risolvere il problema sarebbe meglio avere altre informazioni:
– che versione di Arduino IDE stai utilizzando (e su quale sistema operativo: Windows, Linux, ecc..)?
– l’errore ti viene visualizzato solo in fase di caricamento da Arduino IDE alla scheda Arduino o anche se effettui una verifica del codice dall’IDE?
– gli sketch hanno bisogno di librerie particolari da installare prima di caricarli sulla board?
– hai già provato a caricare gli sketch su un’altra scheda Arduino?
Riesci a postare l’errore completo che mostra l’IDE?
Ti ringrazio molto del tutorial, semplice ed efficacie, ho sistemato tante schede nano che avevo incasinato con tentativi di bootloader 🙂
CI sai dare anche un consiglio sul come programmare l atmega 328p SMD in modalità standalone ?
grazie ancora
Francesco
Grazie e complimenti per il tutorial , avevo 5 schedine nano nuovissime con bootloader indecifrabile , recupero perfetto !
Giorgio
Thank you very much for your instructions on how-to burn the bootloader on a non-Windows machine. That helped me a lot. I thought my Ender 3 board was dead.
Ottimo tutorial. funziona anche con ftdi o solo con CH340G?
Ciao Mauro,
non ho provato personalmente ad aggiornare il bootloader su una board Arduino Nano con chip FTDI, ma non dovrebbero esserci problemi.
FTDI e CH340G sono due adattatori USB che permettono la comunicazione seriale (trovi altre info su Wikipedia a questo link).
Nella guida, la board Arduino Nano, viene collegata tramite il connettore ISP (ICSP) bypassando così il chip CH340G.
Ciao a tutti, il mio problema è diverso ma pensavo di aggiornare il bootloader per vedere come si comporta. Praticamente il mio nano non fa il suo dovere dopo un blackout, devo obbligatoriamente premere il reset (attenzione mi riferisco al nano economico) ma ripeto non ho problemi o errori in fase di caricamento…
grazie
Grande guida, complimenti!
Ciao Lele, una domanda, è possibile riprogrammare arduino uno atmega328p con uno stesso arduino? ne ho uno in cui i led ON e L restano accesi ma non accetta nessuno sketc, mentre l’altro ovviamente è perfettamente funzionante, tutto questo è possibile utilizzare i collegamenti che sono fatti per arduino nano?
grazie Claudio
Ciao Claudio,
si gli stessi collegamenti possono essere utilizzati per aggiornare il bootloader di un Arduino Uno.
N.B. la board utilizzata come programmatore (nel mio caso ho utilizzato un Arduino UNO Rev3 originale) deve avere il bootloader già aggiornato.
Ciao, io ho IDE 1.8.5 ma non c`e’ la voce “Processore ATmega328P(old bootleader) ma solo ATmega328P, posso usare questo per aggiornare un Arduino nano?. IN attesa Saluti.
Ciao Sergio,
l’aggiornamento del bootloloader dovresti riuscire a farlo senza problemi.
Prova comunque prima ad aggiornare le librerie, e le schede, o ad aggiornare la versione dell’IDE passando ad una più recente.
Ciao, il bootleader lo ho aggiornato con successo, pero` non riesco ad installare il driver CH431 per il NANO, mi dice sempre “driver install failure”. In gestione dispositivi non me lo riconosce e se faccio aggiorna DRIVER mi dice che il miglior drive e` gia installato. Se disinstallo il driver e poi cerco di caricare il CH431 mi scrive “the drive is successfully preinstaller in advance”. A questo punto non so piu` cosa fare. HO Win 8.1 PRO. Saluti.
Per l’installazione del driver CH431 prova a seguire la guida che ho pubblicato a questo link Programmare Arduino Nano ATmega328P CH340G con Arduino IDE in Windows. Nel file da scaricare, dal sito del produttore, è compreso anche quello per il convertitore seriale CH431.
Ciao Lele,
ho un Arduino nano cinese.
Sono in W10 con IDE aggiornato alla 2.0.3
Ho seguito la procedura, chiarissima, come descritta.
Il programmatore pare non riesca a cancellare il vecchio bootloader e mi invia questo messaggio:
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
Impossibile cancellare il chip: errore durante il caricamento: exit status 1
Come posso risolvere?
grazie