Arduino Uno r2 - board difettosa? Non carica sketch

Salve a tutti, volevo condividere la mia esperienza.
Ho acquistato un Arduino Uno R2 non smd alla fiera dell'elettronica a un prezzo molto invitante con anche le garanzie di sostituzione in caso di mancato funzionamento.
Premessa ho già un Mega 2560, e uso windows 7
Collego l'arduino al pc mi aspettavo prendesse i driver al volo e pronto a programmare, invece...
Driver non installati, nuovo dispositivo collegato di nome Atmega8u2 dfu....
Ore di ricerche sul web, scarico FLIP, mancano delle DLL, trova le DLL, inseriscile nella cartella corretta, apertura di FLIP corretta.
Inserire chipset, ricerco in internet e tutti indicano AT90USB82 come chipset da scieglere, risposta del Software:
could not open Usb device
ore di ricerche sul web, soluzione: da gestione dispositivi faccio caricare i driver all'interno della cartella USB di flip, e finalmente installazione dei driver corretta però:
nella gestione dispositivi e' rimasto ATMEGA8U2 mentre tutte le guide trovate indicano che doveva diventare AT90USB82.
Ho fatto mille tentativi anche di modificare il file inf dei driver, ma non trovo modo di oppormi, va bè!
Allora Proseguo: carico il file HEX aggiornato per il mio arduino uno, però nella scelta chipset mi dice ancora: could not open... allora lampo di genio imposto come chipset il disgraziato atmega8u2, e tutto ad un tratto mi carica tutto quello che deve, e in gestione dispositivi mi compare ARDUINO UNO (com4).
FINE DELLA STORIA E TUTTI GLI SKETCH PARTIRONO PER SEMPRE FELICI E CONTENTI....

NOOOOOOOOOOOOOO
Quando carico uno sketch ottengo: avrdude stk500_getsync() not in sync resp=0x00
Ore di ricerche sul web, arrivo alla triste deduzione che il chipset è vergine, manca il boot loader.
Ore di ricerche sul web, trovo delle simpatiche guide che mi spiegano come caricare il BL usando il mio MEGA come principale e UNOR2 come slave seguo la procedura per filo e per segno, mille problemi dovuti alla versione di IDE, alla fine con la versione 1.05 riesco nel mio intento.
L'arduino Unor2 comincia a far lampeggiare il suo led 13, segno del corretto caricamento del BL,
lacrime di gioia, e vissero tutti felici e contenti

NOOOOOOOOOOOO
collego subito L'UNOr2 alla usb carico e ottengo: avrdude stk500_getsync() not in sync resp=0x00
Ore di ricerca sul Web, mille rimedi della nonna:

  • premi reset poi mollalo durante il caricamento....
  • metti una resistenza o un condensatore per bloccare il reset
  • cambia tipo di chipset nella procedura di caricamento BL (ho provato sia UNO, 2009)
    Poi osservando bene cosa avviene durante i caricamenti sketch sul mio MEGA e confrontando con UNO, noto che il led tx non lampeggia mai.
    Allora non mi do per vinto voglio capire cosè che non va: la board o il chipset,
    Ore di ricerche sul Web, trovo la possibilità di caricare sketch usando il mio MEGA come primario e l'UNO come slave, eseguo la procedura e il caricamento va a buon fine e l'arduino UNOr2 esegue a perfezione i comandi che gli ho impostato.

QUINDI i miei dubbio sono:

  • la BOARD è difettosa
  • il caricamento dei driver non corretti impedisce al chipset di comunicare con l'ide

Vi chiedo un favore di 1 secondo:

  • qualcuno mette il suo arduino UNO Rev 2 in DFU basta toccare questi due pin insieme :
    http://arduino.cc/en/uploads/Hacking/Uno-front-DFU-reset.png
    la procedura non è permanente e scompare subito togliendo l'usb ad arduino.
    Mi dite in gestione dispositivi cosa vi compare:
  • ATMEGA8U2 DFU
  • AT90USB82 DFU
  • ARDUINO UNO DFU
    Mi fareste una grandissima cortesia

Io dopo 5 ore no stop non so più cosa fare, mi affido alle vostre più sapienti menti. Se avete delle idee sono pronto a sperimentare

P.S. spero che non mi arrivino post come:

  • anche a me fa la stessa cosa,
  • non comprare alla fiera dell'elettronica (posso sostituirlo ma non mi interessa visto che questo problema mi ha dato delle conoscenze che hanno arricchito il mio bagaglio culturale)
  • ....

Ma dove sei andato a pescare i driver per la scheda? Lo sai che erano dentro una cartella dell'IDE???

Vaidentro la cartella principale dell'IDE, c'è una sottocartella \drivers lì dentro ci sono i driver di tutte le schede Arduino.

Rimuovi qualsiasi Driver ignoto che tu abbia recuperato chissà dove, e reinstalla il driver corretto puntando la cartella \arduino-0023\driver o quella dell' IDE che hai installato. A mio avviso hai fatto "il giro del mondo" per nulla.

Appena arriva casa ci provo. I driver di Arduino uno li ha inseriti automaticamente prendendoli dall'ide più aggiornato.
Quando lo comperata stava fissa in dfu e i driver non li trova.

djscolla:
Ho acquistato un Arduino Uno R2 non smd alla fiera dell'elettronica a un prezzo molto invitante con anche le garanzie di sostituzione in caso di mancato funzionamento.

Ma è una Arduino R2 originale?
Da come racconti tutto, pare che nessuno dei 2 chip avesse il firmware caricato sopra, il che mi fa pensare ad un clone cinese.

Arduino r2 originalissimo, sia la board che il chipset erano vergini.
Qualcuno prova a vedere in dfu come lo legge in gestione dispositivi??

djscolla:
Arduino r2 originalissimo, sia la board che il chipset erano vergini.

Non è possibile. Le schede originali sono vendute già con i firmware caricati quindi le cose sono 2:
o la scheda è un clone fatto bene (e tu non te ne sei accorto) oppure ti hanno venduto una scheda di seconda mano che già qualcuno aveva armeggiato.

Qualcuno prova a vedere in dfu come lo legge in gestione dispositivi??

L'Arduino non deve essere usato in modalità DFU. La modalità DFU è una modalità che attiva il bootloader dell'Atmega8/16U2 dell'Arduino Uno e che permette di caricare il firmware nel chippino che viene usato come convertitore seriale/Usb. Per entrare in modalità Dfu deve: 1) esserci il bootloader sul chip (ma se dici che il chip era vergine, non c'è); 2) resettare il chip mettendo a massa il suo pin di reset; 3) caricare il firmware originale Arduino che imposta quel chip come convertitore. Ma è un'operazione che su una scheda nuova non si fa mai, a meno appunto che non si sia in presenza di un clone cinese venduto a minor prezzo perché nessuno l'ha programmata oppure che il chip sia stato erasato di proposito.

Non è un clone cinese. Molto probabilmente è di seconda mano. So perfettamente che mettere il dispositivo in dfu mode non è di nessuna utilità tranne quella di cambiare il firmware del convertitore seriale. Però chiedevo a qualche anima buona, se puó mettere il suo R2 o R3 in dfu per vedere come lo segnala in gestione hardware. La procedura è velocissima basta fare un ponte sui due pin che ho indicato in foto, aprire gestione dispositivi e leggere come lo chiama. Fine! Togli l'usb e lo rimetti e ricominci a programmare come se niente fosse...
Plsss

Non ho Windows. Aspettiamo qualcun altro.

Grazie :blush:

Il Pc non puo' riconoscere la periferica, se metti l' Atmega8/16U2 in condizione di Reset.

quindi alla tua domanda

Però chiedevo a qualche anima buona, se puó mettere il suo R2 o R3 in dfu per vedere come lo segnala in gestione hardware.

la risposta e' Niente

Grazie mille. Quindi ricapitolando hai fatto il ponte sui due pinne che ho indicato, E dispositivo è andato in Dfu.
In risorse del computer barra gestione dispositivi: vede un dispositivo non riconosciuto.
Questo dispositivo non ha un nome?
Che board hai utilizzato per il test?

Ho delle news, ho telefonato al venditore che mi ha venduto la Arduino alla fiera dell'elettronica.
Ha premesso di non essere ferrato sulla programmazione di Arduino.
Una volta che gli ho spiegato la procedura che ho eseguito ha detto che quella corretta per far funzionare il tutto.
Mi ha ribadito la provenienza del Arduino direttamente dalla fabbrica di Ivrea, Dove acquista grandi quantità di questi dispositivi vergini.
Si è reso disponibile nel sostituirmi la board in modo da escludere il difetto di fabbrica. Peró ritiene che avrei gli stessi problemi in quanto le board sarebero vergini e il problema è di driver.
Inoltre ha detto che se riesco a sistemare l'arduino e gli porto i file che ho utilizzato mi regala un altro arduino come ricompensa...
Quindi: aiutatemi entro la fine della settimana devo farcela!!!

djscolla:
dove acquista grandi quantità di questi dispositivi vergini.

Mi piacerebbe che qualcuno del Team replicasse a questa affermazione.
Sinceramente non pensavo che la fabbrica vendesse anche dispositivi non programmati. Sarà vero?

Se il dispositivo è completamente vergine anche la modalità DFU non funzionerà poiché non è una funzione hardware del micro ma uno speciale bootloader caricato in fabbrica. (http://www.atmel.com/Images/doc7618.pdf)
La soluzione quindi è caricarlo tramite la tecnica ISP a linea di comando.
Devi caricare sulla MEGA lo sketch "Arduino as ISP".
Collega i cavetti tra i due connettori ICSP, quello della MEGA e quello del 8U2 (non quello del 328), occhio alla connessione del RESET. (segui la guida di michele se hai problemi: http://www.michelemenniti.it/arduino_burn_bootloader.php)
Scaricati il file HEX da flashare: https://github.com/arduino/Arduino/blob/master/hardware/arduino/firmwares/atmegaxxu2/UNO-dfu_and_usbserial_combined.hex
E da linea di comando esegui:

avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

Per ulteriori info:
--> https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2

Attenzione:
Non sono sicurissimo del comando da dare tramite AvrDude quindi aspetta che qualcun'altro ti confermi la cosa.

Una volta flashato, stacca l'Arduino dalla USB, alla successiva riconnessone dovrebbe essere riconosciuto come Arduino UNO e caricare il corretto driver.
Fatto questo devi caricare il bootloader sul 328 tramite "carica bootloader", dopo aver scelto correttamente la porta e la scheda.
Alla fine carica il blink come si fa normalmente.

Se riesci nell'impresa puoi proporre al negoziante di caricare driver, boot e blink per 1,5€ a scheda.

Grazie PaoloP per la completissima risposta.
Però non riesco a seguirti benissimo:

  • all'inizio mi dici che la modalità DFU non funzionerà... però io la prima volta che ho collegato l'UNO da "Gestione dispositivi" l'ho trovato come vedi nella 1 foto (VERGINE)
    -per caricare il firmware tramite filp ho dovuto installare i driver dell'Atmega, che ho trovato nella cartella di flip, e in "Gestione dispositivi" compariva come nella seconda foto (driver installati)
  • una volta finita la procedura di caricamento firmware in "Gestione dispositivi" compariva come nella terza foto (ArduinoUno)
    Poi ho caricato il BL tramite ISP e il blink è partito, però il caricamento tramite usb non funzia, ho provato a caricare un altro sketch tramite isp e così funziona alla perfezione.

Quel bel comando che mi hai Quotato, quando e dove lo devo utilizzare??

Ciao cercando in internet ho scoperto il mondo di avrdude, questo software che si lancia da CMD...
Ho collegato il mega come indicato nella guida di Menniti e l'UNO direttamente nel connettore del convertitore seriale
Ho provato a lanciare la stringa che mi hai indicato, impostando la com corretta e ha cominciato a comunicare con il MEGA però ricevo il messaggio: avrdude: stk500v2_ReceiveMessage(): timeout.
Qualcuno mi aiuta???

Che convertitore seriale hai usato? RX e TX li hai incrociati?

Se l'ha riconosciuta con DFU allora non era proprio verginello.
Per l'attacco ICSP della 8u2 segui il disegno di Pighi. (http://www.pighixxx.com/PghXxXcnt/Arduino/Uno/ARDUINO_V2.pdf)
I collegamenti sono i medesimi della guida di Michele, ma il connettore è quello in alto a destra.

Per programmare la 8u2 dell'UNO sto usando un MEGA con l'esempio precaricato
ArduinoISP. Peró non ottengo risultati, non comunicano... :cold_sweat:
Qualcuno mi indica una versione di avrdude da scaricare idonea a quello che sto facendo? Grazie

Ho riletto con calma i vari post.
Il tuo Arduino non era proprio verginello; infatti dici che il caricamento tramite DFU ha funzionato.
Hai ponticellato il reset sull'8U2, hai caricato tramite flip e al successivo riavvio è apparso in gestione risorse l'agognata Arduino UNO.
A questo punto hai detto di aver caricato il bootloader e poi il blink ma sempre tramite ISP.
Qui c'è un errore.
Se carichi il blink o un qualunque sketch tramite ISP pialli il bootloader precedentemente caricato.

Quindi, se in gestione risorse ti compare ancora l'Arduino UNO non toccare più l'8U2.
Ricarica tramite ISP il bootloader della UNO sul 328. (segui la guida di Michele).
A questo punto dovresti essere pronto per caricare gli sketch via USB.

Fai queste prove, poi nel caso ci sentiamo.