Flasher MicroPython sur un ESP32
C'est connu, les plateformes ESP32 sont nettement plus puissante que les ESP8266. Donc pourquoi ne pas flasher MicroPython sur un ESP32.
En guise d'exemple, nous allons flasher MicroPython pour ESP32 sur un Feather ESP32 Huzzah et sur un ESP32-DEVKIT-LIPO d'Olimex.
ESP32-DEVKIT-LIPO d'Olimex et Feather ESP32 Huzzah d'Adafruit |
Pour flasher la plateforme il est préférable d'utiliser l'utilitaire esptool .
Installer esptool
esptool est un utilitaire Python. Le plus simple reste encore d'utiliser une machine Linux comme un Raspberry-Pi pour intaller pip.
pip install esptool
Il peut être nécessaire d'installer esptool en mode administrateur (en utilisant un sudo).
esptool étant normalement compatible avec python3, il est également possible d'utiliser pip3 pour installer esptool.
Télécharger le firmware
Il faut ensuite télécharger le dernier firmware MicroPython stable pour ESP32. Celui-ci est disponible dans la section téléchargement de MicroPython.org / esp32.
A l'heure de l'écriture de cet article la dernière version stable est v1.13 .
Téléchargez le fichier binaire de la version v1.13 puis placez le dans le répertoire courant.
Brancher l'ESP32 sur votre ordinateur Linux / Raspberry-Pi
Une fois l'ESP32 brancher, celui-ci apparaît dans la liste des périphériques, souvent sous le nom /dev/ttyUSB0 ou /dev/ttyUSB1 .
En consultant les logs de débogages du kernel avec ma commande dmesg, il est possible d'identifier exactement le périphérique en question.
Dans le cas de ESP32-DEVKIT-LIPO d'Olimex son convertisseur USB-Série ch341 est attaché au périphérique /dev/ttyUSB0
Effacer la Flash de l'ESP32
La première chose à faire est d'effacer le contenu de la mémoire Flash.
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
Flasher le firmware MicroPython
La commande permet de flasher le firmware à partir de l'adresse 0x1000 (faudrait pas écraser le bootloader de l'ESP32)
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-idf3-20200902-v1.13.bin
Session REPL (ligne de commande)
Voila, si tout s'est bien passé alors MicroPython est présent sur votre ESP32.
Comme le convertisseur USB-Série n'est pas capable d'exposer le système de fichier une fois connecté sur le PC, il est vivement conseillé d'utiliser un outil comme RShell (transfert de fichiers + terminal) ou Putty (terminal)
Test simple
Sur un ESP32-DEVKIT-LIPO d'Olimex les numéros de GPIO sont indiqués sous la carte. Brancher une LED sur le GPIO19 par l'intermédiaire d'une résistance de 1 KOhms (pour limiter le courant).
Il est possible d'allumer et éteindre la LED à l'aide de quelques ligne de code dans une session REPL
MicroPython v1.13 on 2020-09-02; ESP32 module with ESP32 Type "help()" for more information. >>> >>> from machine import Pin >>> led = Pin( 19, Pin.OUT ) >>> led.value( 1 ) # Allumer LED >>> led.value( 0 ) # Eteindre LED
Et voilà, le reste du fonctionnement de la plateforme MicroPython, des multiples bus et autre est identique aux autres plateformes MicroPython.
Bon amusement
Écrire un commentaire