[Risolto] Arduino Leonardo - periferica non riconosciuta

Salve a tutti ,

ieri sera mentre caricavo un programma nella mia arduino leonardo è successo che da li in poi mi continua a dire periferica sconosciuta...

faccio l'informatico da 20 anni quindi posso con ragionevolezza escludere qualsiasi problema software
per la precisione stavo tentando di interfacciare la leonardo con questa cineseria qua...

avevo seguito questa guida

per interfacciare arduino a 5V con questo modulo che è a 3.3V

leggendo su internet mi sembra di aver capito che quando si carica un programma via spi che usa la SPI nel programma stesso, si possono avere problemi di caricamento... ma il problema è che adesso appena attacco la leonardo per circa 3 secondi compare la com12 chiamata arduino boot loader(come a sempre fatto) poi la com12 scompare e mi diventava,prima, arduino leonardo su com11 adesso mi da periferica sconosciuta...

ho già provato a cambiare cavo e computer con lo stesso risultato...

non so cosa sia fisicamente successo la scheda non sembra rotta fa tutto quello che dovrebbe fare all'accensione...

è possibile ripristinare in qualche modo le impostazioni di fabrica o esiste una procedura di sblocco? ho anche una UNO che potrei usare ma non so bene come

Grazie
Luca

edit by mod: per favore evitare il MAIUSCOLO nei titoli

E' successo anche a me lo stesso identico problema con l'Arduino Micro e Il Fio V3, che hanno l'atmega32u4.

Nel mio caso è un problema di incompatibilità di codice con l'atmega32u4. Per caso nel programma viene usata la funzione attachInterrupt()?
Io ho risolto solo ricaricando il bootloader. Se hai la UNO è molto semplice se segui questa guida ---> http://arduino.cc/en/Tutorial/ArduinoISP
In questa pagina dice di utilizzare un condensatore tra reset e GND, ma dovrebbe funzionare bene anche senza.

ho seguito questo http://forum.arduino.cc/index.php/topic,22187.0.html

in teoria ma non so se sbaglio pensavo che di fatto i due moduli che ho comprato è come se collegassero fisicamente i due arduino...

secondo te mi sbaglio?

stasera provo a seguire la guida!

grazie per adesso

tecnopozzi:
in teoria ma non so se sbaglio pensavo che di fatto i due moduli che ho comprato è come se collegassero fisicamente i due arduino...

secondo te mi sbaglio?

Questo non te lo so dire con certezza.
Comunque (non so se lo sai) ma la Leonardo ha i pin disposti in modo un po' diverso rispetto allla Uno (soprattutto SCK, MISO, MOSI e SS). Dovresti dare un'occhiata agli schemi delle due schede. Per quanto riguarda il pin D2 se è usato come interrupt sappi che tra la Uno e la Leonardo i pin di Interrupt sono diversi, come puoi vedere più in dettaglio qui http://arduino.cc/en/Reference/AttachInterrupt

Ricorda che per la Leonardo va inserito nel Setup (la velocità la puoi modificare a piacere)

Serial.begin(9600);
// while the serial stream is not open, do nothing:
while (!Serial) ;

Per la programmazione ISP puoi seguire questa guida (in italiano) --> http://michelemenniti.it/arduino_burn_bootloader.php

Prima di riprogrammare il bootloader, prova semplicemente a cambiare sketch inserendo il codice qui sopra.

Dunque... ho svolto tutto il tutorial sul riprogrammare con un'altro arduino...

faccio tutto all'ultimo passaggio quando clicco su scrivi il boot loader mi da questo errore...

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

e ovviamente tutto come prima.

Quel messaggio, in genere, esce quando hai selezionato la scheda sbagliata sulla quale caricare il bootloader.

Dopo che hai caricato lo sketch ISP su Arduino uno devi cambiare scheda, selezionando la Leonardo, mantenendo invariato l'indirizzo della COM e poi, dopo aver selezionato Arduino as ISP clicchi su "scrivi il bootloader".

Fai attenzione a collegare prima i pin dalla Uno alla Leonardo e poi attacchi l'usb della Uno.

Come ultimo accorgimento (probabilmente lo sai) i pin 13, 12 e 11 (SCK, MISO e MOSI)della Uno non sono uguali ai rispettivi pin della Leonardo. Se non l'hai ancora fatto, guarda gli schemi delle due schede e mettili a confronto.

Si Vect,
il pinout è il medesimo perchè il layout della Leo è derivato dalla UNO R3.

PaoloP:
Si Vect,
il pinout è il medesimo perchè il layout della Leo è derivato dalla UNO R3.

Premesso che non ho mai utilizzato la Leonardo (ma solo due schede con lo stesso microcontrollore), dagli schemi:

Arduino Uno http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf
Arduino Leonardo http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf

sembra che sulla Leonardo, i pin SCK, MISO, MOSI e SS siano collegati solo all'ICSP e non anche ai pin 13, 12, 11 e 10 come nella Uno

Se stasera torno a casa integro (maledetto aperitivo! :grin:) prendo la scheda, una lente di ingrandimento e verifico.
Però mi sa che hai ragione. :wink:

XD XD XD ok attendo conferma

sembra che sulla Leonardo, i pin SCK, MISO, MOSI e SS siano collegati solo all'ICSP e non anche ai pin 13, 12, 11 e 10 come nella Uno

e' corretto. Ricordatevi che la scheda ethernet i segnali SPI li prende appunto da quel connettore

Quindi sta tutto nel collegare correttamente i cavetti (senza lasciarsi ingannare dai numeri) e selezionare la scheda corretta dall'IDE

Benissimo stasera provo...

in effetti io ho usato i pin 13 ,12, 11 della scheda leonardo e non dalla icsp...

quindi anche per il progetto che stavo realizzando avrei avuto senz'altro problemi...

vi faccio sapere
grazie per adesso

Comunque se dopo che hai ricaricato il bootloader ricaricherai il programma e si ripresenterà il problema di riconoscimento della scheda, di sicuro è il codice che va modificato specificatamente per l'atmega32u4

I pin 13/12/11 della Leonardo non portano i segnali ISP, questo è certo. Anche l'ArduinoISP non funziona se usi quei pin

Ringrazio tutti.

di fatto ho eseguito tutto con i pin giusti è tutto è tornato a posto.