Arduino Uno r2 - board difettosa? Non carica sketch

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.

Grazie paolo (ti è arrivato il pm che ti ho mandato ???? perchè sto usando l'iphone e il sito non gira bene)
Per rispondere al tuo post precedente:
Una volta caricato il BL su il 328 con guida di menniti.
Ho staccato tutto e ho provato a caricare uno sketch dall'ide in maniera tradizionale. Ma non funzionava!
Poi visto che non riuscivo ho caricato uno sketch usando ISP.

Cmq questa sera provo a ricaricare tramite ISP il BL del 328. Tanto per scaramanzia!

P.S. Quando collego la UNO al pc apro l'ide e il monitor seriale e digito qualcosa e lo invio ad arduino il led RX lampeggia quindi 8U2 sta lavorando
Se io stacco il 328 dalla board e provo a caricare uno sletch ottengo lo stesso errore.
LA MIA TEORIA è che 8U2 non faccia comunicare il 328 in TX (infatti quel led è sempre spento)

Se il blink funziona caricato tramite ISP, per vedere se funziona la seriale basta che carichi, sempre tramite ISP, uno degli esempi che utilizzano la seriale, tipo l'ASCII table.
Dopo di che apri il serial monitor dall'IDE che dovrebbe resettare l'Arduino e dovrebbero apparire i dati.
Se funziona allora devi caricare il BootLoader tramite ISP e sei a posto.
Se non va, il problema potrebbe essere o l'8U2 o il 328 guasto o qualche pista interrotta.

Si, il PM è arrivato. :grin:

PaoloP:

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

Usando la UNO con l'ArduinoISP si deve cambiare programmatore e specificare la vel massima.
Provate con questa stringa (però non ho controllato il resto dei parametri):

avrdude -p at90usb82 -F -P usb -c arduino -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 -b 19200

Alternativamente provate -cstk500v1 come programmatore, se non vi prende il parametro arduino.

PaoloP:
Se il blink funziona caricato tramite ISP, per vedere se funziona la seriale basta che carichi, sempre tramite ISP, uno degli esempi che utilizzano la seriale, tipo l'ASCII table.
Dopo di che apri il serial monitor dall'IDE che dovrebbe resettare l'Arduino e dovrebbero apparire i dati.
Se funziona allora devi caricare il BootLoader tramite ISP e sei a posto.
Se non va, il problema potrebbe essere o l'8U2 o il 328 guasto o qualche pista interrotta.

Ho eseguito i test, ma il mistero si infittisce!!! Sto cominciando a divertirmi :stuck_out_tongue_closed_eyes:
Ho caricato tramite ISP lo sketch che ho allegato come immagine, poi stacco tutto, collego l'UNO e il tx comincia a lampeggiare!!! Apro il monitor seriale e allego il risultato, molto strano che mi ha inviato...

Più faccio esperimenti più penso che il problema sia tutto nel fatto che quando ho carico il firmware dell'8U2 tramite FLIP il,
ho selezionato il chipset ATMEGA8U2 mentre tutte le guide dicono di scegliere assolutamente il chipset AT90USB82.
Non lo fatto di mia scelta, diceva sempre: COULD NOT OPEN USB DEVICE.

When the Windows device installer comes up, select “have disk” and install the Atmel USB driver. By default the Atmel USB driver is installed in C:\Program Files\Atmel\Flip 3.4.2\usb\atmel_usb_dfu.inf
Notice that the driver is AT90USB82, not ATmega8U2

E' possibile che questo sia l'errore ??
Per me è inutile che vado a riprogrammare 8u2 quando comunica perfettamente con il PC, poi magari mi sbaglio ditemi voi...

Faccio quello che mi dite!!! :grin:

Almeno è una buona notizia.
Non funziona bene ma funziona.

A questo punto penso che tu possa risolvere riscrivendo via ISP il firmware dell'8U2. (segui le indicazioni di Leo)
Oppure hai già provato a rimettere quello giusto con FLIP?