[Risolto] Arduino mi stà lasciando

Lo store ha alcune migliaia di componenti, e piu di 300 tipi di integrati diversi, piu che scatoloni caduti dal camion, probabilmente e' un distributore che cerca di smaltire delle scorte extra :stuck_out_tongue:

Anche se non cosi economici, comunque il 328p lo si trova sul dollaro, dollaro e qualcosa, in stock da 5 o 10 pezzi, anche da altri distributori ... quindi nulla di troppo trascendentale ... questo sta semplicemente facendo un'offerta migliore, magari solo perche' ha un'invenduto maggiore, chissa' ...

Ad esempio io ho trovato gli FX614 che mi servivano a 7 dollari l'uno, mentre su ebay partivano tutti da 28 :stuck_out_tongue: ...

interessante, devo ammettere che parto prevenuto sul quel sito perchè "a pelle" non mi è mai piaciuto..

BTW stavo pensando che potrebbe dissaldare il chip, e usare un convertotre esterno, rimpiazzarlo è mooooolto ardua

Etemenanki:
Lo store ha alcune migliaia di componenti, e piu di 300 tipi di integrati diversi, piu che scatoloni caduti dal camion, probabilmente e' un distributore che cerca di smaltire delle scorte extra :stuck_out_tongue:

Anche se non cosi economici, comunque il 328p lo si trova sul dollaro, dollaro e qualcosa, in stock da 5 o 10 pezzi, anche da altri distributori ... quindi nulla di troppo trascendentale ... questo sta semplicemente facendo un'offerta migliore, magari solo perche' ha un'invenduto maggiore, chissa' ...

Ad esempio io ho trovato gli FX614 che mi servivano a 7 dollari l'uno, mentre su ebay partivano tutti da 28 :stuck_out_tongue: ...

Interessante, ci darò un'occhiata!

Però come faccio a riprogrammare la 16U2?

Up XD

Gono:
Però come faccio a riprogrammare la 16U2?

Tramite il connettore ICSP.
--> http://arduino.cc/en/Hacking/DFUProgramming8U2
oppure tramite il classico Arduino as ISP e il firmware che trovi nell'IDE.

PaoloP:

Gono:
Però come faccio a riprogrammare la 16U2?

Tramite il connettore ICSP.
--> http://arduino.cc/en/Hacking/DFUProgramming8U2
oppure tramite il classico Arduino as ISP e il firmware che trovi nell'IDE.

Il DFU lo avevo provato ma non funziona :frowning:
Quello che volevo fare era appunto usare l'ISP però nell'IDE non c'è il 16U2 e non riesco a capire come procurarmelo!

leo72:
Hai 2 strade. O ti crei una voce a mano nel file boards.txt con il percorso del bootloader oppure agisci direttamente da terminale con avrdude passando tu i parametri.

Se non riesci a crearti una voce da solo, carica lo sketch ArduinoISP su un altro Arduino, poi collega un connettore ISCP a 6 pin dal connettore ISCP posto vicino al chip 8U2 (se la tua Arduino non ce l'ha, devi saldarcelo tu) al connettore ISCP dell'altro Arduino, avendo cura di collegare il pin 10 di quest'ultimo al pin RESET del primo (vedi guida di Michele per capire come fare).
A questo punto, procurati il file .hex del firmware del chip: lo trovi nella cartella di Arduino /hardware/arduino/firmwares/atmegaxxu2, insieme alle istruzioni per caricarlo da terminale usando avrdude nel file README.txt che c'è sempre in quella cartella.

Grazie mille Leo!
Allora ho fatto come mi hai detto ma mi da tantissimi timeout!

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

Sembra che non riesca a spedire il file. Sei sicuro dei collegamenti? Hai collegato il pin di reset del chip 8U2 al pin 10 dell'Arduino su cui hai caricato lo sketch ArduinoISP?
Stai usando 2 schede diverse?

Anzi, se descrivessi come hai fatto i collegamenti e come stai operando sarebbe meglio, aiuterebbe a capire.

Allora collego ICSP dell'atmega 328 (programmatore) ai piedini della 16U2 dell'arduino da programmare.
Vcc - Vcc
Gnd - Gnd
Mosi - Mosi
Miso - Miso
Sck - Sck
Reset (del 16U2) al pin 10 dell'arduino programmatore.

Codice:

sudo avrdude -p at90usb82 -F -P /dev/ttyACM0 -c avrimkii -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

File:

UNO-dfu_and_usbserial_combined.hex

Ho precedentemente inserito lo sketch Arduino ad ISP.

comunqu quella dell'offerta un po piu sopra presa dal sito aliexpress è intesa come 4,80€ al lotto, cioè tutti quei componenti 1 atmega + quarzo .. etc
non ti danno mica 8 atmega! ()se notate i componenti in tutto sono 8
http://www.aliexpress.com/item/Free-shipping-ATMEGA328P-PU-without-Ar-duino-BOOTLOADER-DIP-Socket-16MHz-crystal-Kit/1268861160.html

@Gono:
il programmatore è errato:
-c avrimkii

Devi usare
-c stk500v1
oppure
-c arduino
A seconda se usi avrdude della tua distro oppure quello allegato con l'Arduino.

Così fà qualcosa ma mi pare dia errore e rimane tutto come prima.

Codice:

sudo avrdude -p at90usb82 -F -P /dev/ttyACM0 -c stk500v1 -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

Output:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for AT90USB82 is 1E 93 82
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "UNO-dfu_and_usbserial_combined.hex"
avrdude: input file UNO-dfu_and_usbserial_combined.hex auto detected as Intel Hex
avrdude: writing flash (7440 bytes):

Writing | ################################################## | 100% 1.21s

avrdude: 7440 bytes of flash written
avrdude: verifying flash memory against UNO-dfu_and_usbserial_combined.hex:
avrdude: load data flash data from input file UNO-dfu_and_usbserial_combined.hex:
avrdude: input file UNO-dfu_and_usbserial_combined.hex auto detected as Intel Hex
avrdude: input file UNO-dfu_and_usbserial_combined.hex contains 7440 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.96s

avrdude: verifying ...
avrdude: 7440 bytes of flash verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.08s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xff != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: lfuse changed! Was ff, and is now 0
Would you like this fuse to be changed back? [y/n] y
avrdude: stk500_recv(): programmer is not responding

Posso dichiararlo ufficialmente morto?

Il parametro "-F" forza la scrittura senza tener conto degli eventuali problemi derivanti da una firma errata.
Sembra che scriva, ma se ci sono problemi non lo fa. Provando senza che succede?

Provando senza dice:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

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


avrdude done.  Thank you.

Ti è partita la signature del chip oppure avrdude non è capace di leggerla.
Nel primo caso però con "-F" avresti dovuto bypassare l'errore e scrivere l'hex sul chip, per cui penso al secondo problema. Se non è capace di leggerla, o i collegamenti sono errati oppure il chip target non risponde.
Prendendo per buono che i collegamenti siano stati fatti a modino, resta il chip target...

=(
Lo userò come standalone!
Grazie mille a tutti e soprattutto a Leo (che è dappertutto :P) per l'aiuto che mi avete dato.