PYBStick-Arduino

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Le mode DFU

DFU : Device Firmware Upgrade

PYBSTICK26 contient un microcontrôleur gérant la mise à jour de son firmware par DFU. Le mode DFU est un mode spécial activable au démarrage de la plateforme (en pressant le bouton Boot0) permettant ainsi téléverser un nouveau firmware (logiciel) par l'intermédiaire de l'interface USB.

Côté fichier, il s’agit d’un format de fichier utilisé pour la programmation de firmware, contenant en plus du code binaire (fichier .bin), ainsi que l’adressage par bloc et checksum (fichier .hex), une information concernant la cible pour lequel le firmware est destiné afin d’éviter toute incompatibilité et blocage du microcontroleur avec un fichier inapproprié.

Côté cible, un bootloader DFU permet d’interroger le microcontrôleur et de déterminer son numéro de série, les différents espaces programmable et leur taille respectives, en plus de programmer les zones mémoires programmables du composant (flash, bits de sécurité, etc).

PYBSTICK26 intègre un bootloader DFU.

Il existe deux solutions logicielles supportant le téléversement de données vers un microcontroleur en mode DFU.

  • La plus légère est le logiciel libre dfu-utils, un logiciel open-source développé notamment lors du projet de téléphone opensource OpenMoko en 2007. Le logiciel fonctionne aussi bien sous Windows 10 que Linux.
  • Le second logiciel, beaucoup plus lourd et édité par STMicroelectronics est STM32CUBE Programmer. Ce logiciel prend en charge tout les modes de programmation (sonde de debug, bootloader, mode DFU). "STM32CUBE programmer" vient en remplacement du logiciel Dfuse demo v3.0.5, également développé par STMicroelectronics, mais qui n’est plus support sous Windows 10.

Dans le cas d’une utilisation de PYBSTICK26 avec l’environnement de développement Arduino, l'opération de téléversement de croquis correspond au téléversement d'un nouveau firmware sur le microcontrôleur activé en mode DFU. Il sera donc nécessaire pour chaque téléversement de placer PYBSTICK26 en mode DFU.

Installation de dfu-utils

Sous Windows 10

Il n’existe pas d’installateur à proprement parler sous Windows 10. Il suffit de décompresser l’archive dfu-util-0.9-win64 (ou dfu-util-0.9-win32) sur le lecteur contenant Windows 10. C’est un logiciel qui s’exécute en mode console.

Pour plus de praticité, il est possible d’ajouter le chemin du dossier contenant dans la variable $PATH (l’exécutable se trouve à la racine du répertoire), ce qui permettra de pouvoir invoquer la commande à n’importe quel endroit de votre arborescence disque.

Sous MAC

Nous ne disposons pas de MAC pour documenter cette section. Cependant, MAC semble supporté dfu-utils.

Sous Linux

La majorité des distributions Linux à base Debian (Ubuntu, LinuxMint, etc) sont livrées avec dfu-utils pre-installé. Sinon, il est généralement disponible dans les dépôts de la distribution.

PYBStick sous Arduino

PYBStick-Arduino-01.png

La carte dispose de 17 E/S numériques numérotées de 0 à 16, encadrées en bleu. Les six premières E/S sorties sont également capable de conversion analogique/numérique pour une plage de tension de 0 à 3,3.

Passage en mode DFU

Pour pouvoir programmer la PYBStick à partir d'Arduino IDE, il est nécessaire que la PYBStick soit en mode DFU.

Le passage en mode DFU s’effectue clé débranchée. Veuillez à éjecter proprement le lecteur associé à PYBSTICK26 le cas échéant.

Brancher PYBSTICK sur le port USB de votre micro-ordinateur tout en maintenant appuyé le bouton B, c’est à dire le bouton à votre droite lorsque PYBSTICK26 est en position verticale, connecteur USB en haut.

Sous Linux

Pour vérifier sous Linux que PYBSTICK26 est bien en mode DFU, il suffit d’ouvrir un terminal et d’exécuter la commande suivante :

> dmesg | tail -n 6

Vous devriez obtenir un résultat similaire où il est clairement indiqué que le microcontrôleur est en mode bootloader comme l'indique la capture ci-dessous:

PYBStick-Arduino-10.png

vous pouvez également exécuter dans une fenêtre terminal la commande :

> dfu-util -l

Vous devriez obtenir un résultat similaire à celui-ci mentionnant clairement la présence d'un périphérique en mode DFU :

PYBStick-Arduino-11.png

Sous Windows

Pour vérifier sous Windows que PYBSTICK26 est bien en mode DFU, il suffit d’ouvrir le gestionnaire de périphériques (click droit sur le bouton "Demarrer | gestionnaire de périphériques").

Allez ensuite dans le menu affichage et cocher l’entrée "Afficher les périphériques cachés".

PYBStick-Arduino-20.png

Vous pouvez maintenant descendre dans l’arborescence pour localiser les périphériques de type "Universal Serial Bus".

PYBStick-Arduino-21.png

Installation de Putty

Putty est un logiciel opensource gratuit fonctionnant sur plusieurs plateformes (Windows 10 dans notre cas) et permet entre autre de générer une console ANSI/VT100 sur voie série.

Sous Windows

Le logiciel putty peut être téléchargé ici (en version 32 ou 64 bits selon votre version de Windows)

Download-icon.pngTéléchargez Putty pour Windows

L’installation en elle-même ne pose pas de difficultés particulière, passons au paramétrage.

Paramétrage de Putty pour la console Micropython de PYBSTICK26

Pour le paramétrage du profil console REPL Micropython, il est nécessaire de connaître le port série attribué par Windows. Branchez PYBSTICK26 sur un port USB. Attendez une dizaine de secondes le temps que Windows installe un pilote standard de profil CDC (Communication Device Class) sur votre machine, un port COM que l’on associe souvent à un port série.

Ensuite, il faut faire un tour dans le gestionnaire de périphériques de Windows 10 pour déterminer quel numéro de port COM a attribué Windows 10.

Pour y accéder, faites un click bouton droit de la souris sur le bouton Démarrer, puis sélectionner ‘Gestionnaire de Périphériques’. Descendez dans l’arborescence jusqu’à la section Ports (COM et LPT) et double-cliquez dessus pour la développer.

PYBStick-Arduino-30.png

Le port de PYBSTICK26 se cache derrière l’instance "Périphérique série USB (COMx)". Dans l’exemple ci-dessus, ce sera le COM8.

S’il existe plusieurs instances, vous pouvez lever le doute de la manière suivante : cliquer avec le bouton droit sur l’instance "Périphérique série USB (COMx)" et sélectionner "Propriétés" dans le menu. Une nouvelle fenêtre s’ouvre. Sélectionner alors l’onglet "Détails" puis dans la liste déroulante "Propriété" le point "Description du bus signalée"

PYBStick-Arduino-31.png

Si la valeur est "Pyboard Virtual Comm Port in FS Mode : Bingo ! Vous tenez le port COM de votre PYBSTICK26. Dans cet exemple, il s’agit du port COM8.

Fort de cette information, vous pouvez maintenant paramétrer Putty pour accéder à la console Python REPL.

  • Démarrez Putty avec un double-clic sur son icône. La fenêtre ‘PuTTY Configuration’ s’ouvre alors.
  • Sélectionnez le bouton radio "Serial",
  • puis renseignez le port COM au niveau du champ "Serial line", dans notre cas ‘COM8’.
    Le champ ‘Speed’ n’a ici pas d’importance.

Je vous conseille vivement de sauver cette session en renseignant le champ ‘Saved Sessions’ puis en cliquant sur le bouton ‘Save’.

Ici, le paramétrage, que j’ai appelé 'PYBSTICK26', fait maintenant partie des paramétrages sauvegardés. Cela permettra de rappeler le paramétrage en cliquant sur l’entrée PYBSTICK26 dans la liste des sauvegardes puis en cliquant sur le bouton "Load" pour récupérer le paramétrage.

PYBStick-Arduino-32.png

Vous pouvez maintenant cliquer sur le bouton "Open" pour lancer votre fenêtre terminal REPL Python. Une fenêtre s’ouvre, vide. C’est normal car un petit programme est en cours d’exécution, il fait 'battre' dans un mouvement de va-et-viens les LEDs orange et bleue de PYBSTICK26 et n’est pas verbeux.

Vous pouvez arrêter son exécution en tapant dans la console les touches CTRL+C.

PYBStick-Arduino-33.png

Il apparaît alors des informations sur la console. Ici, le programme "main.py" a été interrompu à la ligne 39 par une interruption clavier, le fameux CTRL+C.

Micropython réalise alors un "soft reset" et reboote en affichant son entête. Vous pourrez à tout moment réaliser un "soft reset" avec la combinaison de touche CTRL+D. Vous pouvez commencer à travailler sur la console et pourquoi pas en invoquant la commande help() comme mentionné dans l’entête…

Sous Linux

Linux dispose de plusieurs logiciels terminal. Putty peut néanmoins être installé depuis les dépôts officiels de la distribution.

L'utilisation est similaire à la version Windows à l'exception près que le nom du périphérique série est sensiblement différent.

Cela à été décrit dans notre tutoriel relatif à la Pyboard est identique pour la PYBStick.

L'invite REPL

Tlogo-micropython-REPL.jpg

Obtenir l'invite en ligne de commande REPL et utilisez PyBoard en mode terminal.

 

Installer l'environnement Arduino

Installer Arduino IDE

Pour démontrer la programmation de la PYBStick avec Arduino, nous allons installer Arduino IDE 1.8.12.

Download-icon.pngTéléchargez ArduinoIDE (arduino.cc)

L’installation de l’environnement de développement Arduino ne présente pas de difficulté particulière, je ne la détaillerai pas.

Installer le support STM32

stm32duino permet d'ajouter la bibliothèque Arduino_Core_STM32 dans l’interface Arduino.

stm32duino est présent sur le web sous deux formes :

Le support des micros STM32 sous Arduino est assez simple et se joue normalement en trois temps :

  • installation du programme STM32CUBE programmer (s’il n’est pas déjà installé)
  • ajout de la bibliothèque Arduino_Core_STM32
  • ajout de la bibliothèque de cartes micro STM32, dans sa version 1.8.0

Support des cartes Garatronic (Installation Manuelle)

En attendant l'intégration des cartes Garatronic dans le dépôt officiel de stm32duino github.com/stm32duino/BoardManagerFile pris en charge par STMicroelectronics, il sera nécessaire d'installer le support des cartes manuellement sur votre ordinateur.


L’installation de STM32CUBE programmer est assez simple autant dans la version Windows que Linux (Mac?).

Garatronic à archivé le zip à cette adresse que vous pouvez télécharger depuis son site internet :

Download-icon.pngen.stm32cubeprog_v2-4-0.zip

Le fichier zip qui contient le programme pour les trois versions d’OS fait 164Mo.

L’ajout de la bibliothèque Arduino_Core_STM32 se fait sous l’interface Arduino, menu "Fichier | Preferences" :

PYBStick-Arduino-40.png

Ajouter la chaîne suivante (débutant par une virgule séparatrice) à la liste "URL de gestionnaire de cartes supplémentaires".

,https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

Note: si ce champ est vide alors il sera nécessaire de supprimer la virgule.

Cliquez sur OK puis redémarrez Arduino IDE (nécessaire pour faire la mise-à-jour de la configuration).

Ouvrir le "'gestionnaire de carte" par l'intermédiaire du menu "Outils | Type de carte | Gestionnaire de cartes" :

PYBStick-Arduino-41.png

Dans le "Gestionnaire de carte", saisir le préfixe STM dans le champ de recherche. A noter que la liste déroulante du "Type" doit être position sur "Tout" :

PYBStick-Arduino-42.png

Vous pouvez maintenant sélectionner "STM32 Cores" en version 1.8.0 et cliquer sur Installer. La bibliothèque Arduino_Core_STM32 (contenant les bibliothèques STM32, compilateur ARM, etc) ainsi que les descripteurs de cartes sont alors téléchargés.

Ce téléchargement peut prendre plusieurs minutes.

Il faut maintenant effectuer deux opérations pour ajouter la carte "PYBSTICK26 Lite" dans la définition des cartes STM32 supportées.

Ajouter la carte PYBSTICK26 Lite - Etape 1:

Ecraser le fichier boards.txt par le fichier disponible boards.txt ici.

Le fichier boards.txt à écrasé peut être trouvé dans le répertoire suivant:

  • Sous Windows: C:\Users\$USER\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0
  • Sous Linux : /home/$USER/.arduino15/packages/STM32/hardware/stm32/1.8.0

L'archive PYBSTICK26_LITE.zip (cliquer pour télécharger) doit être décompressé dans le répertoire suivant:

  • Sous Windows: C:\Users\$USER\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\variants\
  • Sous Linux: /home/$USER/.arduino15/packages/STM32/hardware/stm32/1.8.0/variants/

Après avoir redémarré l'environnement Arduino IDE, vous pouvez sélectionner:

  1. PYBSTICK26 lite dans le gestionnaire de cartes
  2. STM32CubeProgrammer (DFU) pour la méthode de programmation DFU

PYBStick-Arduino-43.png

Ressources

Où acheter