[résolu] Help !! Problème d'upload de code vers un arduino mega2560 :(

Bonjour,

J'ai un arduino MEGA2560 que je programme depuis l'application arduino 1.6.10 (x64) sous linux (ubuntu 16.04 x64).

Je n'arrive pas à uploader vers la carte des code de plus de environ 30ko. l'upload plante avec le message suivant:

Le croquis utilise 31 080 octets (12%) de l'espace de stockage de programmes. Le maximum est de 253 952 octets.
Les variables globales utilisent 4 677 octets (57%) de mémoire dynamique, ce qui laisse 3 515 octets pour les variables locales. Le maximum est de 8 192 octets.
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout

Avec des codes de moins de 30ko tout va bien, l'upload fonctionne correctement mais au delà ça foire.

Que ce passe-t-il? Je n'ai aucune idée pour avancer...

Merci beaucoup!

---------- EDIT -------------

EN cherchant un peu, j'ai fait le test décrit ici: http://forum.arduino.cc/index.php?topic=73748.0 (connexion mise de la carte en reset et connexion de TX0 et RX0, envoi de caractère via le moniteur série et retour de ceux ci!). Ça fonctionne (je m'en doutais un peu vu que l'upload de petit code fonctionnait, mais la vérification)

Salut! A tu configuré le bon arduino dans le logiciel ?

raptor9511:
Salut! A tu configuré le bon arduino dans le logiciel ?

Oui, type de carte "arduino/genuino mega or mega2560" et processeur "atmega2560 (mega2560)", le port aussi est bon.
GetBoardInfo me renvoi "BN: Arduino/Genuino Mega or Mega 2560
VID: 2341
PID: 0010
SN: 741363339323518192B0"

Dans préférence j'ai mis afficher les résultats détaillé de téléversement, et ça donne ça:

Le croquis utilise 31 080 octets (12%) de l'espace de stockage de programmes. Le maximum est de 253 952 octets.
Les variables globales utilisent 4 677 octets (57%) de mémoire dynamique, ce qui laisse 3 515 octets pour les variables locales. Le maximum est de 8 192 octets.
/home/thom/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino2/bin/avrdude -C/home/thom/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino2/etc/avrdude.conf -v -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build0bf1e56af09ecc36694918771c97d5c6.tmp/FermFlex.ino.hex:i 

avrdude: Version 6.3, compiled on Jun 14 2016 at 17:17:01
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/thom/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino2/etc/avrdude.conf"
         User configuration file is "/home/thom/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         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 "/tmp/build0bf1e56af09ecc36694918771c97d5c6.tmp/FermFlex.ino.hex"
avrdude: writing flash (31080 bytes):

Writing | ##############################################avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout

On voit que la phase writting fonctionne jusqu'à quasi 100% puis plante (avrdude: stk500v2_ReceiveMessage(): timeout)....

bonjour,
quel code uplaodé?
pourquoi s'entêter a utiliser des versions buggées?

installation faite comment?
lien, manip, privilèges?

infobarquee:
bonjour,
quel code uplaodé?

j’ai mis tout mon code dans le zip joint… c’est un peu gros pour rentrer dans le topic, mais je ne pense pas que le problème vienne de mon code, qui compile bien.

pourquoi s’entêter a utiliser des versions buggées?

Quelles versions buggées ?? j’ai la dernière version de l’IDE arduino … récupérée fraichement sur le site officiel arduino.cc.
Les librairies que j’utilise sont des librairies standard de la bibliothèque arduino et mise à jour régulièrement (enfin quand il me le demande!)

installation faite comment?
lien, manip, privilèges?

pour ce qui est de l’installation, extraction dans le répertoire utilisateur de l’archive du site officiel arduino.cc. puis lancement du script install.sh présent.

mon utilisateur a globalement les privilèges d’accès au materiel. J’ai fait un essai (c’est mal) de faire la même chose en super utilisateur et c’est pareil, ça plante au même moment.

Je reprécise que j’ai uploader des code un tout petit peu plus petit et que ça fonctionne sans problème. L’upload se fait bien et le code fonctionne sur la board mais là…

Je ne voie pas quel info donner de plus…

FermFlex.zip (30.5 KB)

Erreur détectée !!!

Après de multiples recherches.... diagnostique...

C'est cette ligne qui faisait bugguer la transmission:

Serial.println(" !!! Attention Lecture Seule !!! ");

en la remplacant par:

Serial.println(" aa! Attention Lecture Seule !aa ");

je n'ai plus aucun soucis (tout le reste du code est rigoureusement identique).