Cambiare code Arduino

ciao a tutti.... volendo iniziare con il controllo e la creazione di un cnc ho cercato su internet un po' di cose e ho trovato questo progetto, che per iniziare mi sembra carino. http://www.instructables.com/id/Pocket-laser-engraver/?ALLSTEPS
Però, leggendo i passi da fare, mi è venuto un dubbio...
Nello step in cui spiega come preparare arduino, dice di scaricare un Hex che dovrebbe essere un nuovo code per arduino ("Grbl "). E per farlo dovrei usare XLoader.
Quello che vorrei capire è che se faccio questo, dopo come posso fare per ripristinare il code originale di arduino ?

"Code" sta per "codice" in inglese.
Nell'Arduino il microcontrollore Atmega328 ha la memoria suddivisa in 2 parti: una piccola parte riservata ad accogliere il bootloader ed una parte più grande destinata ad accogliere i programmi dell'utente, che in Arduino (e Wiring) sono chiamati sketch.
Normalmente l'upload di un programma dall'IDE all'Arduino avviene proprio tramite il bootloader, che altro non fa se non mettersi in ascolto sulla seriale e scrivere sulla flash lo sketch in arrivo.

Se scrivi sul tuo microcontrollore un file in formato Hex stai scrivendo un programma già compilato e pronto per essere memorizzato sulla Flash. Se l'operazione prevede anche la cancellatura del bootloader, poi non puoi più tornare indietro senza usare un altro Arduino perché senza bootloader l'Atmega328 non puoi usarlo sull'Arduino.
Se non sei sicuro che la flashatura di quel file Hex non alteri il bootloader, il consiglio che ti do è quindi quello di acquistare un chip Atmega328 senza bootloader e scrivere l'Hex su quel chip (c'è la guida del Menniti per questo). In questo modo potrai sempre sfilarlo e rimettere sull'Arduino il chip col bootloader.

Grazie dell' esauriente spiegazione Leo, quindi ora vedo di procurarmi un Atmega328 (magari anche 2 XD )
E poi proverò, sembra che quel codice non sia altro che un interprete di comandi che arrivano via seriale...

superzaffo:
Grazie dell' esauriente spiegazione Leo, quindi ora vedo di procurarmi un Atmega328 (magari anche 2 XD )
E poi proverò, sembra che quel codice non sia altro che un interprete di comandi che arrivano via seriale...

Ma è fornito solo sotto forma di compilato oppure c'è anche il sorgente?

Il sorgente è qui --> GitHub - grbl/grbl: An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino
Ma non è possibile compilarlo con l'IDE di Arduino a meno di pesanti modifiche al codice.

Ho trovato questo --> Grbl on Arduino Leonardo? · Issue #111 · grbl/grbl · GitHub

PaoloP:
Il sorgente è qui --> GitHub - grbl/grbl: An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino
Ma non è possibile compilarlo con l'IDE di Arduino a meno di pesanti modifiche al codice.

Sì, è scritto per essere compilato esternamente all'IDE.

Ciao,
di GRBL si è parlato molto qui:
http://arduino.cc/forum/index.php/topic,127155.0.html

comunque, se apporti delle modifiche, è sufficiente un "make" per ricompilare l'hex...

GRBL è il fw utilizzato nel progetto CNC opensource Shapeoko...

pitusso:
comunque, se apporti delle modifiche, è sufficiente un "make" per ricompilare l'hex...

Il problema non era tanto nel ricompilarlo ma nel non perdere il bootloader.

superzaffo:
Nello step in cui spiega come preparare arduino, dice di scaricare un Hex che dovrebbe essere un nuovo code per arduino ("Grbl "). E per farlo dovrei usare XLoader.

Non so cosa faccia Xloader sui fuse, ecco perché nel dubbio ho consigliato di acquistare un chip, almeno se quel programma gli cancella il bootloader è male di poco.

Esatto, il problema non è tanto nel compilare o meno.. ma cosa va ad incidere questo codice nell' arduino.
Leo mi ha consigliato di prendere un IC a parte e mi sembra un saggio consiglio, ma visto che se ne parlato molto anche in questo forum, ben vengano tutti i consigli che mi potete dare.
Quello che vorrei iniziare a fare ora, è lo studio dei motori passo passo e il controllo di una cnc con via software e arduino

Almeno sapere se devo "sacrificare" un arduino per quel progetto XD

Più che "sacrificare" direi "utilizzare".
Se vuoi lasciare montata l'elettronica della CNC un altro Atmega328 ti serve sicuramente, a meno che non sia il tuo ultimo progetto.
A questo punto potresti prendere un'altra UNO R3 oppure una Duemilanove, per risparmiare qualcosa.

Ciao

Il problema non era tanto nel ricompilarlo ma nel non perdere il bootloader.

io ho avuto una arduino con GRBL montata su una macchinetta laser engraver fork-ata proprio da quella linkata nel primo post.
L'ho poi riutilizzata per altre attività senza problemi.
Chiaro che l'obiettivo è farsi un PCB con atmega328+driver+contorno

Non so cosa faccia Xloader sui fuse, ecco perché nel dubbio ho consigliato di acquistare un chip, almeno se quel programma gli cancella il bootloader è male di poco.

nulla, semplicemente serve a caricare sketch senza Arduino IDE installato - si interfaccia di fatto ad avrdude.
E' anche comodo per coloro che non son avezzi all'utilizzo della CLI, per caricare .hex.

Ahh.. benissimo, quindi tu hai già provato a fare quella macchinetta CNC.
Quindi ok, se ho ben capito, l' arduino lo posso riutilizzare per altri progetti... Ma forse l' idea di dedicare un bel Atmega al progetto non male.
@Pitusso
Visto che hai gia fatto il progettino, hai suggerimenti, info, ecc.. che mi possano aiutare per fare il progetto ?

ciao

Visto che hai gia fatto il progettino, hai suggerimenti, info, ecc.. che mi possano aiutare per fare il progetto ?

nessuno in particolare, se non di sperimentare relativamente al telaio.
Nell'instructables linkato usa profili in alluminio, altrove ne avevo viste in legno grezzo, altre ancora in compensato tagliato laser.
Prova con quello che hai a casa - io ne ho provate varie versioni, adesso ne ho una fatta con i pezzi del BRAL (=meccano).
Anche perchè i fori per il fissaggio dei carrelli son diversi da lettore a lettore...

Come driver ho usato degli stepstick (pololu), ma si possono utilizzare ovviamente gli EasyDriver (come nel progetto originario), oppure altri driver anche autocostruiti.

Ahh ok... ma il tuo laser è riuscito a tagliare la carta ?
Io ho preso quello del lettore dvd e l' ho messo nel housing.. con un 3v fa un sacco di luce ... eh eh eh...
Io userò dell' aluminio e easydriver... perchè è quello che ho avanzato dal mio ultimo progetto, anche se come driver mi piacerebbe farmene uno... il problema per me sarà per il supporto dell' housing
Ma a quanti milliampere hai fatto andare il laser ?

sorry se ti sto bonbardando di domande... ma è un po' che sto vedendo sta cosa.. e tra un paio di gg parto a fare il tutto...

Ciao

ma il tuo laser è riuscito a tagliare la carta ?

:cold_sweat: il laser devo ancora provarlo sul campo, per ora utilizzo una matita e di fatto è un piccolo (molto piccolo) plotterino
Come housing e lente ho utilizzato il materiale presente in una stampante laser in disuso, appena ho occhiali con la debita protezione (o enclosure della macchina) monto il laser e ci gioco.

Io userò dell' aluminio e easydriver... perchè è quello che ho avanzato dal mio ultimo progetto, anche se come driver mi piacerebbe farmene uno... il problema per me sarà per il supporto dell' housing

puoi usare delle fascette di plastica e/o colla a caldo

Ma a quanti milliampere hai fatto andare il laser ?

la parte laser è da terminare, ma sinceramente penso di utilizzare un semplice LM317 con debita resistenza - una configurazione minimale.

Bene, quindi magari possiamo lavorarci in parallelo :smiley:
Io ho tutto pronto, devo iniziare a comporre le cose, sono curioso di vedere se il laser taglia... ma quello che mi interessa di più è di iniziare a capire e provare il sistema di controllo degli assi...
Quindi se ho capito bene, hai già compilato l' hex e lo hai scaricato su arduino con Xloader.. trovato qualche difficoltà ?
Io sarei quasi orientato di fare il driver laser che c'è nel progetto...

Ciao

quello che mi interessa di più è di iniziare a capire e provare il sistema di controllo degli assi...

non è per nulla complesso, sia lato hw che lato controllo.
Si utilizza gcode standard.

Quindi se ho capito bene, hai già compilato l' hex e lo hai scaricato su arduino con Xloader.. trovato qualche difficoltà ?

sì, ho ricompilato l'hex perchè ho cambiato i pin standard.
Per il caricamento, ho utilizzato direttamente avrdude - lavoro con linux.
Cmq in un paio di occasioni ho dovuto utilizzare xloader per caricare degli hex e davvero non ci si può sbagliare.

Perdonami se ti stresso :slight_smile: ma quindi tu hai scaricato l' hex e poi eventualmente per riutilizzare l' arduino, scarichi i ketch normalmente con l' ide ?
La base sotto come sei riuscito a farla piana ? io ho il carrello che ha un supporto alquanto poco piano :smiley:

Ciao

ma quindi tu hai scaricato l' hex e poi eventualmente per riutilizzare l' arduino, scarichi i ketch normalmente con l' ide ?

ho scaricato il sorgente, modificato e caricato; puoi poi caricare classici sketch direttamente da IDE.

La base sotto come sei riuscito a farla piana ? io ho il carrello che ha un supporto alquanto poco piano :smiley:

:smiley: una barretta di BRAL, colla a caldo e una piccola lastra di plastica (puoi anche recuperarne un pezzo da un case cd)