Encore un probleme de MEGA2560 Upload

Bonjour a tous,
J'utilise un SainSmart MEGA 2560 AVR ATmega2560 ATMEGA8U2 pour detecter et compter les but au babyfoot. Tout fonctionnait bien jusqu'il y a 2 jours, lors d'une amelioration du code, le MEGA n'a plus accepté l'upload, alors, oui:

  • j'ai fait des recherches sur les forum
  • j'ai essayé de changer l'USB, le port
  • j'ai mis a jour le logiciel, le pilote
  • j'ai essayé le reset au bon moment ...

bref, tout ce que l'on trouve sur les sites.
Mais toujours le meme souci. Le MEGA fonctionne correctement avec le dernier code, mais je ne peux plus rien televerser dessus ...

Bref, les deux dernieres options sont:

  • changer le Bootloader
  • tout desouder et decoller, et racheter une MEGA ... super !!!

L'erreur affichee:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Bien connue ... oui mais comme toujours quand c'est connu, on ne trouve pas qq pour aider, mais seulement des "sujet deja traité sur forum" .... alors SVP, je demande de l'aide, pas un lien internet.

Pour changer le Bootloader, j'ai une UNO qui fonctionne, j'ai trouvé comment relier les cartes, et sur le site de Gammon, sure arduino_sketches/Atmega_Board_Programmer/ je trouve le code de bootloader_atmega2560_v2.h ... oui MAIS j'en fais quoi de ce code????
je le mets dans le logiciel Arduino et je le televerse dans le UNO ??? deja essayé mais le logiciel me dit qu'il y a des erreurs dans le code ...

Bref, je suis perdu ... HELP !!!!
Merci pour votre aide
Julien

vous avez essayé avec un câble USB différent? est-ce vraiment le même câble qu'avant? (pas juste un câble de chargement électrique)

vous avez essayé avec un ordinateur différent? (si vous avez accès à un autre)

je le mets dans le logiciel Arduino et je le televerse dans le UNO

c'est quoi l'erreur exacte?

L'erreur en entier:

"Le croquis utilise 5 076 octets (1%) de l'espace de stockage de programmes. Le maximum est de 253 952 octets.
Les variables globales utilisent 192 octets (2%) de mémoire dynamique, ce qui laisse 8 000 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_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Une erreur est survenue lors du transfert du croquis"

J'ai essayé avec un autre cable (mais le meme cable fonctionne avec la UNO), je n'ai qu'un seul ordi, mais si ca venait de l'ordi, comment l'autre UNO pourrait encore communiquer?

Merci
Julien

Pour info, je n'ai pas non plus de "!!!" dans mon code ... j'ai aussi essayé de televerser un autre code plus ancien .. .rien de marche

Et envoyer un code minimal comme Blink ne fonctionne pas non plus ?

Si ça fonctionne avec le uno sur cet ordi avec le même cable branché sur le même port usb avec le même IDE c'est sur que ça semble indiquer un pb de l'autre côté du cable

bien entendu vous avez bien choisi la carte Mega et pas Uno comme Target ?

oui, meme un code blink ne passe pas.
Et oui, lorsque je choisis la carte Uno, ca passe, mais si je la debranche, connecte la Mega, et bien sur selectionne la mega dans le logiciel (ce qui marchait tres bien avant), la MEGA s'allume sur le dernier code qui est passé mais aucun nouveau televersement est possible ...
Oui, ca me rend fou .... :wink:

Pas cool - est ce que le PC voit la carte arduino dans l'explorateur USB?

Oui, le PC voit le Port ouvert, et voit tres bien la carte MEGA identifiee, aucun souci ou point d'interrogation. Le pilote est le bon, et il est a jour

Une dernière vérification pour éliminer un pb série (au moins dans un sens): est-ce que le;programme qui existe en ce moment dans la mémoire du mega envoie des infos de débug sur le port série par hasard? et si oui est-ce que vous les recevez bien? Juste pour avoir une idée si au moins l'une des parties du port série fonctionne et n'a pas endommagé par des parties endiablées de babyfoot...

Si ça marche, effectivement il semble que tout indique que c'est le bootloader qui ne répond pas.

Vous souhaiter re-flasher votre mega en utilisant le UNO comme ISP (je suppose que vous n'avez pas d'ISP dédié) c'est ça et vous n'y arrivez pas c'est ça? Et vous avez lu cela en anglais ou un résumé décrit ici en français, liés aux commentaires de Nick G. comme dit l'auteur "à utiliser en dernier recours, à vos risques et perils ;-D"

Quand vous faites cela par étape où est-ce que ça coince?

"est-ce que le;programme qui existe en ce moment dans la mémoire du mega envoie des infos de débug sur le port série par hasard?"
Alors, la, je suis bien incapable de repondre ... comment est-ce que je peux tester ca ?
Je fais tout avec le Port USB ...je n'ai pas la moindre idee sur un port Serie ...

Ah ben deja, le site en francais est BEAUCOUP plus clair que celui que j'avais trouve en anglais .... MERCI !!!

Bon, alors, va se poser un autre souci, quel est l'interet de connecter au pin 50-52 et pas d'utiliser les autres?
Ben oui, j'ai deja des cables sur les 50-52 ... y'a t-il moyen d'utiliser des autres ou non?

je croyais qu'on pouvait se mettre les les 10-12, mais je ne vois pas dans le code a quel endroit ces pin sont cités ...

Vous devez me prendre pour une bille ... mais je débute ... il faut bien commencer un jour ...

Et, non, rien n'a pu etre endommagé car je suis en phase de test ... presque a la fin du code, il fallait integrer les paves numeriques, les MotionSensor et les LED ...

Ah, une derniere petite question, en sus, je voulais ajouter un "bouton reset" afin de remettre le score a 0 si necessaire. Simplement un input de plus qui dit de remettre a zero. J'ai constate que le score se remettait a zero tout seul, et que la presence d'autre fils proches de celui du bouton reset extern semblait etre la raison. Est-ce qqchose de connu? L'influ electrique des fils environnant peut-il perturber le signal de tel sorte que le Arduino voit un Reset sans que le bouton ne soit appuyé, ou alors c'est plutot que j'ai eu un petit probleme de cablage? Merci :wink:

Pas de soucis on a tous débuté un jour - le forum est là pour aider justement ceux qui débutent ou même les experts ont besoin d'un avis sur comment aborder un problème

est-ce que le;programme qui existe en ce moment dans la mémoire du mega envoie des infos de débug sur le port série par hasard?"
Alors, la, je suis bien incapable de repondre ... comment est-ce que je peux tester ca ?
Je fais tout avec le Port USB ...je n'ai pas la moindre idee sur un port Serie ...

Le S dans USB ça veut dire série :slight_smile:
Les pins 0 et 1 de votre arduino sont connectées à l'USB que vous branchez dans votre PC

Bon, alors, va se poser un autre souci, quel est l'interet de connecter au pin 50-52 et pas d'utiliser les autres?
Ben oui, j'ai deja des cables sur les 50-52 ... y'a t-il moyen d'utiliser des autres ou non?

Là je n'ai pas une bonne nouvelle pour vous.. Pour être sûr qu'il n'y ait pas de perturbation vaut mieux TOUT débrancher de votre MEGA quand vous le connectez au UNO... Mettez des petits post-IT découpés autour des fils avec le N° de la PIN et débranchez tout...

Une fois que votre mega fonctionnera on pourra discuter du reste :slight_smile: faut sérialiser les pbs

Olala ... l'horreur ... tout decoller et desouder ... je vais m'amuser ... bon, je vais m'y mettre alors ...
Merci de votre comprehension.
Je vous recontacte quand j'aurai fait tout ca.
Merci encore

Bonjour,

Tu peux toujours essayer de programmer ta carte via l'ISP.

Pourquoi dessouder ? Vous avez soudé les fils directement sur la mega? En phase de proto il vaut mieux juste utiliser des fils que vous enfoncez dans les ports de la carte...

oui, alors, la, en fait, justement, j'etais deja en 2eme phase du coup. j'ai teste les detecteurs de mouvement, les pave numeriques, les LED, et tout ca qui marchait avec le code ... du coup, comme ca faisait une grosse salade de fils, et que ca marchait, j'ai desoude le bloc de pin de la MEga, et j'ai soude mes fils dedans, puis j'ai couvert de colle a chaud pour justement que ca ne bouge plus, dans la mesure ou je ne devais plus avoir a intervenir sur la MEGA, mais seulement sur le code, et sur l'installation des detecteurs sur le baby, mais ca c#est du cablage ... ben oui, tout marchait, jusqu'a ce que la MEGA elle-meme lache ....
pas de bol ... je pensais que au moins ca c'etait solide ...
bref ... il faut que je vire la colle chaude, puis que je desoude les fils ... youhou ... joie dans le coeur, larmes dans les yeux !!! :wink:

Kamill, merci, J-M-L m'a trouve une bonne explication sur ca ... c'est ce que je vais faire !

Je pense que J-M-L parlait de reflasher le bootloader. Moi je pensais plutot à transférer ton programme via l'isp (si le flashage du bootloader ne résoud pas le problème)
Dans l'ide arduino tu fais ça par croquis/télécharger avec un programmeur.

Ah pas cool... Ce que je fais généralement c'est une carte PCB intermédiaire

--> une plaque qui contient tous les fils soudés vers le monde extérieur et un bornier à vis pour que ce soit solide qui va vers ma carte arduino dans laquelle je ne soude rien.

Ensuite si je veux un truc autonome, je ne mets pas un arduino tout entier mais je fabrique un Arduino sur le PCB aussi avec le processeur, l'horloge etc.

Kamill, ca veut dire qu'il faut que j'achete un Arduino AVR ISP Programmeur que je connecte a ma MEGA pour faire passer le croquis?

Non, pas forcément, tu peux le faire avec un uno qui fait tourner le programme isp, comme pour flasher le bootloader