Come caricare firmware .hex su arduino

RandA (Raspberry and Arduino) consente di sfruttare la dotazione hardware e le enormi potenzialità della piattaforma Linux Raspberry Pi e la quantità di shield e sketch per il mondo Arduino.
Rispondi
Burida62
Messaggi: 11
Iscritto il: 27/04/2016, 18:43
Occupazione: Militare
Home_Page: http://
Commento: Hobby fai da te meccanica ed elettronica
Compleanno: 05 lug 1962

Come caricare firmware .hex su arduino

Messaggio da Burida62 » 27/09/2017, 12:55

Salve ragazzi, sto completando il progetto della rivista Eletrronica in di luglio 2014 del robot solare con Arduino uno e nei post della sezione dedicata (robotica) viene messo il nuovo firmware aggiornato con estensione .hex.
Arduino non me lo carica ovviamente perché non riconosce tale file. Il firmware vecchio aveva 7 file da caricare tutti con estensione .ino mentre questo è un unico file con estensione .hex
Mi dite come faccio??? Sulla rete qualcuno utilizza avrdude, altri xloader ma non trovò una guida in italiano. Potreste aiutarmi??? Ve ne sarei molto grato. :(

Avatar utente
Futura01
Messaggi: 405
Iscritto il: 04/11/2009, 11:25

Re: Come caricare firmware .hex su arduino

Messaggio da Futura01 » 27/09/2017, 14:56

Buongiorno, trova il codice completo direttamente nella scheda prodotto della shield. Nello specifico, nel link seguente trova lo sketch http://www.futurashop.it/mowershieldfe- ... ershieldfe

Burida62
Messaggi: 11
Iscritto il: 27/04/2016, 18:43
Occupazione: Militare
Home_Page: http://
Commento: Hobby fai da te meccanica ed elettronica
Compleanno: 05 lug 1962

Re: Come caricare firmware .hex su arduino

Messaggio da Burida62 » 27/09/2017, 18:28

Ringrazio della risposta ma vorrei essere sicuro di una cosa. Lo sketch che trovo al link postato e che mi riporta al vs. sito dello Shop è quello aggiornato che correggeva alcuni bug come riportato nel forum sezione robotica nel 2014 Oppure è sempre quello della rivista del 2009??? Grazie.

BellaBill
Messaggi: 4
Iscritto il: 27/09/2017, 14:10
Home_Page: http://

Re: Come caricare firmware .hex su arduino

Messaggio da BellaBill » 30/09/2017, 0:04

Ciao, purtroppo non posso esserti d'aiuto per il progetto specifico perché non lo conosco e questa sezione del forum si occupa di un'altra scheda (RandA).

Nel caso però tu volessi caricare su Arduino UNO il firmware binario in formato .hex in tuo possesso il comando da usare è simile al seguente:

Codice: Seleziona tutto

/opt/arduino-1.8.4/hardware/tools/avr/bin/avrdude -C/opt/arduino-1.8.4/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/arduino_build_641517/Blink.ino.hex:i
Siccome anche l'IDE Arduino utilizza avrdude in realtà lo stai già usando senza saperlo e puoi verificare semplicemente il comando esatto da usare nel tuo caso (io sto usando l'IDE ultima versione v1.8.4 da Ubuntu Linux e installato in /opt/arduino-1.8.4/).

Devi solamente andare nel menu "File -> Preferences", poi nel tab "Settings" e spuntare (selezionare) la voce "upload" di fianco a "Show verbose output during:". Dopodiché prova a caricare con l'IDE Arduino un qualsiasi sketch .ino sul tuo Arduino UNO (io nell'esempio sopra ho caricato Blink.ino) e vedrai, nella console inferiore sotto il codice dello sketch, scorrere dei messaggi durante il caricamento ove puoi vedere il comando che ti ho indicato.

Dovrai solo sostituire nel comando il percorso ed il nome del file binario .hex che vuoi caricare (nel mio esempio è: /tmp/arduino_build_641517/Blink.ino.hex)

Codice: Seleziona tutto

Archiving built core (caching) in: /tmp/arduino_cache_215221/core/core_arduino_avr_uno_77ab679da1d5cba39880a1cc44badc16.a
Sketch uses 928 bytes (2%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
/opt/arduino-1.8.4/hardware/tools/avr/bin/avrdude -C/opt/arduino-1.8.4/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/arduino_build_641517/Blink.ino.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 11:00:16
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/opt/arduino-1.8.4/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/home/user/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/tmp/arduino_build_641517/Blink.ino.hex"
avrdude: writing flash (928 bytes):

Writing | ################################################## | 100% 0.16s

avrdude: 928 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_641517/Blink.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_641517/Blink.ino.hex:
avrdude: input file /tmp/arduino_build_641517/Blink.ino.hex contains 928 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.13s

avrdude: verifying ...
avrdude: 928 bytes of flash verified

avrdude done.  Thank you.
P.S. Se lanci avrdude solo con il parametro -? ti mostra tutti i parametri che puoi usare ed il loro significato (non dovresti aver bisogno di cambiarli a parte quello del file .hex perché l'IDE usa i parametri corretti e che per te funzionano e che corrispondono alla Board ed alla porta seriale che hai selezionato):

Codice: Seleziona tutto

/opt/arduino-1.8.4/hardware/tools/avr/bin/avrdude -?

Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053). 
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a script.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -x <extended_param>        Pass <extended_param> to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -l logfile                 Use logfile rather than stderr for diagnostics.
  -?                         Display this usage.

avrdude version 6.3, URL: <http://savannah.nongnu.org/projects/avrdude/>

Burida62
Messaggi: 11
Iscritto il: 27/04/2016, 18:43
Occupazione: Militare
Home_Page: http://
Commento: Hobby fai da te meccanica ed elettronica
Compleanno: 05 lug 1962

Re: Come caricare firmware .hex su arduino

Messaggio da Burida62 » 30/09/2017, 9:33

Ti ringrazio dell'aiuto adesso stampo quello che mi hai scritto e con calma vedo il da farsi.ciao

Rispondi