ESP Easy : flasher le firmware avec esptool.py sur ESP8266 (GitHub)

ESP Easy est très facile à flasher sur Windows à l’aide de l’utilitaire d’installation contenu dans le dépôt du projet. Si vous êtes un utilisateur Linux (PC, Raspberry Pi, Orange PI…) ou macOS, il va falloir utiliser esptool.py déjà présenté dans ce tutoriel. Dans ce tutoriel, nous allons installer sur firmware sur une Wemos D1 Mini, mais la méthode s’applique également à tous les ESP8266 NodeMCU (attention, certaines cartes nécessitent d’être en mode bootload avant de pouvoir flasher le firmware).

Installer Python et esptool.py

Avant de commencer, vérifions que la version 2.7.x de python est bien installée. Ouvrez le Terminal et exécutez Python. Si Python est installé, le shell doit démarrer. Saisissez exit() pour quitter le shell.

Si Python n’est pas installé sur votre machine, installez le en vous rendant ici.

Pour installer esptool.py, le mieux est de laisser Python s’en charger de manière à ce que toutes les dépendances soient installées en même temps.

en cas de difficulté, vous pouvez aussi exécuter python -m pip install esptool  ou pip2 install esptool.

Sur Windows

Lancez PowerShell (qui permet d’exécuter les commandes Unix). Placez vous dans le répertoire d’installation d’esptool, par exemple Documents et lancez l’installation d’esptool (et des dépendances) comme sur macOS ou Linux.

Vous pouvez maintenant appeler esptool.py depuis n’importe ou. En effet, il a été installé dans le répertoire des exécutables par défaut de Python (C:\Python27\Scripts).

Sur macOS

Suivez ce tutoriel pour macOS.

Flasher le firmware ESP Easy sur une Wemos D1 Mini

Maintenant que tout est prêt, nous allons pouvoir lancer l’installation. Dans un Terminal, placez vous dans le répertoire d’ESP Easy. Vous pouvez le récupérer directement depuis GitHub ici ou le cloner à l’aide de la commande

La commande esptool.py pour flasher la mémoire flash d’un ESP8266 est de la forme suivante

On doit donc lui passer les paramètres suivants :

  • Le port série sur lequel est branché l’ESP8266. Sur moaOS ou linux, exécutez la commande  ls /dev/tty.*. Sur Windows, exécutez mode dans l’invite de commande
  • mode (-fm ou –flash_mode) :  dio par défaut
  • size (-fs ou –flash_size) : 32m pour 4MB
  • nodemcu-firmware : le chemin vers le binaire à flasher. Ici ESPEasy_Rxxx_xxxx.bin

Ce qui donne par exemple pour une Wemos D1 Mini (4MB)

Il possible d’indiquer d’autres paramètres

  • baud (–baud) : la vitesse de transfert. En cas de problème, il ne faut pas hésiter à la diminuer à 115200 bauds par exemple.
  • after (–after) : permet de faire un reset (no_reset, hard_reset ou soft_reset) après l’opération de flashage.

Comment flasher ESP Easy sur une autre carte ESP8266 NodeMCU

esptool.py est un utilitaire à tout faire pour toutes les carte ESP8266 du marché. Il faudra adapter la commande en passant les paramètres qui correspondent à votre carte. Ca fonctionne également pour la nouvelle génération ESP32. Pour cela, il faudra aller piocher dans la documentation d’esptool.py qui se trouve ici. esptool.py envoi un autre

Les cartes NodeMCU, WeMOS, HUZZAH Feather, Core Board, ESP32-WROVER-KIT sont en mesure de passer en mode bootload, pour les autres il faudra appliquer la méthode classique déjà expliquée dans ce tutoriel.

Pour récupérer les caractéristiques de la carte, exécutez la commande esptool.py --port COMx flash_id

Bonus : comment déterminer la taille de la mémoire d’un ESP8266

C’est un problème récurrent car la taille de la mémoire n’est jamais notée sur les cartes. Si vous avez plusieurs modèles, vous risquez rapidement d’avoir des problèmes. Voici comment faire pour déterminer la taille de la mémoire à partir de d’identifiant et du fabricant.

Tout d’abord, allez sur cette page qui liste les fabricants de puces ESP8266 https://code.coreboot.org/p/flashrom/source/tree/HEAD/trunk/flashchips.h

Ne vous occupez pas du fabricant, ici “ef”. Faites une recherche sur l’id du device, ici 0x4016. Vous allez trouver les lignes suivantes :

  • #define AMIC_A25LQ032                          0x4016 /* Same as A25LQ32A, but the latter supports SFDP */
  • #define ESMT_F25L32QA                         0x4016
  • #define GIGADEVICE_GD25Q32            0x4016 /* Same as GD25Q32B */
  • #define SPANSION_S25FL132K              0x4016
  • #define WINBOND_NEX_W25Q32_V  0x4016 /* W25Q32BV; W25Q32FV in SPI mode (default) */

Par convention, il faut prendre les 2 derniers chiffres du code sans s’occuper des lettres éventuelles qui se trouvent derrière (aucune idée de la signification pour le moment). Ici, on prendra donc 32. Toujours par convention, ce chiffre indique la quantité de mémoire en megabits, ce qui fait donc 32Mb, soit 4Mo (un convertisseur en ligne).

Pour le moment, c’est la seule méthode que j’ai pu trouvé. Si vous avez plus facile, n’hésitez pas à partager dans les commentaires.

Cas particulier de la Wemos d1 mini Pro 16MB

En théorie, l’ESP8266 est capable de supporter jusqu’à 128Mb (16Mo) de mémoire flash QSPI. C’est le cas de la nouvelle Wemos d1 mini Pro. Si on cherche 0x4018, le numéro de device, on va par exemple trouver GIGADEVICE_GD25Q128. Dans ce cas, on prendra 128. Après conversion, on obtient bien 16Mo (128Mb). On dira plutôt qu’il faut prendre les 2 ou 3 derniers chiffres du code dans s’occuper des dernières lettres

Et sur Windows ?

Sur Windows, tout fonctionne à l’identique. esptool étant un script Python, le programme est cross-plateforme. Il faudra simplement modifier le port de destination. Sous Windows il sera de la forme COM1, COM2… Pour connaître le port COM sur lequel est branché l’ESP8266, exécutez la commande mode. La commande permet de récupérer beaucoup plus de paramètres que la commande sous Linux.

Rien ne fonctionne ! Effacez la mémoire

Si vous rencontrez des problèmes  d’installation, vous pouvez tenter d ‘effacer la mémoire avec la commande erase_flash.

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous dés inscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Projets DIY - Domotique et objets connectés à faire soi-même