16 commenti su “Caricamento bootloader su Arduino standalone – Arduino UNO ISP

  1. Ciao Toggio ottima guida.

    Ho seguito passo passo ma ho sempre lo stesso errore e non capisco come procedere.
    Ecco l’errore:

    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.

    Ho provato ad utilizzare sia la versione arduino IDE 1.0, 0022 e 0023 ma non cambia nulla. Ho inserito anche il condensatore da 22micro F. I passi che seguo sono:

    Eseguo l’upload di ArduinoISP selezionando Arduino UNO come scheda.
    Scollego il cavo USB e procedo coi collegamenti come da figura (senza crystal).
    A questo punto, lasciando l’integrato sulla scheda arduino UNO e collegando su breadboard il resto seleziono Tools –> Board –> ATmega328 on a breadboard (8 MHz internal clock) poi Burn Bootloader –> w/ Arduino as ISP.

    Niente da fare. Non capisco dove sia l’errore.

    • Caro Michele,
      sapessi quanto ho tribulato anche io all’inizio a riuscire a farlo funzionare ‘sto cavolo di Atmega328… ore ed ore con quell’errore senza capire dove stava il problema…
      Allora, innanzitutto il problema è abbastanza generico (se non colleghi del tutto l’Atmega328 ti da lo stesso errore!!!).
      Detto questo, ti consiglio di effettuare le seguenti verifiche:
      1 – Lo sketch ArduinoIsp contenuto nell’IDE 1.0 non funziona!!! Non tanto l’IDE in se, ma proprio lo sketch contenuto in esso, quindi indipendentemente da quali IDE usi, l’upload di ArduinoISP fallo aprendo l’esempio contenuto nella versione 0022 o 0023
      2 – Prova innanzitutto a lanciare il “Burn Bootloader” usando come board “Arduino Duemilanove or Nano w/ ATmega328” con cristallo e condensatori (clock a 16Mhz) e verifichiamo se così funziona. Questo perchè se l’Atmega328 non è “vergine” ma è già programmato con il bootloader di Arduino, funziona a 16Mhz e quindi non puù comunicare senza oscillatore esterno
      3 – Se la prova seguente è andata a buon fine, allora riprova a programmare l’Atmega328 a 8Mhz, ma LASCIA L’OSCILLATORE ESTERNO LA PRIMA VOLTA CHE ESEGUI QUESTA PROCEDURA
      4 – Se invece la prova precedente non è andata a buon fine c’è qualche altro problema. Il problema tipico è quello del condensatore non messo bene che effettua il reset dell’Arduino UNO. Prova a ricollegare tutto da capo, prestando molta attenzione all’ordine del cablaggio. Un trucco potrebbe essere di seguire il seguente ordine: collegare tutto tranne il +5 volts all’Atmega328 da programmare, il condensatore e l’Arduino UNO tramite USB. Collegare Arduino UNO all’USB, collegare i +5 all’Atmega328 e collegare il condensatore
      Fammi sapere se sei riuscito, altrimenti proviamo a rivedere il tutto.
      Saluti

      • Ottimo ci sono riuscito grazie ai consigli. Sono arrivato a caricare su atmega328 il boot 8mhz. Fatto questo ho preso l’atmega pronto in configurazione minimal ho tolto da arduino l’atmega328.
        Poi ho selezionato lo sketch blink e ho tentato l’upload su breadboard aggiungendo anche il condensatore ma nulla mi riporta errori di tipo stk500_getsync not in sync.

        Ciao e grazie

    • Ciao Toggio,
      in effetti avevo scordato il collegamento corretto. Ora però ho un problema. Temo, nei vari giri e tentativi, d’aver caricato su i miei due ATMega328 il bottloader da 8Mhz.
      Ora quando tento di caricare bootloader o altro mi riporta sempre l’errore di sync.

      Sai come posso ripristinare il bootloader inziale?

      Grazie e saluti

      • CIao Michele,
        per ripristinare il bootloader iniziale, il collegamento è lo stesso, solo che se il bootloader attuale e a 8Mhz, devi fare l’upload del bootloader senza utilizzare i cristalli esterni, poichè in questo momento non è programmato per usare l’oscillatore esterno.
        Saluti

  2. Ciao a tutti quando si usa la scheda arduino uno in questa configurazione bisogna togliere il chip atmega che è installato sulla scheda oppure no?

  3. Ovviamente no,
    come spiegato nell’articolo devi caricare lo sketch Arduino ISP che va a finire proprio sul chip atmega che è installato sulla scheda. Se lo togli, non può funzionare. Ti confondi con l’altro sistema, quello che permette di caricare gli sketch su un Arduino Standalone con bootloader (vedi https://arduinoelettronica.wordpress.com/2012/02/06/arduino-standalone-arduino-senza-arduino/), in questo caso Arduino diventa un semplice convertitore usb/seriale e, solo in questo caso, va tolto l’atmega dalla scheda Arduino.
    Spero di essere stato d’aiuto
    A presto
    Luca

  4. Ciao, sto provando a programmare un atmega8 con cristallo interno a 8MHZ. La procedura è la stessa? Cosa dovrei mettere dentro il file boards.txt? Ho trovato della roba sui vari siti web, ma non ci riesco!! Vorrei fare un telecomando IR tascabile, senza il cristallo esterno è abbastanza preciso per inviare segnali a 38kHz, che tu sappia?
    Grazie,
    Daniele

    • Ciao Daniele,
      sull’Atmega8, non è possibile caricare il bootloader di Arduino così com’è.
      Puoi programmare però l’Atmega8 con la procedura descritta nel mio articolo “Atmega328 standalone senza il bootloader di Arduino”, oppure seguire la procedura che trovi qui:
      http://todbot.com/blog/2009/05/26/minimal-arduino-with-atmega8/
      Praticamente va aggiunto il bootloader “ATmegaBOOT.hex” nella cartella bootloader di Arduino.
      In ogni caso in boards.txt devi aggiungere la seguente sezione:

      ##############################################################

      atmega8noxtal.name=ATmega8-noxtal @8MHz
      atmega8noxtal.upload.protocol=stk500
      atmega8noxtal.upload.maximum_size=7168
      atmega8noxtal.upload.speed=38400

      atmega8noxtal.bootloader.low_fuses=0xe4
      atmega8noxtal.bootloader.high_fuses=0xc4
      atmega8noxtal.bootloader.path=atmega8_noxtal
      atmega8noxtal.bootloader.file=ATmegaBOOT.hex
      atmega8noxtal.bootloader.unlock_bits=0x3F
      atmega8noxtal.bootloader.lock_bits=0x0F

      atmega8noxtal.build.mcu=atmega8
      atmega8noxtal.build.f_cpu=8000000L
      atmega8noxtal.build.core=arduino

      ##############################################################

      A presto
      Luca

  5. Ciao a tutti,

    io ho cercato di replicare una Arduino Pro Mini da 3.3V e con oscillatore ESTERNO da 8Mhz.

    Ho provato a caricare il bootloader con un’arduino Mega 2560, ma il risultato è che dopo aver finito la procedura, quando cerco di caricare un programma, l’IDE mi restituisce l’errore not in sync ecc ecc.

    Esiste una soluzione per il problema??

    La scheda è praticamente uguale all’arduino pro mini, ma non riesco a farla funzionare!!

    • Verifichi per filo e per segno tutte i passaggi: c’è sicuramente un problema nel collegamento.
      Attenzione che se il voltaggio è 3.3V, deve essere 3.3V anche il convertitore USB seriale.
      Inoltre se l’Atmega328 era preprogrammato a 16Mhz, il primo upload va fatto con l’oscillatore a 16Mhz per settare i fuse.
      A presto

  6. buona sera. Ho un Arduino Nano che ha funzionato correttamente al primo avvio ma al successivo mi ha chiesto di installare il driver della porta USB (FDTI). Effettuata l’operazione apre la porta COM assegnata (nel mio caso COM 11) ma quando cerco di utilizzare il dispositivo, avendo selezionato e la board Nano e la porta COM, mi dice che questa e’ gia’ occupata. Ho provato a cambiare varie porte ma il risultato non e’ cambiato. Deduzione ho un problema nel riconoscimento della porta COM che pero’ funziona regolarmente con tutte le altre periferiche, gli altri Arduino Uno e UNO32 nonche’ Nano che uso, non contemporaneamente. Ho anche tentato di reinstallare il bootloader ma senza risultati. Ora non so piu’ cosa fare e chiedo se qualcuno ha una qualche idea.

    Grazie Steve

Lascia un commento