USB ISP – mise à jour des firmwares –  enfin!

USB ISP – mise à jour des firmwares – enfin!

Voici un nouvel épisode de la saga du tricopter. Le but de l’opération était pourtant simple : mettre à jour le firmware (micro programme de la carte) de la carte de stabilisation du tricopter en utilisant avrdude et une interface adaptée.

La carte KK2.0 est assez ouverte et bidouillable, on trouve les plans facilement, il y a un connecteur ISP, ce connecteur est documenté, et une communauté qui fournit des firmware avec le code source, avec des alternatives comme OpenAero . Un logiciel (java) est conseillé pour faire la mise à jour : kkmulticopterflashtool. Comprendre l’outil et ses (nombreuses) options est une tâche en soi, j’ai rapidement basculé à utiliser avrdude directement en ligne de commande. Il y a une vrai culture de la bidouille dans ce hobby, des firmware en pagaille : pour la carte de stabilisation, pour les cartes de contrôle du moteur (ESC), pour les télécommandes, etc.

Deux échecs avant de réussir :

  • FAIL : utilisation d’une arduino avec le sketch ArduinoISP
  • FAIL : achat et utilisation d’un dongle USB USBASP (premier prix sur ebay)
  • WIN : utilisation d’une carte BusPirate comme programmeur USB ISP

Première étape : utiliser une nappe IDE sur la carte KK 2.0 :

KK 2.0 avec une nappe IDE

KK 2.0 avec une nappe IDE

FAIL : ArduinoISP

Arduino avec ArduinoISP et breadboard

Arduino avec ArduinoISP et breadboard

J’avais bien vu qu’il y avait une solution toute « facile » avec un dongle USBASP, mais je me disait que ayant une Arduino sous la main, ça devrait être faisable (et pédagogique). Il y a un tutoriel tout prêt pour transformer son arduino en programmeur ISP. Hop, je monte le circuit avec quelques LEDs pour faire indicateur de progression et d’erreur.

Arduino ArduinoISP - KK 2.0

Arduino ArduinoISP – KK 2.0

Mais c’est l’échec, je passe des heures à lire des forums et des listes de discussion pour essayer de comprendre pourquoi ça ne marche pas. Je tombe finalement sur des retours d’expérience disant qu’il s’agit de la version spécifique de la carte Arduino que j’ai qui ne peut pas faire ce mode là.

FAIL : USB ASP ISP

Face à l’échec sous Arduino, je cède à la tentation d’acheter une clef USB qui utilise le circuit libre USBASP. De nombreux fournisseur vendent ça pour moins de 5$ sur ebay, et j’ai déjà lu des avertissement sur le fait que certains ne marchent pas. Je tente quand même, et pouf, ça ne marche pas.

cheap USBASP - KK 2.0

cheap USBASP – KK 2.0

Malgré de nombreuses tentatives (avec des fils différents, avec un hub USB, sur plusieurs ordinateurs, etc), c’est l’échec. avrdude plante sur :

avrdude: warning: cannot set sck period. please check for usbasp firmware update.

Je finis par accuser le matériel et m’en remettre à une autre solution (et quand j’arriverais à le faire sur la carte KK 2.0, je pourrais envisager d’essayer de mettre à jour le firmware de cette clef USB, la poule et l’œuf tout ça, tout ça.)

WIN : BusPirate AVR programmer

Le père Noel m’ayant gâté de quelques « jouets » électroniques, je peux continuer l’aventure. Je tente donc le coup avec la BusPirate trouvée sous le sapin (livré au mois de février! Je ne citerais pas le fournisseur). La documentation de la BusPirate a une page spéciale pour la programmation AVR. Je connecte donc les câbles correspondants et lance quelques commandes avrdude.

BusPirate - KK2.0 - cables

BusPirate – KK2.0 – cables

Et WIN! Ça peut paraître tout bête pour certains mais cette petite barre de progression qui marche enfin fut une vrai joie!

    BusPirate AVR programming KK2.0

 Outro

Les communications « série » ont toujours été source de problème dans mes projets, mais au fur et à mesure, je comprend mieux et donc arrive à trouver des solutions. D’ailleurs maintenant que j’ai une configuration qui fonctionne, j’envisage de réessayer la version Arduino, ou au moins mieux comprendre ce qui ne marchait pas.

Prochain article dans la série : la mise à jour de la télécommande bas de gamme avec un firmware open source digne de ce nom.

Afficher les commentaires Masquer les commentaires

One thought on USB ISP – mise à jour des firmwares – enfin!

  1. Anonyme dit :

    Je sais que c’est un peu tard pour repondre. Mais le probleme avec l’USBasp n’est pas un problème, c’est simplement un warning et il arrive a chaque fois (c’est dû au fait que l’USBasp ne peut pas faire varier la fréquence du SCK). Normalement le programme se charge correctement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.