Problema caricare Firmware su arduino mega

Buon giorno a tutti,
io sono da un po' di tempo lavoro nel campo dell'elettronica e da qualche tempo mi sono appassinato al mondo di arduino.
Ho una discreta preparazione sull'elettronica parte hardware e una conoscenza di base quando parliamo di software, ho fatto alcuni programmi in C++ e in visual basic.

Veniamo ora al mio problema per il quale chiedo il vostro aiuto.
Ho scritto un programma che per visualizzare i dati sfrutta un display grafico 128x64dots basato sulla decodifica KS0108 e per quanto riguarda IDE la versione 1.8.9

Ora quando cerco di scaricare il programma in un arduino mega 2560, durante la fase di compilazione tutto risulta corretto, durante la fase di scarico invece succede il seguente errore
inizia a caricare e ad un certo punto si ferma e iniziano a presentarsi il seguente messaggio

stk500v2_ReceiveMessage(): timeout

avrdue: stk500v2_ReceiveMessage(): timeout

messaggio che contunua a ripetersi all'infinito.

Vi allego la schermata dell'errore e il listato da me scritto.

Per favore potete aiutarmi a capire dove probabilmente sbaglio?

grazie anticipatamente del vostro aiuto

main.ino (24.5 KB)

Ma se provi a caricare il solito blink, funziona tutto?

Si ho provato a caricare blink, DrawEllipse e altri senza problemi

se elimini le bitmap funziona il caricamento?

Si capirebbe meglio l'errore se facesti copia e incolla e non alleghi una foto.

Prova di dare un altro nome allo sketch main.ino.
Ciao Uwe

Ho provato ad eliminare le bitmaps e tutte le righe che le richiamavano ma ancora il caricamento fallisce, anche cambiando nome allo sketch il caricamento fallisce

Non riesco a postare il listato perchè quando tento di lanciarlo mi esce un errore

Hai collegato qualcosa ai pin 0 e/o 1?

1. Versione dell'IDE
2. Nelle preferenze (impostazioni) metti il segno di spunta per avere il dettaglio sia della compilazione che del caricamento
3. Compila (SENZA caricare) e copia ed incolla (possibilmente tra i tag CODE) il risultato finale della compilazione, dove di da quanto occupa il codice e quanto occupa di memoria statica
4. Cerca di caricare sulla scheda e quando va in errore, copia dalla finestra dell'IDE ed incolla qui (sempre possibilmente tra tag CODE) il messaggio di errore completo.
ed infine
5. MEGA originale o clone?

Guglielmo

La versione dell IDE è 1.8.9

Il mio mega è un clone

Il risultato della compilazione non riesco a postarlo con un copia e incolla perché mi esce l'errore che il messaggio supera i 9000 caratteri, lo allego come file txt

compilazione.txt (44 KB)

Se leggevi bene la mia domanda, la risposta per il punto 3. era:

Lo sketch usa 20762 byte (8%) dello spazio disponibile per i programmi. Il massimo Ë 253952 byte.
Le variabili globali usano 458 byte (5%) di memoria dinamica, lasciando altri 7734 byte liberi per le variabili locali. Il massimo Ë 8192 byte.

e quella per il punto 4:

vrdude: Version 6.3-20171130
 † † † † Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
 † † † † Copyright (c) 2007-2014 Joerg Wunsch

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

 † † † † Using Port † † † † † † † † † †: COM5
 † † † † Using Programmer † † † † † † †: wiring
 † † † † Overriding Baud Rate † † † † †: 115200
 † † † † 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
 † † † † † flash † † † † 65 † †10 † 256 † †0 yes † †262144 †256 † 1024 †4500 †4500 0x00 0x00
 † † † † † lfuse † † † † †0 † † 0 † † 0 † †0 no † † † † †1 † †0 † † †0 †9000 †9000 0x00 0x00
 † † † † † hfuse † † † † †0 † † 0 † † 0 † †0 no † † † † †1 † †0 † † †0 †9000 †9000 0x00 0x00
 † † † † † efuse † † † † †0 † † 0 † † 0 † †0 no † † † † †1 † †0 † † †0 †9000 †9000 0x00 0x00
 † † † † † lock † † † † † 0 † † 0 † † 0 † †0 no † † † † †1 † †0 † † †0 †9000 †9000 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 : Wiring
 † † † † Description † † : Wiring
 † † † † Programmer Model: AVRISP
 † † † † Hardware Version: 15
 † † † † Firmware Version Master : 2.10
 † † † † Vtarget † † † † : 0.0 V
 † † † † SCK period † † †: 0.1 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading input file "C:\Users\Massimo\AppData\Local\Temp\arduino_build_886709/prova.ino.hex"
avrdude: writing flash (20762 bytes):

Writing | ################################################avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout

... che entrano nei 9000 caratteri :wink:

Precisato questo direi che hai forse problemi con i programmi che occupano più di un certo numero di bytes di Flash, difatti, se ti carica correttamente il Blink, ma si blocca con questo da circa 20KB ... il problema è, ripeto forse, nella MCU fallata (... capita con alcuni cloni a basso costo in cui, a volte, le MCU sono di scarto).

Per isolare la cosa e toglierti il dubbio, prova con programmi mano mano più grandi e vedi se, arrivato ad una certa occupazione di Flash, con qualsiasi programma, ti da problema (non ha senso che lo dia solo con uno specifico programma, o c'è un problema di caricamento a partire da una certa cella di memoria o non c'è).

Guglielmo

al momento ti ringrazio molto appena possibile proverrò a fare quello che mi hai detto.

Quando avrò eseguite queste prove ti farò sapere.

Ancora molte grazie per la tuas cortesia e scusami se non sono stato preciso a darti le risposte a quello che mi chiedevi

Massimo

Brizzolato59:
... scusami se non sono stato preciso a darti le risposte a quello che mi chiedevi

... ci mancherebbe, nessun problema :smiley: :smiley: :smiley:

Guglielmo