Dans ce tuto nous allons essayer de recenser toutes les sources possibles de problèmes pendant le téléversement d'une carte ARDUINO.
J'ai essayé de regrouper ici une certaine quantité de problèmes rencontrés sur le forum. Ce n'est certainement pas complet mais cela pourrait le devenir avec le temps.
1. Le principe
Lors du téléversement L'IDE ARDUINO affiche le message "Téléversement ...".
Ensuite les opérations suivantes s'enchaînent :
reset de la carte par le fil DTR de la liaison série
le bootloader de l'ARDUINO se met à l'écoute de la ligne série
l'IDE envoie le fichier .hex au bootloader
celui-ci extrait les données binaires de chaque message et les écrit dans la mémoire FLASH
le bootloader lance l'application
Trop de débutants confondent compilation et téléversement. Le code C n'est pas envoyé à l'ARDUINO tel quel, il est d'abord compilé pour fabriquer un fichier en langage machine, dépendant du processeur utilisé.
Dans un premier temps, l'IDE affiche "Compilation du croquis". S'il y a un problème dans votre code, le fichier .hex ne sera pas généré et le téléversement n'aura pas lieu.
Ensuite, si la compilation s'est bien passée, il affiche "Téléversement ...", et c'est à ce moment que les ennuis peuvent commencer.
2. Les drivers USB
Selon l'OS que vous utilisez, il vous faudra installer on non un driver pour le convertisseur USB / série implanté sur la carte.
Selon l'origine le convertisseur peut être de différents types :
FT232RL
CH340G
ATMEGA8 (anciennes version de UNO ou MEGA)
ATMEGA16U2
etc.
2.1. Windows
Il faut absolument identifier le convertisseur et utiliser le driver adapté. Pour une NANO par exemple, celui-ci est situé sous la carte.
Il y a beaucoup de tutos sur le WEB qui expliquent cette opération, CELUI-CI par exemple.
Si votre carte possède un convertisseur CH340G, il faut télécharger le driver ICI. Il y a aussi des tutos, dont CELUI-CI.
Après l'installation, en branchant la carte ARDUINO, un port série supplémentaire doit apparaître dans le "Gestionnaire de Périphériques".
En débranchant la carte le port doit disparaître.
2.2. LINUX
Les possesseurs d'un système LINUX n'auront pas à installer de driver, car la majeure partie de ceux-ci font partie de la distribution.
Il suffit de vérifier avec dmesg que le branchement de la carte ARDUINO provoque la création d'un nouveau port de communication.
[11319.753230] usb 2-1.1.1: new full-speed USB device number 12 using ehci-pci
[11319.846506] usb 2-1.1.1: New USB device found, idVendor=1a86, idProduct=7523
[11319.846512] usb 2-1.1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[11319.846515] usb 2-1.1.1: Product: USB2.0-Serial
[11319.846943] ch341 2-1.1.1:1.0: ch341-uart converter detected
[11319.848601] usb 2-1.1.1: ch341-uart converter now attached to ttyUSB1
A la déconnexion, avec dmesg vous verrez ceci :
[11484.934167] usb 2-1.1.1: USB disconnect, device number 12
[11484.934444] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[11484.934479] ch341 2-1.1.1:1.0: device disconnected
Il se peut que l'IDE ne parvienne pas à ouvrir le port par manque de privilèges. Suivez ces INSTRUCTIONS.
2.3. La suite
Tant que le port n'apparaît pas dans le "Gestionnaire de Périphériques" Windows ou dans les messages affichés par dmesg, c'est tout à fait inutile d'aller plus loin.
Cette étape est essentielle et obligatoire.