Arduino Mega Errore

Salve da tempo utilizzo un arduino mega per eseguire vari test l'altro giorno improvvisamente ha smesso di funzionare ovvero lo collego al pc ( con So win 8 ) lampeggia per due volte il led sul piedino 13 e poi come morto ( l'ultimo sketch caricato non sembra partire ) l'arduino è correttamente alimentato ma non lo riconosce, ho provato ad inserirlo in un'altro pc ( con So ubuntu ) ma nulla stesso problema, infine per verificare che non esistevano problemi nei drive ho collegato un arduino nano ad entrambi i pc e quest'ultimo funziona correttamente.. cosa protrebbe essere successo??

ps: L'arduino è isolato tutti i piedini sono scollegati e non ho fatto punti corto circuiti visto che l'ultima volta funzionava correttamente.

con non lo riconosce intendi che non vedi nessuna porta seriale nel menu ports dell'IDE o nessuna COM port associata ad Arduino in device manager di windows?

Se si, prova a controllare lo stesso in Device Manager, controlla se c'è un dispositivo che si chiama "unkown device" o "Atmel ...." e scrivicelo qui

Se ho capito bene ecco l'immagine della finestra gestione dispositivi. ( mi da dispositivo sconosciuto )

e queste sono le porte com visualizzate sul compilatore.

la com1 non è collegata ad un arduino è una seriale installata all'interno del pc

Il supporto di microsoft propone essenzialmente di disinstallare il device e reinstallarlo quando appare l'errore "43": http://technet.microsoft.com/en-us/library/cc725873%28v=ws.10%29.aspx

Siccome la motivazione è vaga (può essere il dispositivo che fallisce o il driver) e visto che neanche su linux la scheda viene riconosciuta sono scettico sul fatto che reinstallando i drivers tutto si sistemi.

Per analizzare più a fondo dovresti fare un trace di quello che succede sulla USB, su windows: http://msdn.microsoft.com/en-us/library/windows/hardware/jj151573%28v=vs.85%29.aspx

mentre se hai ancora accesso a linux forse è più semplice: prova a copiare&incollare l'output di "dmesg" (non tutto, solo l'ultima 50ina di righe) e "lsusb" (comandi da scrivere sul terminale).

allora ho provato sotto linux

questo è quello che mi stampa il terminale se digito il comando dmesg…

[   19.614975] acpi device:14: registered as cooling_device2
[   19.616810] ACPI: Video Device [OVGA] (multi-head: yes  rom: no  post: no)
[   19.619411] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input5
[   19.624521] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[   19.624790] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[   19.654145] ppdev: user-space parallel port driver
[   19.749460] input: HDA Intel Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[   19.749703] input: HDA Intel Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[   19.756687] init: avahi-cups-reload main process (669) terminated with status 1
[   19.829652] psmouse serio1: synaptics: Touchpad model: 1, fw: 7.4, id: 0x1e0b1, caps: 0xd04773/0xa40000/0xa0400, board id: 3655, fw id: 654070
[   19.882731] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input8
[   19.903553] type=1400 audit(1380386432.098:5): apparmor="STATUS" operation="profile_load" name="/usr/lib/cups/backend/cups-pdf" pid=709 comm="apparmor_parser"
[   19.905412] type=1400 audit(1380386432.102:6): apparmor="STATUS" operation="profile_load" name="/usr/sbin/cupsd" pid=709 comm="apparmor_parser"
[   20.376477] cfg80211: World regulatory domain updated:
[   20.376488] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   20.376497] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   20.376504] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   20.376511] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   20.376518] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   20.376525] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   20.377539] input: HP WMI hotkeys as /devices/virtual/input/input9
[   20.388479] microcode: CPU1 sig=0x106ca, pf=0x4, revision=0x107
[   20.399148] init: failsafe main process (735) killed by TERM signal
[   20.801332] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   21.054865] type=1400 audit(1380386433.250:7): apparmor="STATUS" operation="profile_load" name="/usr/lib/lightdm/lightdm/lightdm-guest-session-wrapper" pid=856 comm="apparmor_parser"
[   21.056064] type=1400 audit(1380386433.254:8): apparmor="STATUS" operation="profile_load" name="/usr/lib/lightdm/lightdm/lightdm-guest-session-wrapper//chromium_browser" pid=856 comm="apparmor_parser"
[   21.063986] type=1400 audit(1380386433.258:9): apparmor="STATUS" operation="profile_load" name="/usr/lib/i386-linux-gnu/lightdm-remote-session-freerdp/freerdp-session-wrapper" pid=857 comm="apparmor_parser"
[   21.083011] type=1400 audit(1380386433.278:10): apparmor="STATUS" operation="profile_load" name="/usr/lib/i386-linux-gnu/lightdm-remote-session-uccsconfigure/uccsconfigure-session-wrapper" pid=858 comm="apparmor_parser"
[   21.085305] type=1400 audit(1380386433.282:11): apparmor="STATUS" operation="profile_load" name="/usr/lib/i386-linux-gnu/lightdm-remote-session-freerdp/freerdp-session-wrapper//chromium_browser" pid=857 comm="apparmor_parser"
[   22.347074] r8169 0000:03:00.0 eth0: link down
[   22.347374] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   22.358209] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   23.470707] init: anacron main process (1005) killed by TERM signal
[   56.684110] usb 2-2: new full-speed USB device number 2 using uhci_hcd
[   57.012120] usb 2-2: device descriptor read/64, error -71
[   57.236108] usb 2-2: device descriptor read/64, error -71
[   57.452127] usb 2-2: new full-speed USB device number 3 using uhci_hcd
[   57.576125] usb 2-2: device descriptor read/64, error -71
[   57.800111] usb 2-2: device descriptor read/64, error -71
[   58.016092] usb 2-2: new full-speed USB device number 4 using uhci_hcd
[   58.424076] usb 2-2: device not accepting address 4, error -71
[   58.536979] usb 2-2: new full-speed USB device number 5 using uhci_hcd
[   58.948077] usb 2-2: device not accepting address 5, error -71
[   58.948120] hub 2-0:1.0: unable to enumerate USB device on port 2

questo invece è quello che stampa se digito lsusb

Bus 001 Device 002: ID 05c8:021a Cheng Uei Precision Industry Co., Ltd (Foxlink) HP Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

grazie per le risposte e scusami ma non sono molto pratico…

come vedi "lsusb" non mostra nessun device corrispondente ad una Arduino.

questa parte di dmesg:

[ 56.684110] usb 2-2: new full-speed USB device number 2 using uhci_hcd [ 57.012120] usb 2-2: device descriptor read/64, error -71 [ 57.236108] usb 2-2: device descriptor read/64, error -71 [ 57.452127] usb 2-2: new full-speed USB device number 3 using uhci_hcd [ 57.576125] usb 2-2: device descriptor read/64, error -71 [ 57.800111] usb 2-2: device descriptor read/64, error -71 [ 58.016092] usb 2-2: new full-speed USB device number 4 using uhci_hcd [ 58.424076] usb 2-2: device not accepting address 4, error -71 [ 58.536979] usb 2-2: new full-speed USB device number 5 using uhci_hcd [ 58.948077] usb 2-2: device not accepting address 5, error -71 [ 58.948120] hub 2-0:1.0: unable to enumerate USB device on port 2

è quella che interessa l'USB dell'Arduino che hai collegato, all'ultima riga dice che il problema è che il pc non riesce ad enumerare la porta USB. Nelle righe sopra c'è descritto cosa ha cercato di fare e cosa è successo, anche se non è del tutto esaustivo.

All'error code 71 (EPROTO) corrisponde la descrizione:

-EPROTO (, *) a) bitstuff error b) no response packet received within the prescribed bus turn-around time c) unknown USB error

Quindi ipotizzerei che l'arduino non ha inviato il response packet con VID&PID e informazioni e quindi non è stata riconosciuta. Non ho idea di come si possa entrare in questa condizione nè conosco una via appropriata per uscirne.

Io proverei a ricaricare il firmware sul 16U2 (convertitore USB-seriale) mettendolo in modalità DFU: http://arduino.cc/en/Hacking/DFUProgramming8U2

Leggendo sul forum ho letto che alcune volte si resetta il chip ( non sono molto sicuro non ho capito molto ) che controlla la usb e spiega come fare a reinstallare il firmware ( http://forum.arduino.cc/index.php/topic,112186.msg846317.html#msg846317 ) , ora prima di fare danni ho due domande:

è la manovra giusta da fare?
e se si come si fa perchè non ho capito molto??

Nel mio messaggio sopra, l'ultimo link ti porta alla guida per fare il restore del firmware (per comodita: http://arduino.cc/en/Hacking/DFUProgramming8U2 )

Il firmware lo trovi dentro l'IDE supporniamo che hai l'ultimo IDE il percorso alla cartella che lo contiene è questo:

/arduino-1.5.4/hardware/arduino/avr/firmwares/atmegaxxu2

Il firmware che devi scegliere invece è questo:

Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex

Ho installato flip su windows e mi da che non trova una libreria, leggendo su internet ho notato che bisogna installare i drive allora ho provato andato sulla cartella C:\Program\Atmel\Flip 3.4.7\usb tasto destro installa, ma nulla continua a darmi l'errore e l'arduino non appare piu nemmeno come periferica sconosciuta.

L'unica soluzione è buttar via Mega XD No a parte gli scherzi non potrebbe essere la morte per sovrascrittura?? Per intenderci è quel bug che dopo (non mi ricordo bene) circa 1000 volte che carichi nuovi sketch arduino diventa inutilizzabile??

jacopo99: ... Per intenderci è quel bug che dopo (non mi ricordo bene) circa 1000 volte che carichi nuovi sketch arduino diventa inutilizzabile??

Dove l'avresti letta questa ??? :astonished: :astonished: :astonished:

La Flash è garantita per almeno 10'000 scritture !!! ]:D

Guglielmo

gpb01:

jacopo99: ... Per intenderci è quel bug che dopo (non mi ricordo bene) circa 1000 volte che carichi nuovi sketch arduino diventa inutilizzabile??

Dove l'avresti letta questa ??? :astonished: :astonished: :astonished:

La Flash è garantita per almeno 10'000 scritture !!! ]:D

Guglielmo

e comunque è un limite fisico della flash, non un bug :~

[quote author=Michele Menniti link=topic=190554.msg1409920#msg1409920 date=1380468009]

gpb01:

jacopo99: ... Per intenderci è quel bug che dopo (non mi ricordo bene) circa 1000 volte che carichi nuovi sketch arduino diventa inutilizzabile??

Dove l'avresti letta questa ??? :astonished: :astonished: :astonished:

La Flash è garantita per almeno 10'000 scritture !!! ]:D

Guglielmo

e comunque è un limite fisico della flash, non un bug :~ [/quote] LOL mi sembra infatti un pò pochino... mi ero dimenticato uno zero...

...senza contare che il 16U2 se non lo riprogramma l'utente, viene programmato una sola volta in fabbrica.

@maury123: per il momento prova a mettere in reset il 16U2 e vedere se entra in DFU mode. Quando entra in DFU mode dovresti vedere un device Atmelxxxx in Device Manager, i driver sono contenuti dentro Flip, devi cliccare su "Aggiorna Driver" e punta alla cartella di Flip.

Prima di farlo (cioè nella condizione in cui sei adesso) prova a fare un ultimo tentativo scrivendo questo comando sul terminale di linux:

sudo cat /sys/kernel/debug/usb/devices

Copia l'output qui, ma comunque se non vedi menzionata nessuna voce riguardante Arduino la scheda non è stata riconosciuta.

Se non entra neanche in modalità DFU i casi possono essere due: * il 16U2 ha subito un erase completo quindi non c'è caricato neache il firmware DFU, ma lo si potrebbe recuperare con un programmatore ICSP * il 16U2 si è danneggiato in qualche modo e non può essere recuperato.

T:  Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 3.08
S:  Manufacturer=Linux 3.8.0-30-generic uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 3.08
S:  Manufacturer=Linux 3.8.0-30-generic uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.2
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 3.08
S:  Manufacturer=Linux 3.8.0-30-generic uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.1
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 3.08
S:  Manufacturer=Linux 3.8.0-30-generic uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 8
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 3.08
S:  Manufacturer=Linux 3.8.0-30-generic ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1d.7
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05c8 ProdID=021a Rev= 1.05
S:  Manufacturer=GenesysLogic Technology Co., Ltd.
S:  Product=HP Webcam
C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=200mA
A:  FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
E:  Ad=83(I) Atr=03(Int.) MxPS=  23 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
I:  If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=3072 Ivl=125us

questo è l'output che stampa se digito il comando su linux.

girando su internet ho trovato che si può ricaricare il bootloader attraverso un'altro arduino. la guida parla di dover collegare i due arduino assieme e uno programmarlo con lo sketch arduino isp. ho provato e dopo qualche minuto che lavora si blocca dandomi un errore. se lo collego lampeggia il pin 13.

questa è la guida che ho trovato http://www.michelemenniti.it/vhd/Elettronica/Guida%20Programmazione%20ATMEL%20con%20Arduino.pdf

avrdude: verification error, first mismatch at byte 0x1e000 0xff != 0x0d avrdude: verification error; content mismatch

scusate se sparo sfondoni ma ho poca esperienza a riguardo e mi sono trovato ad affrontare un problema troppo grosso per le mie abilità...

per chiarire un dubbio il mega per farlo entrare in dfu basta mandare il reset a massa giusto??

Col metodo ISP cancelleresti il bootloader presente sul 16U2 ma se recuperi il chip sarebbe un danno minore. Che errore ti quando cerchi di flashare il chip seguendo la guida di Michele?

Questo é l'errore che restituisce

avrdude: verification error, first mismatch at byte 0x1e000 0xff != 0x0d avrdude: verification error; content mismatch

E il pin 13 del mega inizia lampeggiare..

Pare che ci sia un problema di scrittura, il dato in memoria non corrisponde a quello che è stato scritto. Come hai fatto i collegamenti fra il chippino 16U2 e l'Arduino programmatore?

Leo, ricorda che questo errore ultimamente l'abbiamo trovato spesso, basta fare una ricerca, e non siamo mai riusciti a scovare il problema, quindi tempo sia inutile perderi altro tempo; basta trovare le altre 2-3 discussioni e lì ci sono tutte le domande poste e le risposte date.

Ciò che dici è vero, però vorrei capire perché sta comparendo con questa frequenza.

Mi viene da pensare male, non so ma ho timore che tutti i problemi nascano quando queste schede vengono collegate a una delle ultime versioni di Windows (mi pare la 8). Che può succedere fra il SO, il driver e la scheda? Può esserci un bug software per cui il PC spedisce un qualche segnale sulla linea che blocca/erasa il chip convertitore?