Arduino Forum

International => Italiano => Software => Topic started by: ambro7 on Jun 19, 2013, 04:53 pm

Title: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 19, 2013, 04:53 pm
Buongiorno a tutti!
Ho una decina di Arduino Mega 2560 dislocati in un ambiente produttivo, che rilevano impulsi digitali ed accendono delle lampade di segnalazione. Tutti gli Arduino Mega hanno la Ethernet Shield, e inviano-ricevono dati con dei Pc client(un pc ogni 4 Arduino),  attraverso messaggi Socket.
La mia necessità è quella di poter caricare lo sketch da remoto da un singolo pc, attraverso la rete, in modo da poter apportare modifiche al programma da remoto, senza recarmi necessariamente dal cliente.
Ho fatto diverse ricerche in internet, ma in nessun caso si utilizzavano Arduino Mega per lo scopo, ma solo Uno o 2009, con bootloader modificati, e forse per questo motivo sono riuscito a briccare una scheda.

Spero di aver dato tutte le informazioni necessarie per capire la mia esigenza.
Grazie mille
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 19, 2013, 05:03 pm
Questo bootloader (che non ho mai usato!) supporta anche la Mega
--> https://github.com/codebendercc/Ariadne-Bootloader (https://github.com/codebendercc/Ariadne-Bootloader)

Per sloccare la Mega brikkata usa la programmazione ISP.  ;)

Naturalmente ti puoi anche iscrivere a Codebender, link in firma, e flashare le board tramite la rete via Web.  ;)
Codecender a volte è un po skizzinoso con alcuni codici per cui non è possibile compilare e inviate la totalità degli sketch.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 09:32 am
Ciao Paolo P. ,
grazie per la risposta, credo che quella indicata da te con Ariadne Bootloader sia la strada giusta.
Sono due giorni però che provo a caricare il bootloader, ma senza risultati.
Anche caricando il bootloader originale, riscontro degli errori.
Per la programmazione dell' Arduino Mega(MEGA2) utilizzo un Arduino Mega con Sketch Arduino ISP(MEGA1), con il seguente collegamento:
-Pin 53 MEGA1 --> Reset MEGA2
-Pin 51 MEGA1 --> Pin 51 MEGA2
-Pin 52 MEGA1 --> Pin 52 MEGA2
-Pin 50 MEGA1 --> Pin 50 MEGA2
-Pin GND MEGA1 --> Pin GND MEGA2
-Pin +5V MEGA1 --> Pin +5V MEGA2

Appena parte, i led TX-RX del MEGA1 cominciano a lampeggiare velocemente, con il LED del pin 13 Fisso, mentre sull'Arduino da programmare, rimane il LED del pin 13 fisso.
Dopo circa 3 minuti e mezzo si fermano e sull'Ide compare il seguente messaggio di errore:

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
         0xff != 0x0d
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 21, 2013, 09:46 am
Per la programmazione del bootloader segui la guida di Michele Menniti --> http://michelemenniti.it/arduino_burn_bootloader.php (http://michelemenniti.it/arduino_burn_bootloader.php)
Pagina 17 e 25.

Nel caso chiedi a lui o spera che passi di qui.  ;)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 10:46 am
E' proprio quella che ho seguito!!! :~
Ora provo con la programmazione via Parallela, e se non funzionerà nemmeno quella, sarà un bel problema.

Grazie
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 11:26 am
Ho riprovato seguendo la Guida del Prof. Menniti, ma nulla. Testato con programmazione da porta parallela con Adattatore Autocostruito come da indicazioni sul sito ufficiale Arduino, ma nulla.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 21, 2013, 11:36 am
Lascia perdere la programmazione parellela. Usa quella ISP.
Con un WatchDog settato a 30millisecondi hai poco spazio di manovra per la programmazione.
--> http://forum.arduino.cc/index.php?topic=78195.0
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 11:47 am
Ciao,
l'unica cosa che riesco a dirti al volo, poi ci sentiamo con calma in serata, se non risolvi, è sul messaggio d'errore:
Code: [Select]
0xff != 0x0d
Nella board che hai selezionato al momenti di caricare il bootloader dovresti trovare l'extended fuse settato a ff o 0d, cambialo con l'altro valore e vedi cosa succede.
Scusa ma in questo momento non faccio in tempo a leggere il Topic. Più tardi riuscirò e leggere l'esito di questa prova.
Confermo il consiglio di lasciar perdere altri tipi di programmazione, arriviamo prima a fare tutte le prove ISP :)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 01:23 pm
Grazie per la risposta velocissima  :)
Ho provato a scrivere l' efuse, ma in entrambi i casi il caricamento del bootloader è fallito
Scrittura efuse FF
Code: [Select]
c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude.exe -CC:\avrdude.c
onf -patmega2560 -cstk500v1 -P\\.\COM8 -b19200 -Uefuse:w:0xFF:m

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude.exe: Device signature = 0x1e9801
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0xFF:
avrdude.exe: load data efuse data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of efuse verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.


Prova Scrittura Bootloader
Code: [Select]
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
        0xff != 0x8e
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.


Scrittura efuse 0D
Code: [Select]

c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude.exe -CC:\avrdude.c
onf -patmega2560 -cstk500v1 -P\\.\COM8 -b19200 -Uefuse:w:0x0d:m

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude.exe: Device signature = 0x1e9801
avrdude.exe: reading input file "0x0d"
avrdude.exe: writing efuse (1 bytes):

Writing |                                                    | 0% 0.00s ***faile
d;
Writing | ################################################## | 100% 0.16s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0x0d:
avrdude.exe: load data efuse data from input file 0x0d:
avrdude.exe: input file 0x0d contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.03s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
            0x0d != 0xfd
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: efuse changed! Was d, and is now fd
Would you like this fuse to be changed back? [y/n] n
avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.


Prova Scrittura Bootloader
Code: [Select]
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
        0xff != 0x8e
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.




Ora se provo a caricare uno sketch qualsiasi non riesco e va in errore
Code: [Select]

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM9
         Using Programmer              : stk500v2
         Overriding Baud Rate          : 115200
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
         AVR Part                      : ATMEGA2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: Unknown
avrdude: Send: . [1b] . [01] . [00] . [02] . [0e] . [03] . [90] . [85]
avrdude: Recv:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 02:23 pm
Figurati :)
quindi stai usando AVRDUDE.....A me pare che non stia scrivendo nemmeno i fuse, visto che escono failed di qua e di là.
Ho letto ora tutto il Topic, se il micro è bricked non c'è niente da fare, è possibile applicare solo la programmazione HV, ma nel caso di quel micro è un lavoro da squilibrati, in quando dovresti dissaldarlo dalla mega, risaldarlo su una scheda appositamente creata per la programmaziome HV, quindi la domanda di conferma è:
una delle due schede non funziona più correttamente con l'IDE? Perché ritieni di averla brickata, hai fatto in precedenza prove ISP con fuse sballati?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 03:42 pm
Ho usato AVRDUDE solo per provare a scrivere i fuse (non sapendo come fare altrimenti).
La scrittura del efuse a FF va a buon fine, ma non quella a 0D.
Se adesso provo a scrivere il bootloader originale , quando termina in errore(byte 0x1e000 0xff != 0x0d), ho il led del pin 13 che lampeggia a intermittenza.
Nonostante questo errore, se lo collego via usb e invio lo sketch del blink, lo upload e funziona( per essere sicuro ho impostato il blink a 100 ms invece di 1000).

Quindi in teoria non dovrebbe essere brikkato.

Il tutto è nato quando ho provato a caricare il bootloader Adriadne.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 21, 2013, 04:41 pm
$0D può non essere accettato perché passi al chip il valore di fuse che non esistono. Secondo il sito Fuse Calculator:
http://www.engbedded.com/fusecalc

con $0D potresti avere problemi, prova con $05.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 04:51 pm
Sì, è come dice Leo, allora puoi provare 0x05 o 0x07, tanto incidono solo sul BOD level.
Però il blink come prova non è idoneo, quel cavolo di LED lampeggia per la qualsiasi; impostalo su un pin diverso e aggiungi una R + led al volo, oppure carica uno sketch che mostri qualcosa sul serial monitor, insomma una prova più seria, ok?
Se risponde all'IDE non c'è ragione per la quale non funzioni l'ISP....
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 05:19 pm
Provato a cambiare i fuse:

Fuse-->05:
Code: [Select]
c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude.exe -CC:\avrdude.c
onf -patmega2560 -cstk500v1 -P\\.\COM8 -b19200 -Uefuse:w:0x05:m

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude.exe: Device signature = 0x1e9801
avrdude.exe: reading input file "0x05"
avrdude.exe: writing efuse (1 bytes):

Writing |                                                    | 0% 0.00s ***faile
d;
Writing | ################################################## | 100% 0.16s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0x05:
avrdude.exe: load data efuse data from input file 0x05:
avrdude.exe: input file 0x05 contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.03s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0x05 != 0xfd
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: efuse changed! Was 5, and is now fd
Would you like this fuse to be changed back? [y/n] n
avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.




Provato a caricare Bootloader:
Code: [Select]
avrdude: Recv: . [10]
# | 100% 170.56s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
         0xff != 0x8e
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.


Fuse -->07

Code: [Select]
avrdude: Recv: . [10]
# | 100% 170.56s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
         0xff != 0x8e
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.


Caricamento Bootloader:
Code: [Select]
# | 100% 170.10s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
         0xff != 0x8e
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.



Fatte queste prove caricato sketch che scrive su Seriale -->la scheda funziona e sul monitor seriale leggo ciò che scrivo.



Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 05:31 pm
E' proprio un comportamento strano, che IDE stai usando?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 05:32 pm
L'ultima versione stabile-->1.0.5
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 21, 2013, 05:34 pm
Non riesce a riprogrammare fuse e bootloader ma quello che c'è carica gli sketch correttamente?  :smiley-roll-blue:
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 05:35 pm
Se provo a mettere il fuse -->FF

Code: [Select]

c:\Program Files (x86)\Arduino\hardware\tools\avr\bin>avrdude.exe -CC:\avrdude.c
onf -patmega2560 -cstk500v1 -P\\.\COM8 -b19200 -Uefuse:w:0xFF:m

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude.exe: Device signature = 0x1e9801
avrdude.exe: reading input file "0xFF"
avrdude.exe: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0xFF:
avrdude.exe: load data efuse data from input file 0xFF:
avrdude.exe: input file 0xFF contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of efuse verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.




Così non sembra vada in errore, però poi andato a caricare il bootloader, ricevo ancora errori.


Ne stò uscendo pazzo :smiley-roll-sweat: :smiley-roll-sweat:
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 21, 2013, 05:41 pm

Il tutto è nato quando ho provato a caricare il bootloader Adriadne.


La board per caricare il bootloade di Codebender è questa:
Code: [Select]
##############################################################

ariadne2560M.name=Arduino Mega 2560 (Ariadne Bootloader)

ariadne2560M.upload.protocol=stk500v2
ariadne2560M.upload.maximum_size=258048
ariadne2560M.upload.speed=115200

ariadne2560M.bootloader.low_fuses=0xFF
ariadne2560M.bootloader.high_fuses=0xD8
ariadne2560M.bootloader.extended_fuses=0xFD
ariadne2560M.bootloader.path=ariadne
ariadne2560M.bootloader.file=ariadne_atmega2560.hex
ariadne2560M.bootloader.unlock_bits=0x3F
ariadne2560M.bootloader.lock_bits=0x0F

ariadne2560M.build.mcu=atmega2560
ariadne2560M.build.f_cpu=16000000L
ariadne2560M.build.core=arduino:arduino
ariadne2560M.build.variant=arduino:mega

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


I fuse sono: FF D8 FD
SPI enable
Boot Size 0
Boot Size 1
Boot Reset
BoD level 1

--> -U lfuse:w:0xff:m -U hfuse:w:0xd8:m -U efuse:w:0xfd:m

Trovi il file board.txt completo qui --> https://github.com/codebendercc/Ariadne-Bootloader/tree/mega/hardware/ariadne
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 05:58 pm
ma i fuse sono identici alla board originale!!!
Fai una cosa, con avrdude leggi tutti e tre i fuse e cerchiamo di capire cosa dobbiamo sistemare, certamente l'extended che è FD e non FF, ma vediamo gli altri due
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 05:59 pm
Ma questo è il contenuto del file boards.txt che è sotto C:\Program Files (x86)\Arduino\hardware\ariadne

I fuse glieli imposta l'ide arduino quando scrivo il bootloader giusto?
Oppure li devo impostare in manuale.
Grazie ancora per l'aiuto!!!
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 05:59 pm

ma i fuse sono identici alla board originale!!!
Fai una cosa, con avrdude leggi tutti e tre i fuse e cerchiamo di capire cosa dobbiamo sistemare, certamente l'extended che è FD e non FF, ma vediamo gli altri due


Per leggerli quale comando devo utilizzare?

Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 06:07 pm
dovrebbe essere:
-U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 21, 2013, 06:09 pm
Ora sono lontano dall'Arduino....Penso di provare lunedì mattina....
Vi ringrazio

:) :) :)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 21, 2013, 06:26 pm
OK, allora ti lascio i compitini :D
1 - leggi i tre fuse
2 - confrontali con gli standard: low=FF high=D8 extended=FD
3 - se trovi valori diversi ripristina quelli originali, poi rifai le tue prove
4 - se con i fuse a posto hai ancora problemi rivediamo tecnica e collegamenti ISP
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 21, 2013, 11:20 pm
Rileggevo il messaggo di errore:
Code: [Select]

avrdude: verification error, first mismatch at byte 0x1e000

Qui mi pare che ci sia stato un pò un miscuglio di problemi. Sono stati cioè mescolati i problemi con i fuse con quelli relativi alla programmazione della Flash.

L'errore che si evidenzia in alto parrebbe relativo alla barriera dei 128 kB ($1E000 = 120 kB) dell'Arduino MEGA.
Non mi ricordo se l'hai specificato, per cui ti chiedo cortesemente: stai usando che cosa per programmare lo sketch?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 22, 2013, 09:12 am
Sta usando IDE 1.0.5
Gli sketch riesce a programmarli senza problemi, tramite IDE + USB
NON riesce a caricare il bootloader via ISP ed ottiene quegli errori
Il dubbio che mi è venuto è che il fuse h sia programmato a favella per cui non ci sia spazio sufficiente per il bootloader
Ho constatato che sulla carta la board che ha usato per quel suo bl ha gli stessi fuse della originale MEGA 2560/ADK, quindi non dovrebbe aver brickato.
Da qui la richiesta di leggere i tre fuse prima di fare altre prove e verificare per bene (cosa che finora non abbiamo fatto) tutta la tecnica ISP che usa.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 22, 2013, 09:51 am
Il problema è che stia usando un qualcosa (Arduino UNO con sketch ArduinoISP?) che non riesca a scrivere oltre la barriera dei 128K di Flash. Siccome il bootloader sta nella parte più alta della memoria, il programmatore DEVE per forza passare oltre i 128K. Magari scrivendo il suo sketch  tale limite non lo supera e l'errore non si presenta.

Quindi era per sapere che versione di Arduino usava e capire quale fosse il bootloader sopra caricato.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 22, 2013, 11:15 am
All'inizio ha riportato le connessioni, è palese che sta usando due Arduino MEGA ;). Ora, se non erro, il problema over 128K è del compilatore e non dell'Arduino, ma è possibilissimo che le cose stiano come dici tu, per cui potrebbe risolvere con l'aggiornamento software di Astrobeed.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 22, 2013, 11:26 am
Quindi è probabile che stia usando l'ArduinoISP compilato con un compilatore che non può indirizzare dati oltre i 128 kB. Ergo, l'ArduinoISP può non riuscire a scrivere oltre i 128 kB della memoria della seconda Mega. Io la prova la farei.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 22, 2013, 11:45 am
Certamente, una volta messi a posto i fuse converrà fargli fare l'aggiornamento e poi provare, ArduinoISP della 1.0.5 non dovrebbe avere più alcun problema, si tratta quindi solo di installare la patch seguendo le istruzioni messe nel primo post del Topic. OK!
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 24, 2013, 09:11 am
Risultato dei compiti assegnati:
-->Lettura dei Fuse
Code: [Select]

C:\Arduino\arduino-1.0.4-windows\arduino-1.0.4\hardware\tools\avr\bin>avrdude.ex
e -CC:\avrdude.conf -patmega2560 -cstk500v1 -P\\.\COM8 -b19200 -U lfuse:r:-:h -U
hfuse:r:-:h -U efuse:r:-:h

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude.exe: Device signature = 0x1e9801
avrdude.exe: reading lfuse memory:

Reading | ################################################## | 100% 0.02s

avrdude.exe: writing output file "<stdout>"
0xff
avrdude.exe: reading hfuse memory:

Reading | ################################################## | 100% 0.01s

avrdude.exe: writing output file "<stdout>"
0xd8
avrdude.exe: reading efuse memory:

Reading | ################################################## | 100% 0.01s

avrdude.exe: writing output file "<stdout>"
0xfd

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.


1)lfuse-->0xff           hfuse-->0xd8           efuse-->0xfd
2)I fuse quindi sono corretti
3)Riprovato a scrivere il bootloader, utilizzando Arduino Mega con sketch ArduinoISP: risultato:

Code: [Select]
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x1e000
         0xff != 0x0d
avrdude: verification error; content mismatch
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]


avrdude done.  Thank you.



Confermo di utilizzare IDE 1.0.5

-L'aggiornamento software di Astrobeed scusate, che cos ' è? Dove lo trovo?

Buona giornata a tutti
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 24, 2013, 09:19 am
Per sicurezza ho anche provato a leggere i fuse dell'Arduino che utilizzo come programmatore e i fuse sono gli stessi
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 24, 2013, 10:31 am
Possibile che tu sia il primo a programmare un bootloader da MEGA a MEGA?
Perché a me sembra un bel BUG questo.  :(
Forse ha ragione Leo.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 11:26 am

Possibile che tu sia il primo a programmare un bootloader da MEGA a MEGA?
Perché a me sembra un bel BUG questo.  :(
Forse ha ragione Leo.

No, ricordo che Pablos aveva due MEGA (ne ha regalata una a me, alla fine delle fatiche XD) però sinceramente non ricordo cosa facevamo, forse solo il caricamento diretto dello sketch via ISP
Ambro, fatti prima una bella copia di tutto quanto e poi segui le istruzioni del primo posto di questo mio Topic (http://forum.arduino.cc/index.php?topic=96976.0), se è come sembra il problema è propriom il bug noto del caricamento di software oltre i 128k, con questa procedura dovresti risolvere.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 24, 2013, 11:34 am
Per certo c'è che da UNO a MEGA è fattibile. Da MEGA a MEGA ci sono dei problemi, quindi: o è il bootloader (che non è lo stesso) oppure è il limite dei 128 kB (problema accertato) oppure la somma dei 2.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 11:46 am

Per certo c'è che da UNO a MEGA è fattibile. Da MEGA a MEGA ci sono dei problemi, quindi: o è il bootloader (che non è lo stesso) oppure è il limite dei 128 kB (problema accertato) oppure la somma dei 2.

aspetta Leo, perché dici che è così certa la cosa, ora io non ricordo con certezza, ma quando facemmo le prove con Astro usai TiDiGino, che è una MEGA attrezzata da Elettronica In, però sono ragionevolmente sicuro di aver caricato sketch. Siccome il problema è software perché la UNO dovrebbe funzionare come programmatore ISP e la Mega no? Ti riferisci sempre ad una UNO con toolchain aggiornata?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 24, 2013, 12:27 pm
Ovviamente.
Con bootloader compilato con toolchain aggiornata non ci dovrebbero essere problemi.

Ma la MEGA i problemi li ha perché già il suo bootloader non riesce a scrivere oltre i 128 kB per cui io presumo che sia un bootloader compilato con toolchain non aggiornata e che quindi tutte le schede soffrano di questo problema.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 01:36 pm
allora se non ricompila il bl potrebbe non risolvere :(
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 24, 2013, 01:38 pm
Il problema è di AVRdude  o di Arduino as ISP su MEGA non del bootloader.
Lui non riesce a caricare il bootloader non gli sketch col bootloader; quindi il problema è a monte.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 24, 2013, 02:48 pm


Possibile che tu sia il primo a programmare un bootloader da MEGA a MEGA?
Perché a me sembra un bel BUG questo.  :(
Forse ha ragione Leo.

No, ricordo che Pablos aveva due MEGA (ne ha regalata una a me, alla fine delle fatiche XD) però sinceramente non ricordo cosa facevamo, forse solo il caricamento diretto dello sketch via ISP
Ambro, fatti prima una bella copia di tutto quanto e poi segui le istruzioni del primo posto di questo mio Topic (http://forum.arduino.cc/index.php?topic=96976.0), se è come sembra il problema è propriom il bug noto del caricamento di software oltre i 128k, con questa procedura dovresti risolvere.


Ho seguito le tue istruzioni, su due postazioni pc diverse, sempre partendo dall'ultimo ide 1.0.5, ma il problema rimane, sempre uguale.

Ricordo poi, che anche se va in errore la programmazione del bootloader, io poi su quell'Arduino, sono in grado di caricare gli sketch normalmente, e sembra che il bootloader venga caricato, perchè provando a caricare il bootloader Ariadne, al reset HW della scheda, rimane in ascolto sulla porta 69 TFTP, quindi in qualche modo il bootloader, viene caricato.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 04:50 pm

Il problema è di AVRdude  o di Arduino as ISP su MEGA non del bootloader.
Lui non riesce a caricare il bootloader non gli sketch col bootloader; quindi il problema è a monte.

Non sono d'accordo.... Quando carichi uno sketch via ISP i fuse vengono ignorati ed esso si sistema a partire dalla locazione 0$0000; se invece carichi il bootloader, esso, come ben sai, ha uno spazio riservato dal fuse high, nella parte più alta della memoria, e lì entra in ballo il famoso bug. Quando carica uno sketch correttamente lo fa perché opera via IDE.

Per avere conferma di ciò gli avevo chiesto di provare a caricare uno sketch via ISP e non via IDE. SOLO CHE C'é un CONTRO: se riesce a fare questa operazione e poi non riesce più a mettere il bootloader originale allora diventa un problema più serio.

Tornano a noi, a maggior ragione se il bootloader Ariadne viene caricato (ma non avevi aperto il Topic perché non riuscivi????), significa che, come dice Leo, il bootloader originale della MEGA va ricompilato con il sistema aggiornato e poi dovrebbe risolvere. A mio parere il bootloader Ariadne è quello della Mega, modificato opportunamente ed implementato con il loro sketch (quello che si mette in ascolto sulla porta 69TFTP; quando lui carica il blink esso lo accetta ma ovviamente perde lo sketch originale. A me sembrerebbe che a questo punto lui sia a posto :smiley-sweat: Se l'Ariadne funziona che ti frega di voler rimettere l'originale?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 24, 2013, 05:08 pm

Per avere conferma di ciò gli avevo chiesto di provare a caricare uno sketch via ISP e non via IDE. SOLO CHE C'é un CONTRO: se riesce a fare questa operazione e poi non riesce più a mettere il bootloader originale allora diventa un problema più serio.

Questa prova di caricare lo sketch via ISP confermo di non averla fatta


Tornano a noi, a maggior ragione se il bootloader Ariadne viene caricato (ma non avevi aperto il Topic perché non riuscivi????), significa che, come dice Leo, il bootloader originale della MEGA va ricompilato con il sistema aggiornato e poi dovrebbe risolvere. A mio parere il bootloader Ariadne è quello della Mega, modificato opportunamente ed implementato con il loro sketch (quello che si mette in ascolto sulla porta 69TFTP; quando lui carica il blink esso lo accetta ma ovviamente perde lo sketch originale. A me sembrerebbe che a questo punto lui sia a posto :smiley-sweat: Se l'Ariadne funziona che ti frega di voler rimettere l'originale?


Il bootloader apparentemente viene caricato, sia l'originale che quello Ariadne, la cosa strana è che il caricamento termina in errore.
Inizialmente non riuscivo nemmeno a caricarlo.


Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 05:20 pm
Allora, Leo sostiene che il bootloader vada ricompilato con la nuova situazione aggiornata, nell'apposita cartella trovi il sorgente (parlo di quello originale), poi dovrebbe andare....

Questo Ariadne è garantito per Arduino MEGA???? Se lo è prova a sentire loro e vedi cosa ti dicono.

La prova di caricare uno sketch via ISP ci permetterebbe di avere conferma assoluta di quanto stiamo immaginando però, se va a buon fine, ti disattiverebbe il bootloader, e non so dirti che col caricamento con l'errore ti ritorna almeno nelle condizioni attuali o no; a quel punto se non si dovesse risolvere avresti la mega non utilizzabile se non caricandole per semrpe sketch via ISP, mentre con l'IDE non potresti più; questo ti deve essere ben chiaro, poi decidi tu cosa fare.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 24, 2013, 05:37 pm

Allora, Leo sostiene che il bootloader vada ricompilato con la nuova situazione aggiornata, nell'apposita cartella trovi il sorgente (parlo di quello originale), poi dovrebbe andare....


Ma io questa prova l'ho già fatta(oppure no?!?), andando a installare il toolchain e seguendo il link. http://forum.arduino.cc/index.php?topic=96976.0 (http://forum.arduino.cc/index.php?topic=96976.0) (ho seguito tutti i primi 7 punti del primo post e riprovato a scrivere il bootloader.)

Questo Ariadne è garantito per Arduino MEGA???? Se lo è prova a sentire loro e vedi cosa ti dicono.
Dalla pagina ufficiale del progetto lo danno come totalmente supportato
https://github.com/codebendercc/Ariadne-Bootloader#supported-boards (https://github.com/codebendercc/Ariadne-Bootloader#supported-boards)

Quote
La prova di caricare uno sketch via ISP ci permetterebbe di avere conferma assoluta di quanto stiamo immaginando però, se va a buon fine, ti disattiverebbe il bootloader, e non so dirti che col caricamento con l'errore ti ritorna almeno nelle condizioni attuali o no; a quel punto se non si dovesse risolvere avresti la mega non utilizzabile se non caricandole per semrpe sketch via ISP, mentre con l'IDE non potresti più; questo ti deve essere ben chiaro, poi decidi tu cosa fare.


Questa è una prova molto rischiosa, rischierei di brikkare la seconda scheda, e il fornitore comincerebbe a dubitare alla seconda scheda guasta/brikkata.


Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 05:43 pm
Tu hai aggiornato il compilatore, ma stai usando il bootloader compilato con la versione originale, che forse non va bene; dovresti eseguire manualmente la ricompilazione del bootloader per poi riprovare a ricaricarlo.

Se la danno come supportata ribadisco: senti loro su questo problema  e vedi che ti dicono

Mi pareva d'aver capito che il problema lo avessi solo su una scheda non che avevi già fatto fuori anche l'altra, se è così non hai una scheda perfettamente funzionante in questo momento, allora è inutile che usciamo pazzi. Io ti sto consigliando di fare le prove SEMPRE su quella che ti sta dando problemi a caricare il bootloadder, NON su quella buona!
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jun 24, 2013, 06:01 pm
Allora proverò nei prossimi giorni se riesco a compilare manualmente il bootloader e vi aggiornerò.
Al di là dell'Ariadne, mi interessa anche mettere il bootloader originale senza avere errori.

Io ho due schede, entrambe si comportano allo stesso identico modo......


Ultima cosa mi sai indicare come compilare manualmente il bootloader, o trovo facilmente info in altri topic?
Ho fatto una veloce ricerca, ma vorrei evitare di fare danni..
GRASSIE!!! ^_^
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jun 24, 2013, 06:04 pm

Ultima cosa mi sai indicare come compilare manualmente il bootloader, o trovo facilmente info in altri topic?
Ho fatto una veloce ricerca, ma vorrei evitare di fare danni..
GRASSIE!!! ^_^

Su che sistema lavori? Se su Linux, posso dirti come fare, sono un paio di passaggi semplici, dovresti avere già tutti gli strumenti.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jun 24, 2013, 06:05 pm
sinceramente no, nella cartella dei bootloader della mega dovresti trovare il file sorgente ed un eseguibile con nome tipo "makefile", la procedura però non l'ho mai fatta, magari cerca "makefile" (o come si chiama lui, vedrai che qualcosa trovi, mi pare sia stata descritta più di una volta sul Forum.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jun 24, 2013, 06:12 pm
Scusa, un chiarimento, visto che è già successo in un'altro topic e stavamo uscendo matti con i fuse.
Sei sicuro che durante l'upload sulla scheda stai usando l'upload "con programmatore"? Altrimenti programmi la scheda con a bordo "Arduino as ISP" e non quella target.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jul 09, 2013, 08:29 am


Ultima cosa mi sai indicare come compilare manualmente il bootloader, o trovo facilmente info in altri topic?
Ho fatto una veloce ricerca, ma vorrei evitare di fare danni..
GRASSIE!!! ^_^

Su che sistema lavori? Se su Linux, posso dirti come fare, sono un paio di passaggi semplici, dovresti avere già tutti gli strumenti.


Lavoro su Sistemi Windows per questo progettino arduino, ma ho a disposizione una macchina virtuale con UBuntu per fare delle prove!
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jul 09, 2013, 08:30 am

Scusa, un chiarimento, visto che è già successo in un'altro topic e stavamo uscendo matti con i fuse.
Sei sicuro che durante l'upload sulla scheda stai usando l'upload "con programmatore"? Altrimenti programmi la scheda con a bordo "Arduino as ISP" e non quella target.



Ciao, sono sicuro di questo..... ASsolutamente SI!!!!! :)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Jul 09, 2013, 10:34 am

Lavoro su Sistemi Windows per questo progettino arduino, ma ho a disposizione una macchina virtuale con UBuntu per fare delle prove!

Ti installi gli strumenti per la compilazione, se non li hai già: apri un terminale e dai
Code: [Select]
sudo apt-get install autoconf build-essential
Poi ti porti nella cartella /arduino-xxx/hardware/arduino/bootloaders/optiboot e dai:
Code: [Select]
make clean && make atmega328
Una volta terminata la compilazione, il firmware è il file optiboot_atmega328.hex
Se devi modificare qualcosa il file è otpiboot.c. Attento che, una volta compilato, il file sia MENO di 512 byte altrimenti non sta nello spazio riservato al bootloader.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: asamlink on Jul 10, 2013, 05:02 pm
Salve a tutti,

Volevo condividere i test che io ho effettuato, sperando che possano essere utili all'argomento di questo post.
Per il famoso progetto sempre del telecontrollo, sto valutando la possibilita' di aggiornare il programma dell'arduino mega 2560 R3 via remoto. Da qui mi sono imbattuto in Ariadne per merito di questo post.
Premetto che sono stato molto attento all'uso dei vari IDE di arduino, verificando ogni volta che essi avessero il proprio file di preferences.
Hardware usato: Arduino Uno R2 utilizzato come programmatore (Arduino as ISP), Arduino Mega 2560 R3 (Il target), Ethernet Shield R3 e cavo da me preparato per la programmazione. Allego le immagini.
Ho quindi eseguito tutti i test enunciati nella tabella pdf allegata. La prima colonna indica con quale versione di IDE e progetto e' stato caricato il programmatore (Arduino 1).
Poi le colonne sucessive indicano la versione dell'IDE Usato, il risultato dopo la programmazione del bootloader e lo stato dei fuse. In giallo sono la programmazione di Ariadne e in Verde la programmazione del BootLoader originale.
Al termine della programmazione del bootloader Ariadne, ho caricato il progetto Comunication->ASCIITable. Mentre al termine della programmazione del bootloader originale ho caricato il classico Blink.
I messaggi di risultato come si evince, sono sintetizzati e si deve inserire prima del valore sempre la stessa frase: "avrdude: verification error, first mistmatch at byte 0x1e000 ...".
Dopo tutti i test suddetti, nonostante gli errori posso confermare che la scheda Arduino Mega 2560 funziona. Inoltre posso garantire che ho caricato il programma di telecontrollo (circa 60 kB di progetto) e ho anche testato il funzionamento tramite tftp. Tutto funziona!

Spero che questi dati possano servire, di nuovo ringrazo per la collaborazione.

AsamLink.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Jul 10, 2013, 09:16 pm
Grazie per i test.
Noto con piacere che sullo sfondo delle foto c'è la guida di Michele.  ;)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Jul 10, 2013, 09:32 pm
azz che colpo d'occhio Paolo, non me n'ero accorto :) però fa un certo effetto e moltissimo piacere vederla stampata e, soprattutto, ancora integra alla fine dei test XD
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Jul 24, 2013, 03:03 pm
non ho ancora avuto il tempo per fare altre prove e ricompilare il bootloader con linux, ma dalle prove fatte anche da asamlink sembrerebbe che l'ide dia errori anche a scrittura del bootloader completata correttamente.....
Certo che è strano...
:~
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: ambro7 on Aug 29, 2013, 04:14 pm


Dopo tutti i test suddetti, nonostante gli errori posso confermare che la scheda Arduino Mega 2560 funziona. Inoltre posso garantire che ho caricato il programma di telecontrollo (circa 60 kB di progetto) e ho anche testato il funzionamento tramite tftp. Tutto funziona!

Spero che questi dati possano servire, di nuovo ringrazo per la collaborazione.

AsamLink.


Il programma di telecontrollo da 60 kb, sei riuscito a caricarlo correttamente via TFTP?
Io non riesco a caricare sketch su Mega 2560 con dimensioni compilate che superano i 29 kb circa....

Il bootloader ariadne (il file con estensione .hex) l'hai ricompilato oppure preso e caricato?

Grazie
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: testato on Aug 29, 2013, 06:50 pm
Due domande sul discorso bug 128k

- i risultati positivi ottenuti di caricamento bootloader sulla mega, nonostante la presenza di errori, è avvenuta con i file originali dell ide 1.0.5 oppure ricompilati ?

- se il problema 128 esiste e deriva dal bootloader allora dovrebbe affliggere sia la uno che la mega quando usate come arduinoIsp, cioè anche se si usa la Uno come programmatore di una maga pur sempre oltre i 128k viene chiamata a scrivere

- altri programmatori, usbAsp o anche il parallelo, non soffrono di questi problemi (lascia stare il parallelo e compra un usbAsp da 5euro)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 29, 2013, 08:48 pm
Il problema over128k si risolve aggiornando la toolchain, il bootloader non viene toccato; nelle prove che facemmo con Astro per l'articolo usai la UNO per programmare l'ATmega2560 montato sul TiDiGino.  :)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: testato on Aug 29, 2013, 09:54 pm
quindi ricapitolando mi stai dicendo che attualmente con l'ide ufficiale non posso caricare il bootloader su una Mega usando arduino uno e mega come isp ?

il discorso della toolchain vecchia credevo influisse soltanto sul caricamento degli sketch via usb, cosa c'entra la toolchain nel momento in cui uso lo sketch ArduinoIsp via ICSP ?
E' quindi colpa dello sketch ArduinoIsp che, compilato con la vecchia toolchain, non riesce a scrivere oltre i 128K via ICSP ?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: PaoloP on Aug 30, 2013, 10:41 am
Se non ricordo male non era un problema di scrittura ma di indirizzamento oltre i 128K.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 30, 2013, 10:55 am

Se non ricordo male non era un problema di scrittura ma di indirizzamento oltre i 128K.

Sì, il problema NON riguarda il caricamento di sketch, via ISP o USB che sia, ma il loro funzionamento e, prima ancora, la loro compilazione, laddove sia necessario usare la flash oltre i primi 128 kB ed anche oltre i primi 64 kB, se non ricordo male, se i dati non vengono indirizzati correttamente.
Test, ma perché invece di fare chiacchiere e "supposte" :D al vento non ti leggi le 5 paginette dell'articolo che abbiamo pubblicato sul n.165 della Rivista? L'articolo perlatro lo abbiamo reso libero sul blog (http://blog.elettronicain.it/2012/04/05/arduino-full-memory/); quegli articoli si rifacevano all'uso dell'IDE 1.0.0 che aveva il problema della velocità dell'ArduinoISP, infatti troverai citata ed usata la versione "automatica" di Leo, oggi non serve più, le nuove versioni hanno corretto il problema. Buona lettura. ;)
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: testato on Aug 30, 2013, 02:18 pm
Ricordavo l'articolo, l'ho riletto per ripasso, ma le domande restano le stesse.
L utente qui si lamenta del non riuscire a caricare il bootloader via icsp. Il bootloader è un file.hex, non viene compilato, viene solo scritto nella flash, per questo non capisco cosa centra il problema del compilatore. Lunico sw che viene chiamato in causa durante un caricamento voa Icsp è avrdude
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 30, 2013, 02:24 pm
SICURAMENTE i problemi che sta avendo non c'entrano nulla con la questione che hai "riesumato", e questo è quanto, inutile insistere su questa strada, vedrai che alla fine, seguendo correttamente le istruzioni, tutto riuscirà.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: testato on Aug 30, 2013, 02:41 pm
Mica ho riesumato io, siete voi che avete messo in mezzo dubbi su BL e bug 128kB  :)

Purtroppo non ho 2 mega per fare un test
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 30, 2013, 05:12 pm

Mica ho riesumato io, siete voi che avete messo in mezzo dubbi su BL e bug 128kB  :)

Purtroppo non ho 2 mega per fare un test

sì sì, hai perfettamente ragione, sono io che ho fatto casino con l'altro Topic, quindi scusami.
C'è una affermazione di Leo che non mi convince e riguarda il bootloader della mega che non sarebbe in grado di fare upload maggiorni di 128kB, non ne ho notizia, se fosse vero bisognerebbe a questo punto capire se la cosa è legata al solito problema di compilazione, nel qual caso si risolverebbe automaticamente con l'upgrade della toolchain, forse semplicemente ricompilando il bootloader.
Io ho una MEGA ma il mio tempo è ormai ufficialmente sotto 0. =(
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Aug 30, 2013, 06:17 pm
Neanch'io ho una Mega per provare per cui non so dirti molto di più.
Il bootloader potrebbe essere capace di scrivere lo sketch oltre i 64 kB, perché ragionandoci sopra... lui dovrebbe passare i dati al circuito integrato nel micro che si occupa della scrittura materiale sulla Flash. Quindi è il micro che materialmente mette i dati sulla Flash. Ma per sapere in che pagina scrivere, dovrà essere istruito per fare questo, ma gli indirizzi li dovrebbe ricevere da avrdude. Io non ho approfondito la scrittura su Flash via ISP per cui mi fermo qui. Magari tu Michele, che hai studiato a fondo la cosa per il tuo programmatore, ne sai più di me.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: cece99 on Aug 30, 2013, 07:51 pm
Io ho una Mega 1280 se volete...
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 30, 2013, 08:58 pm
No, purtroppo non ho studiato il comportamento a livello di registri. Possiamo solo andare per intuito e logica. Partiamo dalla via bootloader. Il problema non è l'upload e quindi l'IDE non c'entra ed il booloader nemmeno. Questo posso dirlo con certezza in quanto la questione all'epoca nacque perché mi contattarono alcuni dei partecipanti al contest di Elettronica In sul TiDiGino che lamentavano comportamenti strani dei loro firmware (tutti diversi, era proprio lo scopo del contest), regolarmente caricato, e quei firmware a mia memoria occupavano intorno ai 120-130k; qualcuno disse che disattivando alcuni moduli tutto andava meglio ma riattivandoli e disattivandone altri tutto andava ancora bene, segno che era proprio un problema di memoria e non di programmazione. Loro avevano su TDG un mega2560 con bootloader "originale" Arduino perché la stessa TDG era una rielaborazione del TDG in chiave di collegamenti GPS, UMTS, GPRS, ecc. Questo lascia un solo colpevole, se non sbaglio, il compilatore, il quale non dava alcun errore in fase di compilazione ma, evidentemente, sbagliava la "traduzione" in assembly (è questo l'hex, vero? abbiate pietà per qualche strafalcione); a questo bisognava sommare una questione puramente tecnica che Astro mi spiegò e che inserimmo nell'articolo, riguardante la corretta allocazione dei dati rispetto al programma, e questo era qualcosa che però dipendeva esclusivamente dal programmatore (v. articolo per i particolari...). Se ora passiamo all'ISP comprendiamo ben facilmente come la tecnica non c'entri assolutamente nulla visto che fondamentalmente la differenza tra seriale e ISP consiste nel fatto che la prima viene autorizzata e pilotata dal bootloader mentre la seconda è gestita da ArduinoISP; la differenza sostanziale sta nel fatto che nella seriale non c'è il chip erase preventivo. Alla fine tutto rimane a carico del compilatore e, se non sbaglio, l'aggiornamento della toolchain va proprio a toccare qualcosa che riguarda la fase di compilazione (correggetemi se sbaglio).

A tal proposito ho fatto un ragionamento circa il fatto che inviando uno sketch con la tecnica ISP si sovrascrive il bootloader; questa è una deduzione che facemmo all'epoca, ignorando alcune cose che approfondimmo in seguito. Il bootloader non viene sovrascritto ma cancellato dal chip erase; e se disattivassimo il chip erase, lavorando con avrdude da riga di comando? a mio parere il bootloader resterebbe operativo e funzionante, specialmente se non tocchiamo i fuse, lasciando quelli arduiniani; ragioniamo: oggi sappiamo che i fuse riservano un'area al bl ma a partire dall'ultima locazione di memoria ed a scendere, in base all'impostazione del fuse high; quindi l'area "application", quella che accoglie lo sketch parte sempre da $0000. Se usiamo un micro con i fuse di Arduino UNO, avremo gli ultimi 512 B riservati al bootloader, se carichiamo su questo micro, mediante ISP standard il bootloader e poi carichiamo uno sketch qualsiasi (max 32k - 0,5k) via avrdude e disattivando il chip erase, metterei la mano sul fuoco che il chip piazzato su Arduino Uno funzionerebbe a meraviglia.

Che ne dite di tutto ciò?
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: testato on Aug 30, 2013, 09:49 pm
sul discorso che si puo' non far cancellare il bootloader sono daccordo, ed ho fatto prove in tal senso quando approfondii il criptico uso del bootloader da avrdude via usb, per fare cose non previste dall'IDE, se ricordi feci test di lettura flash, lettura eeprom, copia flash incluso bootloader, ecc ecc. poi mi spostai sull ICSP e ricordo di aver verificato che si puo' tranquillamente scrivere uno sketch via ISP sia senza perdere il bootloader (basta che lo sketch non invada il suo spazio), si che si puo' ripristinare in un solo colpo bootloader e sketch.

Sul discorso compilatore anche concordo, INfatti se e' vero che con l'ide si puo' scrivere uno sketch via ICSP, ed in questo caso il compilatore entra in campo, nulla centra quando e' il bootloader ad essere scritto via ICSP. Il BL e' gia' compilato e viene preso e sbattuto in flash da avrdude
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 30, 2013, 11:51 pm
Perfetto, grazie della conferma, era un'analisi che avevo fatto da tempo e volevo provarla, ma ora sono certo che è così. Riguardo il bootloader, la sua funzione non ha nulla a che vedere con la problematica over 128k, come detto svolge solo un paio di funzioni ed al massimo fornirà 'indirizzo iniziale $0000 di allocazione meoria per lo sketch in arrivo dalla seriale; proprio perché non entra nelle operazioni di compilazione lo tiene alla larga dalle problematiche.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Aug 31, 2013, 10:08 am
1) confermo: solo il chip erase cancella tutte le celle della memoria del micro; senza chip erase, la programmazione avviene solo per le pagine effettivamente da scrivere, tutte le altre non vengono toccate. Questo è fatto per evitare di riscrivere celle di Flash non interessate dal processo, in modo da non intaccare il loro numero di riscritture. Questo comporta che se il chip aveva uno sketch di 2048 byte scritto sopra ed io ne spedisco uno di 1024 senza chip erase, dal 1025° byte in poi sul chip resta scritto il vecchio sketch (anche se poi il codice dell'ultimo non ci accede). Ciò vale anche per il bootloader, che infatti è in fondo alla Flash. Oltretutto in un'area di memoria che, se non esplicitamente cancellata, è protetta da scritture accidentali dai fuse. Quindi si può spedire anche un firmware di 32 kB esatti ma gli ultimi 256 byte, senza un chip erase, non saranno materialmente scritti perché andrebbero sull'area protetta del bootlader: il risultato sarebbe uno sketch che ad un certo punto dà errori durante l'esecuzione perché manca l'ultimissima parte.
2) l'analisi di Michele conferma quanto da me supposto, ossia che la scrittura avviene correttamente ma che poi è il codice compilato male dal compilatore incapace di usare il 3° byte indirizzi (RAMPZ) per cui i salti a dati oltre i 64 kWord non funzionano.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: menniti on Aug 31, 2013, 10:57 am

Il problema è che stia usando un qualcosa (Arduino UNO con sketch ArduinoISP?) che non riesca a scrivere oltre la barriera dei 128K di Flash. Siccome il bootloader sta nella parte più alta della memoria, il programmatore DEVE per forza passare oltre i 128K. Magari scrivendo il suo sketch  tale limite non lo supera e l'errore non si presenta.

Quindi era per sapere che versione di Arduino usava e capire quale fosse il bootloader sopra caricato.

Tutta la discussione era nata da questa affermazione; oggi siamo arrivati alla conclusione che il problema non dovrebbe essere questo, visto che un eventuale problema riguarderebbe solo l'utilizzo della memoria da parte dello sketch e non la collocazione di quest'ultimo in fase di upload, men che meno del bootloader che, direttamente, non gestisce dati di alcuna natura. Però, se ragioniamo in termini di ArduinoISP come sketch, allora esso potrebbe essere affetto dal problema, ma in questo caso basterebbe l'aggiornamento della toolchain no?
Sono ragionevolmente sicuro di aver caricato il bootloader sull'Arduino MEGA ADK, via ISP, usando Arduino UNO, quando ho aggiornato la Guida, però non potrei giurarlo né ho tempo in questo periodo purtroppo.
Title: Re: Upload Sketch su Arduino Mega 2560 da rete o via SD
Post by: leo72 on Aug 31, 2013, 11:08 am
Purtroppo, non ho una Mega ed i miei sono ragionamenti.
Non posso provare praticamente le cose.