Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Programmation > Apprendre à coder > Programmation Arduino > Flasher le bootloader d’une carte Arduino

Flasher le bootloader d’une carte Arduino

mercredi 8 janvier 2014, par Gilles O.

J’ai tout cassé ma belle carte Arduino Leonardo (un clone en fait), elle ne fonctionne plus. Elle n’est plus reconnue sur le port USB, c’est la cata. C’était ma première en plus, elle avait une certaine valeur sentimentale...

J’en ai parlé à Julien qui m’a dit qu’il restait une ultime chance : tenter de reprogrammer le logiciel de démarrage (bootloader) dans la puce de la carte, on ne sait jamais... Et là il plonge la main dans un carton et me sort un programmateur USB pour AVR de derrière les fagots.

Après quelques petits tâtonnements, nous avons pu faire revenir à la vie le petit Leonardo. Voici la procédure pour y arriver si vous souhaitez faire pareil, également avec une autre version d’Arduino. Nous avons utilisé une installation sous Windows. Pour une configuration Linux, il faudra peut-être adapter un peu.

  • Repérez d’abord le répertoire d’installation de l’IDE Arduino, nous avions pour exemple "C :\Program Files\Arduino". On le notera [Arduino] pour plus de facilité.
  • Branchez le programmeur USB sur un port et connectez-le au port ISP (2 x 3 points mâles sur le bord le moins long). Attention au sens du connecteur : il n’y a pas de détrompeur. Pour s’en sortir, repérez le fil rouge et branchez-le comme sur la photo. Repérez le port de communication sur lequel le programmeur est connecté, nous c’était COM30. On peut le faire via le gestionnaire de périphériques ou bien en regardant le menu "Port" de l’IDE Arduino.
  • Copiez le fichier [Arduino]\hardware\tools\avr\etc\avrdude.conf dans C :\Program Files\Arduino\hardware\tools\avr\bin
  • Récupérez le .hex à flasher dans [Arduino]/hardware/arduino/bootloaders, le nôtre s’appelle Leonardo-prod-firmware-2012-12-10.hex dans le sous-répertoire catilina et nous l’avons renommé leonardo.hex
  • Ouvrez une fenêtre de commande sur le répertoire puis tapez les commandes :
> cd C:\Program Files\Arduino\hardware\tools\avr\bin"
> C:
  • Lancez la commande d’écriture adaptée au programmateur stk500 choisi (mySmartUSB) :
> avrdude -p m32u4 -P COM30 -c stk500 -U flash:w:leonardo.hex"

Sur une Arduino classique, il faudra changer le nom de la puce : m32u4 est sur les cartes Léonardo, mais c’est un m328 ou un m168 sur les autres cartes (liste des puces supportées à rechercher dans le fichier de configuration avrdude).

Le programme cause un peu et en 30 secondes, l’affaire est conclue. Et moi je suis content, mon Leonardo est de nouveau opérationnel !


Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.