programmare 1000pads luigino

Io non capisco.... quel metodo che ho postato fa proprio QUESTO.
Carica su un Atmega standalone, usando un Arduino UNO, un qualunque sketch usando proprio l'IDE di Arduino e modificando solo 1 file di text. Di più no so che dirvi.
E', al momento, l'unico metodo che funziona che usa l'IDE, tutti gli altri metodi postati sono basati sull'uso diretto del terminale.
Astrobeed, ma l'hai aperto quel link? Sai cosa c'è scritto?

Re: Posso sovrascrivere il bootloader?
« Reply #18 on: 17 April 2011, 22:00:18 »
Ci sono riuscito!!!!
Ho caricato uno sketch su un Atmega standalone usando un Arduino UNO come programmatore ISP!!!

Scusate se mi intrometto, poiché sto lavorando anch'io a questa cosa, per implementare la guida che ho fatto per il bootloader (v. link nel Playground), provo a riepilogare ribadendo che, per inviare uno sketch alla 1000pads luigino, si può fare con 3 modalità
1 - togliere il chip dalla luigino, montarlo su una Arduino, al posto del chip originale, selezionare nell'IDE la board Arduino 2009 (nel caso in cui si stia lavorando con una UNO, se è un a 2009 non cambia nulla), inviare lo sketch; OVVIAMENTE tali operazioni di sostituzione vanno fatte ogni volta togliendo alimentazione all'Arduino.
2 - collegare tra loro Arduino e Luigino con segnali "in parallelo" mediante cavetti pin maschio-maschio, cioè +5v, GND, Reset, Tx e Rx di Arduino vanno collegati ai corrispondenti pin di luigino; togliere il chip da Arduino; settare l'IDE come board Arduino 2009 (in pratica quella che corrisponde al bootloader caricato nel chip di luigino); inviare lo sketch; se non funziona montare un condensatore elettrolitico o al tantalio da 10µF tra il reset di Arduino e massa e riprovare. Sempre operazioni hardware SENZA alimentazione!
3 - modificare il file board.txt (secondo il suggerimento di leo72) e seguire la procedura ben spiegata nel post che ha linkato; in tal modo l'operazione si può fare SENZA togliere il chip da Arduino e luigino; io sto lavorando ad una procedura un po' più semplificata, ma la modifica del file board.txt è indispensabile.
Spero che così, riepilogando i suggerimenti di ratto, astrobeed e leo, ora sia tutto chiaro.

quasi: dove sarebbe il file board.txt? Immagino nella cartella dell'IDE. O forse in una sotto-sotto-sotto-cartella? E modificarlo come? Visto che questo è il thread su come programma re la Luigino tramite Arduino, sarebbe utile per tutti, anche per chi capiterà sul forum tra un anno, trovare qui la procedura...

Scusa jumpjack ma a me pare che ti stia incaponendo per una questione di lana caprina. Ho messo il link: una volta che uno raggiunge questa discussione, se la può leggere tutta, seguire quel link ed ha il modo. Dov'è il problema?

Cmq, visto che vi fa più piacere riavere le stesse info anche qui, vi copio-e-incollo il metodo descritto in quel link che, mi pare, nessuno voglia seguire perché si chiama in un modo che non piace.


La strada da percorrere era proprio quella di modificare, anzi creare, una nuova voce nel file boards.txt.
Come sai, quel file è usato dall'IDE per caricare non solo le librerie del core adatte ai singoli micro (un Atmega328 è diverso da un Attiny85 ecc...) ma anche per fornire la base su cui preparare i parametri per avrdude, che sarà poi usato per programmare il micro. In effetti, l'IDE funge un po' da frontend perché non è l'IDE che compila e prepara il file .hex ma avr-gcc, e non è l'IDE che spedisce il file generato, ma è avrdude.

Allora cosa ho fatto?
Ho preso il file /arduino-00xx/hardware/arduino/boards.txt ed ho aggiunto il seguente codice:

##############################################################

atmega.name=Atmega (w/ Arduino as ISP)
atmega.upload.protocol=stk500
atmega.upload.maximum_size=32256
atmega.upload.speed=115200
atmega.upload.using=arduino:arduinoisp
atmega.bootloader.low_fuses=0xff
atmega.bootloader.high_fuses=0xde
atmega.bootloader.extended_fuses=0x05
atmega.bootloader.path=optiboot
atmega.bootloader.file=optiboot_atmega328.hex
atmega.bootloader.unlock_bits=0x3F
atmega.bootloader.lock_bits=0x0F
atmega.build.mcu=atmega328p
atmega.build.f_cpu=16000000L
atmega.build.core=arduino

Puoi metterlo in qualsiasi punto di quel file, anche in fondo. Salvi il file e riapri l'IDE. Adesso in Tools/Boards avrai una nuova voce denominata "Atmega (w/ Arduino as ISP)": grazie ad essa puoi ora programmare un Atmega standalone!!!!

Come fare?
Ecco i punti:

  1. prendi una Arduino UNO, avvii l'IDE, scegli come board "Arduino Uno"
  2. ci carichi lo sketch "ArduinoISP"
  3. chiudi l'IDE e stacchi l'Arduino dal PC
  4. prendi una breadboard e prepari un circuito Arduino standalone come quello descritto qui nella foto in fondo alla pagina a DESTRA (usando quindi un quarzo esterno, 2 condensatori da 22 pF, ecc)
  5. colleghi i cavi per programmare l'Atmega sempre come indicato in quella figura, ossia i pin 13/12/11 di Arduino ai pin 19/18/17 ed il pin 10 di Arduino al pin 1 dell'Atmega. Collega poi un pin GND alla linea GND della breadboard, ma NON collegare i +5V
  6. collega l'Arduino al PC col cavetto USB
  7. apri l'IDE
  8. adesso metti il condensatore fra i pin RESET ed un pin GND di Arduino
  9. adesso collega il pin +5V alla linea +5V della breadboard
  10. carica nell'IDE uno sketch, va bene anche "Blink"
  11. scegli la scheda "Atmega (w/ Arduino as ISP)"
  12. fai l'upload!

Dopo pochi secondi vedrai che l'IDE ti dirà che è andato tutto a buon fine e che il LED sull'Arduino lampeggerà!
Non ti preoccupare, non è stato programmato l'Atmega dell'Arduino ma l'Atmega standalone!!! Il LED lampeggia perché il pin 13 è collegato ancora al pin 19 dell'Atmega standalone. Per riprova, scollega tutto, smonta il micro dell'Arduino e scambialo col micro standalone. Ridai tensione e vedrai che il LED integrato sull'Arduino continua a lampeggiare :slight_smile:

Stanotte ho messo online anche lo stesso articolo con lo schemino del circuito da seguire:

Forse ce l'hai fatta....

menniti:
Forse ce l'hai fatta....

Peccato che questo forum non abbia l'emoticon della faccina che sbatte la testa contro un muro... sarebbe stata appropriata... :roll_eyes:

Accontentati di questa :sweat_smile:
Ah geniooo, vedi che nell'ormai tristemente famoso topic ho risposto a GPa, lo sketch col tuo metodo si carica nel chip vergine e funziona, per la felicità del mondo intero! XD XD XD ma tanto non lo leggerà mai nessuno quel topic... :grin:
Sto organizzando un pellegrinaggio sotto casa tua.... 8)

Genio è quello che ha creato il modo per usare l'Attiny85, grazie al quale ho potuto sviluppare questo.
La strada percorsa, secondo me, può permettere di poter adattare l'IDE a qualsiasi micro supportato da avrdude e dal core dell'IDE stessa.

quindi sostanzialmente quando mi arriverà il mio luigino mini se lo monto e collego 5v e GND (UNO) sull'alimentazione del mio luigino e poi i pin digitali 11-12-13 (UNO) sui pin digitali del mio mini luigino e poi metto in corto il reset di UNO dovrebbe programmarsi tramite l'isp?

Esatto. In questo modo non smonti né il micro dell'Arduino né quello della Luigino e fai tutto da IDE.

leo72:
Esatto. In questo modo non smonti né il micro dell'Arduino né quello della Luigino e fai tutto da IDE.

Ehm, ha scritto "reset in corto".... forse dovrebbe specificare, se gli dici esatto lo autorizzi a collegarlo dovunque, magari a massa :grin:

menniti:

leo72:
Esatto. In questo modo non smonti né il micro dell'Arduino né quello della Luigino e fai tutto da IDE.

Ehm, ha scritto "reset in corto".... forse dovrebbe specificare, se gli dici esatto lo autorizzi a collegarlo dovunque, magari a massa :grin:

ed infatti così avevo pensato, ho detto una eresia? ma montare io intendo non su breadboard ma assmblarlo il luigino direttamente sulla sua "basetta"

menniti:
Ehm, ha scritto "reset in corto".... forse dovrebbe specificare, se gli dici esatto lo autorizzi a collegarlo dovunque, magari a massa :grin:

Argh... non avevo letto bene. :*

@exurgit:
sì, NON devi mettere in corto il reset dell'Arduino ma collegare un condensatore fra i pin reset e gnd. Questo perché nell'Arduino il segnale sul pin reset è tenuto su tramite resistenza di pull-up e mandato a Low durante un reset: il condensatore serve proprio ad evitare che il micro dell'Arduino vada in reset ma resti on e programmi il micro della Luigino.

E non dimenticare di collegare il reset di luigino al pin 10 di Arduino :grin:
Scusa, scherzi a parte, ti consiglio vivamente di stamparti o tenerti a video le istruzioni di leo, e seguirle passo passo, una qualsiasi disattenzione e non ti funziona nulla, perché la procedura è tarata alla perfezione, non ci sono passaggi superflui. Anche per la modifica del file board.txt, non disdegnare di fare un copia/incolla (come ho fatto io :~), così hai la certezza di non commettere errori, e vedrai che tutto andrà a meraviglia.
Ciao.

capito ora!!!! quando arriverà questo benedetto di luigino ci provo e vedo cosa tiro furoi, ma il condensatore che va messo tra gnd e reset che dimensione deve essere (qualsiasi)?

Assassino :grin:
No, deve essere di tipo elettrolitico o al tantalio, da 10 µF (microfarad), il polo positivo sul pin reset, il polo negativo su GND.
Ho fatto tutte le foto, stasera inizio il lavoro, nell'uovo di Pasqua troverai la guida con una trentina tra foto e immagini varie.
Ciao.

menniti:
Assassino :grin:
No, deve essere di tipo elettrolitico o al tantalio, da 10 µF (microfarad), il polo positivo sul pin reset, il polo negativo su GND.
Ho fatto tutte le foto, stasera inizio il lavoro, nell'uovo di Pasqua troverai la guida con una trentina tra foto e immagini varie.
Ciao.

attendo questa sorpresa vista la novità "bauli" non solo grandi firme ma anche grande mennite XD

exurgit:

menniti:
Assassino :grin:
No, deve essere di tipo elettrolitico o al tantalio, da 10 µF (microfarad), il polo positivo sul pin reset, il polo negativo su GND.
Ho fatto tutte le foto, stasera inizio il lavoro, nell'uovo di Pasqua troverai la guida con una trentina tra foto e immagini varie.
Ciao.

attendo questa sorpresa vista la novità "bauli" non solo grandi firme ma anche grande menniti XD

XD XD XD XD XD bella questa, ma il marchio "menniti" è DOC non lo storpiare con la "e" finale :smiley:
Sono già al lavoro, ho prima sistemato alcune parti della guida esistente, sulla base dei suggerimenti che ho avuto sul forum, ora sto appunto scrivendo la nuova sezione, già fatta la necessaria introduzione con le relative foto; visti i tuoi ed altri interventi ho deciso di spendere qualche parola e foto in più sia riguardo la parte squisitamente elettronica che riguardo quella software (pensa che ho fotografato tutti i passaggi per arrivare al file "board.txt"), sembra un'esagerazione per chi è informatico ma ho capito che è indispensabile per chi invece è solo elettronico; la particolarità di questo forum è quella di unire questi due mondi.
Stasera al rientro riprendo il lavoro, avrai la tua sorpresa per tempo, ogni promessa è debito! Ciao e grazie per il "grande", so di non meritarlo ma è bello crederci.... :blush:

i meriti vanno detti e quindi è giusto darteli
PS: dimenticavo sono mortificato per aver "storpiato" il tuo "marchio"