MicroPython.Pyboard.mise-a-jour
Téléchargement
Vous pouvez télécharger la dernière version du FirmWare depuis http://micropython.org/download/
Faites attention à bien sélectionner le FirmWare correspondant à la version de votre PyBoard |
Préparatifs
Voici comment configurer votre carte PyBoard pour qu'elle passe en mode DFU (Device Firmware Update = mise-à-jour du micrologiciel du périphérique)
- Pour commencer:
- Mettez votre PyBoard hors tension
- Déconnectez tout de votre pyboard (y compris la carte SD s'y vous en avez placé une).
- Connectez la broche DFU sur la broche 3.3V, elles sont l'une à côté de l'autre (voyez l'image ci-dessous).
- Connectez maintenant cotre pyboard sur votre ordinateur via USB.
Le pontage DFU doit rester en place durant toute l'opération de mise-à-jour. |
Windows vs Linux
Utilisateurs Windows
Sur Windows vous aurez besoin d'installer a pilote spécial pour rendre REPL série de la PybBoard disponible. Malheureusement, ce processus est un peu compliqué si vous utilisez Windows 8 (ou supérieur) étant donné que vous devez rebooter en "Safe Mode" (mode sans échec) pour autoriser l'installation de pilotes non signés.
Voyez le document suivant: Micro-Python-Windows-setup.pdf (anglais).
Utilisateurs Linux
Si vous êtes un utilisateur Linux, vous pouvez poursuivre la lecture de ce tutoriel.
Il détaille l'installation d'un nouveau FirmWare sous Linux.
Installer dfu-util
Utilisez votre gestionnaire de paquets (package manager) pour installer dfu-util.
Ce paquet est largement disponible mais pas installé par défaut sur les systèmes Linux.
Mise-à-jour USB (Flashing)
Lister les périphériques DFU
Vous pouvez lister les périphérique USB supportant le mode DFU en utilisant l'argument -l:
Voyez ci-dessous un exemple typique du résultat que vous devriez obtenir avec une PyBoard en mode DFU.
$ sudo dfu-util -l dfu-util 0.5 (C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. (C) 2010-2011 Tormod Volden (DfuSe support) This program is Free Software and has ABSOLUTELY NO WARRANTY dfu-util does currently only support DFU version 1.0 Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg" Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=1, name="@Option Bytes /0x1FFFC000/01*016 e" Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e" Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=3, name="@Device Feature/0xFFFF0000/01*004 e"
Backup
Si vous le désirez, vous pouvez faire une copie de sauvegarde du FirmWare actuellement présent dans votre PyBoard (cela n'est possible que depuis dfu-utils 0.7).
Les précédentes versions du FirmWare MicroPython sont également disponible sur http://micropython.org/download/.
$ sudo dfu-util --alt 0 --upload pyboard-original.dat -s:524288 (...) Starting upload: [#######] finished!
Un seul périphérique DFU autorisé!
Si vous avez d'autres périphériques supportant le mode DFU actuellement connecté sur votre ordinateur (par exemple une "Apple Magic Mouse"), vous recevrez probablement le message suivant:
More than one DFU capable USB device found, you might try '--list' and then disconnect all but one device
Vous aurez alors besoin de déconnecter tous les autres périphériques, ou spécifier le périphérique sur lequel vous désirez faire la mise-à-jour en utilisant le paramètre --device ou -d avec dfu-util.
Par exemple: sudo dfu-util --alt 0 -D pybv10-2014-05-19-v1.0.1-24-g5cdff5f.dfu -d 0483
Téléverser le nouveau FirmWare
C'est maintenant le moment de téléverser le nouveau FirmWare sur votre PyBoard:
$ sudo dfu-util --alt 0 -D pybv10-2014-05-19-v1.0.1-24-g5cdff5f.dfu (...) done parsing DfuSe file
Attendez que le programme ait terminé ses opérations.
Quitter le mode DFU
Lorsque dfu-util à terminé la mise à jour:
- Déconnectez votre PyBoard du lecteur USB (mise-hors-tension)
- Retirez le pontage DFU (entre les broches DFU et 3.3v).
Voila, c'est dans la boite :-).
Mise-à-jour UART
Le port USB, bien que le plus facile, n'est pas la seule interface permettant de faire de mise-à-jour via DFU.
En effet, le microcontrôleur en mode DFU scanne tout une série de périphériques (USB, UART, I2C) à la recherche d'un interlocuteur. Si cela est totalement inutile dans le cas de la PyBoard, d'autres cartes comme la PYBStick-STD-NUSB (sans USB soudé) est un cas pratique de mise-à-jour via UART.
Dans le cas de la PYBStick-STD-NUSB (sans USB soudé), c'est les ports PA9/PA10 en 1ere UART et PD2/PD3 en deuxième UART. On n'a aucun des deux.
Lister les périphériques DFU
x
Backup
x
Un seul périphérique DFU autorisé!
Si vous avez d'autres périphériques supportant le mode DFU actuellement connecté sur votre ordinateur (par exemple une "Apple Magic Mouse"), il est préférable de les débrancher de l'ordinateur pour faciliter les opérations
Téléverser le nouveau FirmWare
C'est maintenant le moment de téléverser le nouveau FirmWare sur votre PyBoard:
xxx
Quitter le mode DFU
Lorsque dfu-util à terminé la mise à jour:
- Déconnectez votre carte (mise-hors-tension)
- Retirez le pontage/activation DFU (entre les broches DFU et 3.3v).
Voila, c'est dans la boîte :-).
Restaurer un ancien FirmWare
Si vous avez besoin de restaurer le firmware original (par exemple: celui de la mise-à-jour USB), utilisez la commande suivante:
$ sudo dfu-util --alt 0 -D pyboard-original.dat -d 0483:df11 -s 0x8000000
Alternative: pydfu
Mentionné par Damien Georges, il existe un programmateur DFU alternatif totalement écrit en Python.
Vous pourrez le trouvez sur: https://github.com/micropython/micropython/blob/master/tools/pydfu.py.
Il nécessite le paquet PyUSB .
Pour utilisez pydfu, saisissez la commande suivante:
$ python pydfu.py -u <firmware.dfu>
qui copie un fichier FirmWare sur la PyBoard. pydfu est beaucoup plus rapide que dfu-util.
TCela restaure tout, y compris le système de fichier sur la flash interne.
Source: Micro Python Python for microcontrollers écrit par/written by Damien P.George
Traduit par Meurisse D. pour MCHobby.be - Translated by Meurisse D. for MCHobby.be
Traduit avec l'autorisation de micropython.org - Translated with the authorisation of micropython.org
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.