2.5. Ça marche pôôô
Si cela ne fonctionne pas, tout dépend de l'étape à laquelle on détecte un problème :
2.5.1. Chargement du sketch ArduinoISP
Ce cas ne devrait pas arriver. Il faut avant tout vérifier que l'on utiliser comme PROGRAMMATEUR une carte qui fonctionne, en chargeant un sketch Blink par exemple.
Si le problème persiste, la cause peut être :
- câble USB défectueux
- carte défectueuse
- bootloader absent
- mauvais choix du port série
- etc.
Voir cet article :
Problèmes de téléversement
2.5.2. Chargement du bootloader
Si le programmateur refuse de charger le sketch le problème provient certainement d'un défaut de branchement du connecteur ICSP :
Si un programmateur du genre USBASP est utilisé, s'assurer du bon sens de branchement du connecteur ICSP. Attention ce connecteur n'est pas soudé dans le même sens sur une UNO ou sur une NANO.
Si le branchement a été fait à l'envers, que l'on se rassure, ce n'est pas destructeur.
Si une carte ARDUINO est utilisée comme programmateur, vérifier et revérifier les connexions. remplacer éventuellement les fils DUPONT.
2.5.3. Vérification
Après avoir chargé le bootloader, si l'on rencontre un problème de chargement d'une application quelconque, cela peut avoir pour origine le même problème qu'en 2.5.1. Chargement du sketch ArduinoISP.
Il y a une cause possible supplémentaire : avoir sélectionné le mauvais port série, en particulier avoir sélectionné le port de la carte PROGRAMMER en croyant avoir choisi le port de la carte TARGET ce qui revient à charger le sketch Blink dans la carte PROGRAMMER.
Dans ce cas, recommencer depuis le début.
2. Cas particulier : l'ARDUINO NANO
Comme on l'a dit précédemment la NANO a un historique perturbé et elle a été équipée de deux bootloaders différents :
- atmega (old bootloader)
- optiboot (new bootloader)
Lorsque l'on commande des cartes NANOs chez de revendeurs différents, on peut très bien à la longue se retrouver avec dans ses tiroirs des cartes "Old Bootloader" et des cartes "New Bootloader".
Dans ce cas il est possible, si l'on trouve cette situation ennuyeuse, d'harmoniser ses cartes.
Un deuxième cas de figure peut se présenter : le bootloader a été corrompu et il faut le recharger. Cela arrive ...
Il suffit donc de refaire l'opération décrite au paragraphe 2. Le chargement.
On sélectionnera dans Outils :
- Type de carte : Arduino Nano
- Processeur :
- ATmega328P si l'on désire charger le nouveau bootloader
- ATmega328P (Old Bootloader) si l'on désire charger l'ancien
Ensuite : menu Outils / Graver la séquence d'initialisation.
Une fois que la manipulation a été testée avec succès sur la première carte, il est très rapide de la répéter sur 10 ou 20 exemplaires.
2.1. Aïe Aïe Aïe
Cela ne se passe pas comme prévu. Le chargement du bootloader affiche un vilain message pas sympathique du tout :
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
Erreur lors de la gravure de la séquence d'initialisation.
Explication : beaucoup de cartes NANO sont équipées d'un microcontrôleur ATMEGA328PB au lieu d'un ATMEGA328P et avrdude ne reconnaît pas la signature(0x1e9516 au lieu de 0x1E950F).
Il convient donc de forcer le chargement avec l'option -F comme dit dans le message, autrement dit : avec l'option -F avrdude ne vérifiera pas la signature.
Mais comment faire ?
Il existe certainement d'autres méthodes, mais l'utilisation d'avrdude en ligne de commande est une option facile.
Comment récupérer cette ligne de commande ?
La première chose à faire est d'afficher les préférences :
Menu Fichier / Préférences :
Afficher les résultats détaillés pendant :
cocher "téléversement"
Cocher "compilation" peut être également utile si l'on désire plus de diagnostic pendant la compilation des sketches.
A partir de ce moment il va falloir considérer le type de système d'exploitation installé sur la machine.