Pages: [1] 2   Go Down
Author Topic: Aggiornare firmware da eseguibile  (Read 7287 times)
0 Members and 1 Guest are viewing this topic.
Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 758
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi stavo chiedendo se l'aggiornamento via compiler di Arduino fosse l'unica maniera di aggiornare il firmware di un Arduino. E' possibile realizzare una sorta di installer che va ad aggiornare il firmware in via del tutto automatica e trasparente senza dover utilizzare l'interfaccia di Arduino?
Logged

Gianfranco

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi usare un programmatore comandato da avrdude ma devi prepararti un firmware in versione hex.
Logged


Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 758
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il compilatore dell'arduino non da la possibilita' di salvare il firmware in formato ex? oppure dovrei successivamente estrarlo dall'atmega?
Logged

Gianfranco

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Che io sappia l'IDE di Arduino fa tutto in automatico.
Leggi il thread "Eseguibile Arduino?" in cui MauroTec spiega bene come lavora l'IDE.
Logged


BZ (I)
Offline Offline
Brattain Member
*****
Karma: 249
Posts: 21193
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao GianfrancoPa

Non so cosa intendi per "firmware".

Sul ATmega del Arduino ci sono presente 2 programmi:
* il bootloader che permette di fare un upload attraverso seriele / USB.
* il programma (sketch) che scrivi Tu e lo compili e trasmitti attraveso il IDE al Arduino.
Il bootloader resta e il programma lo cambi a Tuo piacere.

Il IDE produce il File .HEX che puoi prendere e caricare con un programmatore ISP sul ATmega.
In questo momento non so dirti in quale cartella viene messo, ma quello puoi trovarlo semplicemente anche Tu facendo un trovi dal explorer di Windows.

Nel pacchetto IDE ci sono inclusi anche i Bootloader per poter metterli su controllori comprati vergini.

Ciao Uwe
« Last Edit: January 22, 2011, 07:28:28 am by uwefed » Logged

Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 758
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Normalmente carico lo schetch con il programma dell'Arduino. Volevo sapere se c'era la possibilità di poter inserire lo stesso schetch all'interno di piu' arduino, senza dover passare dal loro software, in maniera del tutto automatica, magari con un semplice eseguibile che fa tutto quanto da solo.
Logged

Gianfranco

0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao GianfrancoPa, ma tu gli altri post li leggi.
Comunque l'ide arduino usa un programma chiamato AVRDUDE per caricare lo scketch nel microcontrollore.

Tutti le schede simili ad arduino possono anche essere programmate da un programmatore che si compra o si autocostruisce. Si collega il programmatore tramite il cavetto al connettore ICSP di arduino e da computer gli dici di fare il trasferimento.

Ora io vorrei sapere cosa se ne fà un utente di un qualcosa che programmare più microcontrollori tutti insieme. Commerciale? bussines?

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

premete shift quando premete il pulsante per compilare per scoprire tutti file generati dall'ide e sapere dove finiscono
Logged

Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 758
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Faccio parte di un'associazione meteorologica senza fini di lucro, e sto studiando con Arduino uno strumento che possa esserci utile per la rilevazione dei dati, considerando che le strumentazioni professionali costano centinaia di euro bene che vada.

Per tale ragione ho già provato diversi sensori termometrici (ricordi i post sui sensori Sensirion? Sulla PT100?), e altri ne ho altri ancora da provare; sto studiando le comunicazioni wireless tramite xbee per consentire collegamenti a distanza (le stazioni vanno installate all'aperto); sto cercando di capire come acquisire dati da periferiche usb: le maggiori stazione meteorologiche (Davis, Oregon, etc) utilizzano tale bus, e per tale ragione sarebbe utile un sistema con datalogger ed invio automatico dei dati tramite web (con l'Ethernet shield), questo per evitare di lasciare PC accesi giorno e notte con tutti i problemi che comportano (consumi, crash, etc).

Cosa serve poter inserire il "firmware" in maniera veloce? Per consentire eventuali update a tutti coloro che sfrutteranno tali sistemi che sto studiando, ovviamente nella speranza che possa concretizzare quanto sto facendo. Poichè non tutti hanno le competenze base per effettuare un upgrade, volevo avere informazioni a riguardo. L'interessato provvederebbe a collegare l'Arduino al pc, far partire l'eseguibile e stop! Arduino aggiornato.

Ringrazio molto per la disponibilità che hai nel dare risposta a molte delle mie domande (ovviamente siete in tanti a farlo), e capisco che a volte ripetere le cose può essere tedioso, ma chiedo ulteriore pazienza, purtroppo questo e' un ambiente nuovo per me e per tale ragione a volte perdo tempo a capire!!

Grazie mille
Logged

Gianfranco

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Una curiosità: siccome precisi che la persona che aggiornerebbe gli Arduino collegherebbe la scheda ad un PC (presumo un portatile) allora ti consiglio proprio di usare l'IDE visto che offre un ambiente facile e veloce per questa operazione, a differenza dell'uso di avrdude, che implica a monte la creazione del file .hex ed al "tecnico" che esegue l'aggiornamento l'utilizzo della shell.

Per quanto riguarda il logging, puoi eseguirlo sia su EEPROM sia su SD: entrambe le soluzioni sono supportate dalle librerie standard di Arduino (dalla vers. 0022 in poi). Alcune Ethernet shield integrano sia la gestione della connessione Ethernet sia uno slot per SD/microSD: in questo modo hai 2 piccioni con 1 fava.
Ti manca solo un RTC per tenere il tempo e sei a posto.
Logged


Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 987
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quoto.
L'IDE lo puo' usare anche chi non sa niente di elettronica: colleghi arduino, avvii l'IDE, carichi lo sketch e premi il tasto upload.
fine.

Bella la faccenda dello SHIFT!  smiley
Logged

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

se la shell non ti sta simpatica googla avrdude GUI
a me personalmente non piace molto se non su xp, vista e 7 troppi controlli e crasha. ma penso esistano varie versioni magari sono io niubbo... ;D

bello eh shift? scoperto da poco ma utilissimo
« Last Edit: January 22, 2011, 05:12:48 pm by garinus » Logged

Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 758
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quanto sarà il tempo cercherò questo programma, ma già i vostri consigli sono piu' che preziosi!!

L'RTC l'ho già implementato, ma a dire il vero ho già implementato una stazione che utilizza i sensori di cui ho gia' parlato, con salvataggio dei dati nella eeprom e gestione delle minime e massime. Il problema e' pero' lo spazio limitato! Avevo pensato di usare altre eeprom, solo che quando ho scoperto l'esistenza dell'ethernet shield ho subito pensato ad un web server che salva ed organizza i dati in maniera testuale.

Voglio includere anche la possibilita' di scaricare questi file via web server, ma anche la creazione di pagine html preformate, che utilizzano anche dei template, con l'opzione dell'upload automatico su sito web.

I propositi sono buoni, ma la strada e lunga... vi tempesterò di domande!!  ;D
Logged

Gianfranco

0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao GinfrancoPa, che forse sei in provincia di palermo?
Io lo sono.

Scusa leggo evitando di interpretare ma quando scrivi:
Quote
Volevo sapere se c'era la possibilità di poter inserire lo stesso schetch all'interno di piu' arduino, senza dover passare dal loro software, in maniera del tutto automatica, magari con un semplice eseguibile che fa tutto quanto da solo.

Per me più arduino significa due o più contemporaneamente.

Comunque viste le necessità io non sono a conoscenza di un programma che faccia quello ti serve.
Avrdude viene messo in esecuzione da riga di comando dove devi anche specificare una sfilza di argomenti, quindi non è pratico per l'utente ignaro.

L'idea potrebbe essere quella di fare un'applicazione web in flash o in javascript, che permetta all'utente di scaricare e scrivere il firmware in un solo apparente passo per l'utente.

L'applicazione web scarica il firmware, poi tramite avrdude legge la versione del firmware oppure lo acquisisce da micro e lo salva in una file nomefirmware-versione_data, compara quest'ultimo con il firmware scaricato se è diverso scrive il nuovo altrimenti avverte l'utente.

Ps: Un modo sicuro per sapere qual'è la versione del firmware presente nel micro deve essere trovato altrimenti si rischia di confondere l'utente.

Poi si può anche creare una versione modificata di avrdude ma c'è da controllare la licenza.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se per aggiornare il firmware intendi un sistema che lo faccia internamente all'Arduino, ti dico che non si può programmare l'Atmega senza usare un qualche altro dispositivo esterno. Mi ci sono già scontrato, con questo problema.

Una soluzione alternativa potrebbe essere l'uso di Bitlash, un linguaggio interpretato che esegue file script esterni all'Arduino, ad esempio salvati su una SD. In questo caso basterebbe aggiornare il file testo ed avresti risolto. Però non so che potenzialità ha questo linguaggio: riesce ad interfacciarsi con i pin, quindi può leggere/scrivere su periferiche esterne ma non so ad esempio se riesce a fare il log dei dati su SD o su EEPROM esterna (su quella interna ci riesce ma hai solo 1 KB di memoria).
Logged


Pages: [1] 2   Go Up
Jump to: