[?] Programmatore per arduino

Sapreste dirmi se questo http://cgi.ebay.it/ROBOT-Pololu-USB-AVR-Programmer-programmatore-ATMEL-/350421486662 programmatore è compatibile con arduino UNO e MEGA 2560 ?

Grazie, Alberto

Leggo che viene visto come un AVRISP, in teoria quindi dovrebbe essere compatibile e riconosciuto anche dall'IDE di Arduino.

Ne ho ricevuto ieri uno, ma non riesco ad usarlo, ho aperto un topic nel forum internazionale: http://arduino.cc/forum/index.php/topic,55501.0.html

Nessuno di vuoi lo usa?

Devo provare a scrivere il bootloader con avrdude, con il programma di Arduino ho difficoltà!

Sapreste dirmi dove trovare l'hex del bootloader per un ATmega328P (Arduino UNO)? Grazie mille!!

E' nella cartella di Arduino, ovvero arduino/hardware/bootloaders/optiboot
C'è già precompilato oppure c'è il sorgente per ricompilarlo.

ok, grazie mille!!!

Uhm, qui sostengono che l'Arduino UNO può funzionare come ISP

Prima di tutto il fatto che la UNO non può usare lo sketch per trasformare Arduino in un ISP non dipende dalla mancanza del l'FTDI, è solo l'interfaccia tra L'ATmega e l'USB, ma dal bootloader che nella attuale versione non è compatibile con lo sketch in oggetto.
Se poi uno modifica l'optiboot, lo ricompila e lo carica sulla propria UNO ovviamente diventa possibile usare anche la UNO come ISP, allo stato attuale non mi pare esista una release ufficiale dell'optiboot compatibile con questo sketch.
Un piccolo consiglio, evitate di installare su Arduino bootloader non ufficiali, se poi saltano fuori problemi strani, e ci sono sempre, può diventare impossibile risolverli, sopratutto se non è disponibile l'informazione che viene utilizzato un bootloader non ufficiale.

In ogni caso, ho provato il programmatore Pololu su un altro pc e funziona correttamente, ho installato il bootloader e poi ho caricato gli sketch normalmente!

astrobeed:
Prima di tutto il fatto che la UNO non può usare lo sketch per trasformare Arduino in un ISP non dipende dalla mancanza del l'FTDI, è solo l'interfaccia tra L'ATmega e l'USB, ma dal bootloader che nella attuale versione non è compatibile con lo sketch in oggetto.
Se poi uno modifica l'optiboot, lo ricompila e lo carica sulla propria UNO ovviamente diventa possibile usare anche la UNO come ISP, allo stato attuale non mi pare esista una release ufficiale dell'optiboot compatibile con questo sketch.
Un piccolo consiglio, evitate di installare su Arduino bootloader non ufficiali, se poi saltano fuori problemi strani, e ci sono sempre, può diventare impossibile risolverli, sopratutto se non è disponibile l'informazione che viene utilizzato un bootloader non ufficiale.

Dicono che sia possibile usare l'arduino uno come programmatore isp normalmente, senza ricompilare niente, semplicemente aggiungendo una capacità di 10uF tra la massa ed il reset per disabilitare l'autoreset...

Secondo te fa più testo uno qualunque che scrive sul forum o chi ha sviluppato l'applicazione ?
Si da il caso che lo sviluppatore dello sketch per trasformare Arduino in un programmatore ISP dice chiaramente che non si può usare con il bootloader della UNO.
Parla pure dell'autoreset dicendo che può essere necessario disabilitarlo e si riferisce alla 2009 o alla 10000, c'è stata un'altra discussione in merito a questa cosa.

Per riferimento diretto:

Questo è quanto c'è scritto a proposito della UNO:
"NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch. A revision for this is in progress."

Tradotto in Italiano:
"Attualmente non si può usare Arduino UNO come programmatore ISP perché il bootloader optiboot (ndt:è quello usato dalla UNO) non supporta questo sketch, è in corso una revisione per questo problema"

Adesso dimmi tu a chi dare retta ?

Si, ma più di un utente ha provato la cosa e funziona.

Almeno 4/5 utenti asseriscono che effettivamente funziona. E sono utenti affidabili, che postano spesso, e risolvono parecchi problemi.

L'ho letta anche io quella cosa, è inutile che mi copi tutto in tono minaccioso :slight_smile:

L'unica cosa che ho capito è che bisogna usare il bootloader della versione 0022. Ripeto, sempre che abbia capito bene, ultimamente ho preso lucciole per lanterne :smiley:

La prova la posso fare io se volete, così tagliamo la testa al toro.

Io non ho capito se bisogna avere caricato il bootloader della 0022 sull'atmega dell'arduino uno, oppure se devo caricare il bootloader della 0022 sull'arduino sulla breadboard...

Comunque gianfranco se fai questa prova non sarebbe male... Io per esami non posso fino a giovedì :stuck_out_tongue:

Domani se riesco faccio qualche prova, anche se pare strano che questa opportunità spunti solo adesso, forse sono novità della versione 0022... boh!

O magari la motivazione per cui con l'optiboot non funziona è che gestisce in modo diverso l'autoreset, e la capacità messa in quel modo risolve il problema...

Facci sapere!

Interessa anche a me la possibilità di usare l'Arduino uno come programmatore ISP :wink: Attendiamo conferme e responsi :stuck_out_tongue:

Però la cosa non mi è molto chiara, nel senso che non ho capito se bisogna usare, nell'Arduino che fa da ISP, bootloader non ufficiali, oppure quello della versione 0022.

In ogni caso, farò la prova con un arduino uno che ho già da qualche mese, ed un'altra con ATmega contenente il bootloader della versione 0022. Da quello che ho capito in questa versione è presente un nuovo bootloader che dovrebbe risolvere anche il problema degli sketch over 30Kb.

Mah, io penso e spero che non bisogni usare quello 0022, perchè comunque molti non lo citano questo fatto e ci sono riusciti lo stesso...

Ho fatto un diff tra i 2 file optiboot.c della versione 0021 e 0022. Risultato? Identici.

La differenza la fa lo sketch ArduinoISP. Dal link che c'è in quel thread che avete segnalato si arriva ad una patch da applicare allo sketch:

--- examples/ArduinoISP/ArduinoISP.pde 2010-12-24 23:12:25.000000000 +0100
+++ /home/bilibao/sketchbook/fixed/fixed.pde 2011-01-12 01:10:41.373212997 +0100
@@ -54,7 +54,7 @@
pinMode(9, OUTPUT);
pulse(9, 2);
}

+int initSent=0;
int error=0;
int pmode=0;
// address for reading and writing, set by 'U' command
@@ -399,7 +399,8 @@
uint8_t ch = getch();
switch (ch) {
case '0': // signon

  • empty_reply();
  • if(! initSent) empty_reply();
  • initSent = 1;
    break;
    case '1':
    if (getch() == CRC_EOP) {

Pare che con questa patch il codice funzioni anche sull'Arduino Uno con l'Optiboot. Personalmente non ho avuto modo di provare, forse anch'io domani riuscirò a fare qualche test.