Arduino Mega 2560R3 non riconosciuta

Salve a tutti,
ho costruito una plafoniera rgb, con timer RTC, sensore temperatura e ventole controllata da Arduino Mega 2560R3 ma quando ho provato ad aggiornare lo sketch, il pc (windows 7) non vede più arduino, in gestione dispositivi non compare nessuna porta COM. Ho provato con una arduino UNO e funziona OK. Ho bruciato la parte USB ? Ho letto vari forum ma il mio problema e un po' diverso in quanto non ho idea di come far vedere la scheda ... Faccio presente che l'ultimo schetch caricato gira normalmente (Arduino ver.1.0.5) . Eventualmente è possibile eseguire un upload da una scheda arduino UNO ? O come potrei fare ...
Grazie.

La prima prova da fare è collegare la board ad un altro PC, a volte si possono incasinare i driver e qundi semplicemente Wind blocca il riconoscimento della periferica, anche se quest'ultima funziona correttamente; il fatto che la UNO funzioni non è una prova "schiacciante" del guasto del convertitore seriale della MEGA.

Diponendo della UNO e dando per scontato che la MEGA abbia il micro a posto, quanto a bootloader, puoi tranquillamente ucare la UNO come convertitore USB-Seriale, togliendo il micro 328P dallo zoccolo e collegando UNO e MEGA, tramite dei cavetti jumper, per i seguenti segnali: 5V, GND, TX, RX, RESET. Nell'IDE selezioni la COM della UNO e come board selezioni la MEGA, poi fai il normale UPLOAD dello sketch e tutto funzionerà. Scaricati e segui la mia guida. :wink:

Anche la volta scorsa (avevo bruciato la scheda) la rapidità del forum è stata sorprendente! Collego un minipc che possiedo, provo. Se non funzia è un sollievo sapere che con una UNO posso esegure l'upload. Proverò e ti farò sapere.
Grazie.

OK, aspettiamo :slight_smile:

Purtroppo la prova con un altro PC è fallita, non vede la scheda ! Ho provato ad esegure l'upload con arduino UNO (senza chip e collegata alla 2560), che vede tranquillamente, ma lo sketch non viene caricato, ovviamente ho selezionato la mega 2560 nell' IDE.
Mi dice :
Dimensione del file binario dello sketch: 34.128 bytes (su un massimo di 258.048 bytes)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

L'unico ultimo dubbio è se devo scollegare tutti i pin della mega 2560 , perchè ora sono collegati a varie periferiche (lcd,timer,tasti etc.), altrimenti mi toccherà rimanere con una versione bacata del programma che avevo quasi terminato. Altra cosa: il pin tx-1 della mega lo utilizzavo per comandare la ventola ... ma non penso sia significativo (.
Ho letto poi di firmare, dfu ... ma non ho idea se sia il caso ...
Ciao e grazie.

I pin tx/rx della MEGA devono essere ASSOLUTAMENTE liberi, bada bene che il pin TX della UNO DEVE essere collegato al pin TX della MEGA, e quindi RX/UNO a RX/MEGA; non dimenticare di collegare tra loro i due pin RESET e 5V e GND. Concettualmente dovrebbe funzionare anche se io, onestamente non ho mai provato.
Visto che la Mega non viene riconosciuta da alcun PC il problema al 99% riguarda il convertitore USB seriale integrato, quindi il caricamento del firmware DFU in questo micro è in genere l'unico tentativo possibile di ripristino della scheda.
Naturalmente se ti va a buon fine il tentativo tramite la UNO e la MEGA devi usarla definitivament in questo progetto, puoi farne a meno.

In teoria i pin pwm della mega sono 14 (0 e 1 compresi), per necessità ho usato il pin 1, ma ... (non si capisce effettivamente !) nella prova di upload ho giustamente staccato il pin 1 che utilizzo nel progetto e collegato alla mega, purtroppo penso di non aver fatto errori perchè i contatti sono solo 5. Avevo anche letto per il discorso del firmare e istallato Flip ma arrivo ad un punto in cui in ogni caso devo riconoscere la scheda ( con Flip ad es.) e salvo una mia erronea interpretazione ,mi fermo lì.
Solo una nota : il pin 1 funziona come pwm a patto di non eseguire Serial da programma.
Complimenti per la guida. Completa direi.
Ciao

mikepin00:
Solo una nota : il pin 1 funziona come pwm a patto di non eseguire Serial da programma.

E' giusto così, se è usato per la seriale un segnale PWM su quel pin disturberebbe la comunicazione.

leo72:

mikepin00:
Solo una nota : il pin 1 funziona come pwm a patto di non eseguire Serial da programma.

E' giusto così, se è usato per la seriale un segnale PWM su quel pin disturberebbe la comunicazione.

Grazie per la conferma. Di fatto mi pare però di dover dichiarare non morta ma in coma profondo la scheda !

Qualcuno ha qualche idea di come posso recuperare la mega 2560 ?

... proverò la soluzione che ho letto ... :
... sembrerebbe il mio stesso problema ...

Ragazzi, per caso leggendo altre cose prima mentre cercavo due tre info sull'adattatore mi sono imbattutto nel reset del chip 16u2 e ho cominciato a cercare con le parole chiave "16u2 DFU mode". Beh alla fine ho trovato una procedura e cortocircuitando dei pin ho resettato il chip che poi è stato riconosciuto da Windows. A quel punto con Flip, un software atmel l'ho riprogrammato e ora funziona di nuovo anche da USB. Fico! smiley-lol

Per chi si imbattesse in queste peripezie

http://www.wayneandlayne.com/blog/2011/02/16/fixing-linux-firmware-issues-on-arduino-mega-2560/

Aspetta.... tu stai usando Windows e di solito con Windows non c'è bisogno di quella procedura. Quella procedura riguarda gli utenti Linux e pochi lotti di schede, ad esempio la mia UNO R1 non ne è afflitta, anche se alcuni dicevano che lo era.

Inoltre inizi il post chiedendo come recuperare la scheda, poi scrivi che hai sistemato tutto. Ma allora il problema lo hai risolto o no? :sweat_smile:

In verità mi sono dimenticato di riportare il link del topic dove risponde oniric :
http://forum.arduino.cc/index.php?PHPSESSID=1mhv5tk6bt0ap4ovhqp7q258v1&topic=106507.30

Ovvero dopo la terza riga riporto la soluzione di oniric che proverò stasera. Non mi sembra che il suo problema riguardi gli utenti linux (nel link probabilmente si !), oniric sembra aver provato con tutti gli O.S. , io volevo aggiornare i firmware non per un (bug) ma perchè ad un certo punto (non so esattamente se ho sbagliato qualche collegamento...) non vedo più la scheda, sembra (leggendo) che la scheda a fronte di qualche sovratensione, mandi in blocco il chip 16u2 ed è necessario caricare il firmware. Eventualmente se questo non funziona proverò ad eseguire un upload tramite (ISP con arduino UNO).
Ciao

Ah, ok. Perché sui primi modelli di schede che adottarono il nuovo chip convertitore seriale c'era un firmware che dava qualche problema se la scheda veniva connessa ad un sistema Linux e ne consigliavano appunto l'aggiornamento.
Però se mi parli di blocco del chippino, non è lo stesso problema anche se la soluzione è identica: riscrittura del firmware.

Ieri sera allora ho eseguito il tentativo hardware, cortocircuitando i pin come descritto nel link, ma niente nessun risultato. L'ultimo tentativo rimasto era di utilizzare il dfu programmer.
Avevo qualche dubbio, mi son detto : la scheda tutto sommato funziona con lo sketch (anche se non del tutto ok) e anche se la parte USB è saltata è utilizzabile. Insomma avevo "paura" di far danni.
Ho seguito le istruzioni del Manuale di Menniti collegando la mia UNO alla MEGA 2560, a quel punto ho eseguito l'upload dello sketch (caricamento da programmatore) una volta caricato sulla UNO quello del dfu programmer, e devo dire qualcosa questa volta è successo, lo sketch si è caricato ( almeno sembra, nessun errore ... operazione completata ...), ma appena caricato è rimasto acceso il led RX, cosa strana non funziona più il tasto reset ?! e altra cosa strana mettendo un led sul pin 13 e +3,3v si spegna il led RX rimasto precedentemente acceso ... Ho letto nella guida di Menniti che (a parte il discorso strano del condensatore, che tra l'altro ho messo) che caricando lo sketch tramite dfu non viene caricato il bootloader.
Dopo ho provato anche a caricare il bootloader ma restituisce un errore ... e rimane a lampeggiare RX.
Ma dovevo prima caricare il bootloader ? Non ho ben capito se dovevo caricare solo lo sketch o anche il bootloader o ... ??? Il bootloader serve solo per la comunicazione seriale ? o bisogna sempre caricarlo ?
(Se qualcuno gentilmente mi da delucidazioni ...)
Situazione finale : lo sketch sembra caricarsi ma non gira, non funziona più il reset da scheda, la scheda sembra essere NON é PiU' UTILIZZABILE !!!

Succede sempre quando si ha fretta di risolvere un problema, la Guida è lunga e la tentazione di leggere una riga sì e quattro no è molto forte :grin:
Il micro presente sulla 2560 ha già il bootloader precaricato, va ricaricato se pensi possa essere danneggiato; visto che la comunicazione seriale non funziona più la presenza del bootloader diventa ininfluente.
quello del condensatore non è un discorso "strano" ]:smiley: è chiaramete spiegato che NON va usato in assoluto ma SOLO se al primo tentativo di programmazione ISP (bootloader o sketch, non importa), l'IDE restituisce un errore BEN PRECISO, altrimenti la sua presenza fa più danno che bene!
QUindi, l'unica cosa che ti conviene fare è provare a caricare uno sketch mediante tecnica ISP e senza usare il condensatore. Lo sketch scrivilo tu, modifica il blink in modo che faccia lampeggiare due led su due pin diversi, così lasci perdere il "13" e hai certezza o meno del buon fine. La procedura è:
1 - lascia collegata sola la UNO all'USB del PC e scollega tutti i cavetti dalla MEGA
2 - seleziona Arduino UNO e caricagli dentro lo sketch ArduinoISP, in questo caso lampeggiano tx/rx della UNO durante il caricamento, come sempre
3 - con la massima attenzione collega UNO e MEGA secondo le mie indicazioni (par.2A2 pag.16)
4 - seleziona ora nell'IDE la board Arduino MEGA (il tuo modello preciso)
5 - esegui il comando Tools - Programmer e seleziona "Arduino as ISP"
6 - scrivi o carica lo sketch per gestire i due LED
7 - esegui il comando File - Carica con un programmatore

Se non ti escono errori prova a collegare i due LED (mediante R da 220-470 ohm) sui due pin, se ti escono errori verifica se è proprio quello che richiede il condensatore, lo aggiungi e ripeti SOLO il punto 7; se l'errore è un altro è INUTILE provare il condensatore, copialo e postalo qui e cerchiamo di capire.

Purtroppo ho seguito tutti i passi che hai elencato, è vero la guida è un pochino lunga e c'è la tendenza a "saltare" qualcosa, ho solo un piccolo dubbio sul punto 1 : ho scollegato i cavi dalla mega ? Mah?. Lo sketch ISP comunque è stato caricato sulla UNO. Non mi restituisce errori quando eseguo carica con programmatore, mi carica anche il mio lungo sketch (circa 34000 byte). Dice operazione eseguita però rimane acceso il led RX (?), e sembra non far nulla. Per assicurarmi di cosa succede, ho caricato lo sketch del blink , anch'io ho pensato che il pin 13 poteva avere qualche particolarità e ho fatto uno sketch blink sul pin 7 .... ,niente non ho idea di cosa sia successo, il tasto reset non funziona più ....
Non sono in grado caricare il bootloader perchè da un errore tipo che il primo byte è 00xd anzichè 00xf o una cosa del genere. Non pensavo di riuscire a fumarmi la scheda via software, ma sicuramente l'ho rotta prima,
una cosa di cui sono sicuro è che per errore ho attaccato per un attimo (ma basta) il +12 al +5 della scheda.

mikepin00:
Non pensavo di riuscire a fumarmi la scheda via software

Infatti non è possibile almeno che, come successo, non imposti il watchdog a 15ms col vecchio bootloader.

mikepin00:
ho attaccato per un attimo (ma basta) il +12 al +5 della scheda.

Questo è più probabile.
Puff! =(

Puoi sempre incorniciarla. :wink:

Anche secondo me è andato tutto allora, con 12V hai rotto sia il micro che il convertitore e tutto si spiega; l'errore primo byte è 00xd anzichè 00xf lo stiamo riscontrando sulle mega in tutti quei casi poi non arriviamo a soluzione, mi sa che dobbiamo ricordarcelo.
PS: riguardo il collegamento UNO-MEGA è ininfluente che ci sia o meno quando carichi l'ISP sulla UNO, consiglio di tenerlo scollegao solo per una questione di "ordine", quindi non ci far caso. Il RESET bloccato potrebbe impedire allo sketch di girare, e tale blocco, assieme al LED RX acceso sono da addebitare al convertitore guasto. Riesci a misurare con un tester, con la MEGA alimentata, se sul pin del RESET dell'ATmega2560 il livello di tensioe è prossimo a 0V o a 4-5V?

Stasera controllo e ti dico che tensione risulta sul tasto reset, la barzelletta di questa storia e che se non facevo niente e mi tenevo la scheda con una versione (non perfetta ma funzionante) dello sketch e ASSICURO, tutti i 14 pin pwm + 3 pin interrupt + qualche pin digitale funzionavano, non buttavo via i soldi della scheda ! Certo il mio progetto WRGB lamp led 10wx5 sarebbe stato castrato nel senso che non avrei potuto più sviluppare il mio programmone. :frowning: :frowning: :frowning:

non disperiamo, se trovi una tensione bassa vuol dire che il micro è bloccato, lo scolleghiamo fisicamente dal pin del converitore e vediamo se torna alta, in questo caso lo sketch potrebbe mettersi a funzionare, proviamo.... proviamo....