Introduction

Dans ce cours nous allons essayer de résoudre votre problème de téléversement sur votre carte arduino. Nous allons traiter une partie des cas les plus probables et leurs résolutions, en partant du plus simple au plus complexe.

Attention !!

Ce cours traitera seulement des problèmes avec la carte arduino, c’est-à-dire des problèmes de téléversement. Il se peut que cela soit votre programme qui n’est pas correcte et que donc cela vous entraîne des erreurs lors du téléversement. Pour savoir si c’est votre carte ou votre code qui pose problème, vous devez cliquer sur le bouton vérifier, ou bien compiler afin que le logiciel vérifie votre code. Si celui ne reconnait pas d’erreur, alors c’est surement un problème de téléversement, et c’est ce que nous traitons dans cet article.

Si vous c’est un problème de compilation, cela peut venir des librairies utilisées, ou bien du code en lui-même, mais nous ne traitons pas de ce sujet dans ce cours.

Dans ce cours, les solutions aux problèmes sont proposées du plus simple au plus compliqué. A la fin du cours vous aurez une solution pour le bootloader qui pose beaucoup soucis sur les cartes arduino. Le bootloader est un petit programme dans la carte arduino uno qui permet de démarrer le système d’exploitation contenue dans celle-ci.

Carte Arduino reconnue, mais problème lors du téléversement

avrdude: Version 6.3-20190619

         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                    : COM3

An error occurred while uploading the sketch

         Using Programmer              : arduino

         Overriding Baud Rate          : 115200

avrdude: ser_open(): can’t open device “\\.\COM3”: The system cannot find the file specified.

avrdude done.  Thank you.

Ce problème peut venir de plusieurs choses :

Première solution : Oublie de brancher la carte Arduino

Une erreur que l’on peut tous faire est tout simplement d’oublier de brancher la carte arduino par mégarde, n’oublier donc pas de la brancher pour pouvoir la téléverser sur votre carte arduino.

Deuxième solution : Oublie du choix du port

Après avoir branché votre carte arduino, n’oubliez pas de choisir le port correspondant à votre carte, sinon le logiciel Arduino ne pourra pas téléverser votre programme.

Port Grisé : Carte non reconnue dans Arduino Ide

Si votre port est grisé c’est que votre carte n’est pas reconnue par le logiciel Arduino IDE. Pour cela il faut aller voir si la carte arduino est reconnu dans les périphériques de l’ordinateur. Vous allez maintenant dans périphérique de l’ordinateur et voir si votre carte arduino apparaît. Pour cela vous devez aller dans panneau de configuration, puis périphérique, puis périphérique et imprimante.

Vous devriez arriver là-dessus :

Si dans Non spécifié vous n’avez pas la carte arduino affiché comme nous, alors vous devez passer au sous problème 1 sinon allez directement au sous problème 2.

Si votre carte apparait, vous pouvez directement passer au cas b.

Sous Problème 1 : Carte arduino ne s’affiche pas dans le gestionnnaire

  • Un problème qui peut arriver c’est que votre câble entre la carte arduino et l’ordinateur ne fonctionne pas bien. Si vous avez d’autre câble, essayez avec un autre pour voir si cela règle votre souci.

 

  • Il n’existe pas de copie illégale de carte arduino, néanmoins certaine copie chinoise ne sont pas bien reconnue par l’ordinateur car il possède un usb différent de celle original. Notamment les cartes Elegoo peuvent avoir ce problème. Ces cartes possèdent un usb Ch340G et l’on doit installer un driver pour que cela fonctionne. Pour cela vous devez télécharger un petit driver usb chinois : http://www.wch.cn/download/CH341SER_EXE.html

 

Une fois le logiciel installé, vous pourrez retrouver votre carte arduino dans le logiciel Arduino IDE.

Sous Problème 2 : Carte arduino s’affiche dans le gestionnaire

Comme on peut voir sur l’image, la carte arduino s’affiche dans le gestionnaire mais aucun port COM lui est spécifié.

Le problème ici c’est que nous n’avons pas le bon pilote pour la carte Arduino. On doit donc installer manuellement le bon pilote :

Comme on peut voir ici dans l’encadré, nous avons la carte arduino uno qui apparaît. On peut donc faire un clic droit et mise à jour du pilote.

On fait rechercher sur son ordinateur puis on suit les étapes proposées :

On choisit dans la liste de pilote disponible dans l’ordinateur, ou bien si vous en avez téléchargé un sur votre ordinateur vous pouvez l’ajouter ici.

On choisit le modèle carte arduino uno si c’est le modèle de votre carte.

Si cela ne fonctionne pas et que le port est toujours grisé, il y a peut-être un problème avec un bootloader de votre carte arduino uno. Vous pouvez alle voir la solution sur le problème de bootloader à la fin du cours.

avrdude : butterfly_recv() : programmer is not responding

Il se peut que en regardant l’erreur de téléversement, vous obteniez une erreur de ce type avec à la fin avrdude: butterfly_recv(): programmer is not responding :

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53

         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 IDE for Microduino\hardware\tools\avr/etc/avrdude.conf”

 

         Using Port                    : COM5

         Using Programmer              : avr109

         Overriding Baud Rate          : 57600

         AVR Part                      : ATmega32U4

         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    20     4    0 no       1024    4      0  9000  9000 0x00 0x00

           flash         65     6   128    0 yes     32768  128    256  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 : butterfly

         Description     : Atmel AppNote AVR109 Boot Loader

 

Connecting to programmer: .

avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_send(): write error: sorry no info avail

avrdude: butterfly_recv(): programmer is not responding

Il existe plein de source différente à ce problème, c’est pour cela que j’ai découper ceci en sous problème. N’hésitez à regarder tous les sous problèmes afin de voir celui qui vous pose soucis.

Sous problème 1 : Mauvais Choix du type de carte

Si vous obtenez cette erreur c’est que vous avez mal choisit le type de carte que vous avez branché. En effet, par défaut le logiciel sélectionne une carte arduino uno mais si vous avez un autre type de carte alors il va falloir lui indiquer ici :

Si toute fois vous ne trouveriez pas votre carte ou bien que cela ne fonctionne toujours pas, vous avez le board manager qui vous permet d’installer une nouvelle version de la carte, notamment si votre logiciel arduino est ancien :

Le board manager vous permet aussi de télécharger un pilote si vous avez une carte qui n’est pas répertorier par le logiciel Arduino IDE.

Sous Problème 2 : Problème Reset carte Arduino

 Si vous obtenez cette erreur alors vous pouvez appuyer sur le bouton reset de la carte Arduino juste après avoir cliqué sur le bouton téléversement.

Sous Problème 3 : Bootloader d’ancienne génération

Dans les anciennes version d’arduino ide, vous pouvez changer le type de processeur, dans outils puis carte, vous pouvez changer par ATmega328P(old bootloader).

Enfin si tout ceci ne fonctionne pas, vous devez régler les problèmes avec le bootloader.

Solution Générale : Problème avec le Bootloader

Une erreur qui arrive fréquemment, c’est le bootloader de la carte qui est corrompu sur votre carte arduino.

Pour cela vous aurez besoin d’une carte arduino uno qui est bien reconnue par l’ordinateur. On va en effet téléverser le bootloader de la carte qui fonctionne vers la carte qui ne fonctionne pas.

Voici la liste de composant dont vous avez besoin :

  • Une carte Arduino qui fonctionne et celle non fonctionnel
  • Un condensateur de 10 ⴏf
  • 6 fils

Première étape : connecter votre carte arduino fonctionnel à l’ordinateur et téléverser dessus le programme Arduino ISP que l’on peut retrouver Fichier puis Exemple Et Arduino ISP :

Deuxième étape : Vous pouvez débrancher votre carte arduino et faire le montage suivant avec l’ancienne carte arduino :

 

Avec la carte de gauche la carte fonctionnelle et la carte de droite celle non fonctionnel.

Troisième étape Branchez votre carte arduino uno fonctionnel à votre ordinateur. Ouvrez le programme Blink. Dans le type de carte vous devez mettre la carte que vous voulez refaire vivre.

Voici le programme Blink :

Pour cette étape vous n’aurez pas à téléverser le programme avec le bouton téléversement. Vous devez plutôt choisir le mode Arduino ISP dans Programmeur :

Enfin toujours dans outils vous devez choisir Graver la séquence d’initialisation :