1) Pourquoi voudrait-on réinstaller le firmware?
- Parce que le module ne fonctionne pas, ou a cessé de fonctionner correctement (ça m'est personnellement arrivé, et j'ai ressuscité mon module récalcitrant par cette méthode).
- Parce qu'on possède un ancien module muni d'un firmware désuet
- Parce qu'on a programmé l'ESP8266 (par exemple avec l'IDE Arduino) mais nous voulons remettre le module dans son état initial (afin d'envoyer à l'ESP8266 des commandes AT à partir d'un autre microcontrôleur, par exemple).
Notez qu'il existe plusieurs catégories différentes de firmware: le "firmware AT" est le plus classique; c'est celui qui fait en sorte que l'ESP8266 répond aux commandes AT. Mais il existe aussi un firmware permettant de programmer l'ESP8266 avec le langage LUA, et un autre pour le programmer en micropython.
2) Télécharger le logiciel et le firmware
Il existe pour Windows un certain nombre de "firmware flashers", c'est à dire des logiciels spécialement conçus pour réinstaller le firmware de l'ESP8266. Parmi ceux qui sont disponibles, celui-ci m'a semblé particulièrement facile à utiliser. Le lien mène à un répertoire Google Drive que vous pouvez le télécharger au complet en cliquant sur le bouton situé en haut de la fenêtre qui prend la forme d'une flèche pointant vers le bas.
Une fois le fichier zip téléchargé, vous le décompressez sur votre disque rigide (l'application ne requiert pas d'installation particulière, il s'agit d'un simple fichier exécutable intitulé "esp8266_flasher.exe").
Ensuite, il faut trouver une version récente du firmware. J'ai trouvé la mienne à cet endroit (un autre répertoire Google drive).
J'ai téléchargé le fichier intitulé "AI-v0.9.5.0 AT Firmware.bin".
3) Brancher l'ESP8266 à l'ordinateur
Si ce n'est pas déjà fait, on branche l'ESP8266 à l'ordinateur au moyen d'un convertisseur USB - UART, ou au moyen d'une carte Arduino Uno comme je l'ai fait dans mes articles précédents. La pin GPIO0 de l'ESP8266 doit être reliée à GND lors de son démarrage, pour le mettre en mode "mise à jour du firmware".
Le schéma ci-dessous montre le circuit que j'ai utilisé.
4) Réinstallation du firmware
Ensuite, on démarre l'application "esp8266_flasher.exe".
On clique sur le bouton "Bin" et on localise le fichier du firmware (dans mon cas, c'était "AI-v0.9.5.0 AT Firmware.bin"), on remplace "COM1" par le nom du port série occupé par notre ESP8266 (j'ai utilisé l'IDE Arduino pour le connaître), et on clique finalement sur le bouton "Download" pour débuter la gravure du firmware.
Si tout se passe correctement, la fenêtre du logiciel affiche les messages "Connecting...", puis "Erasing flash...", suivi d'un grand nombre de lignes indiquant à quelle adresse il est en train d'écrire, ainsi que le pourcentage déjà enregistré.
Finalement, les mots "Leaving..." et "Failed to leave Flash mode" dont il ne faut pas s'inquiéter: la mise à jour du firmware a réussi!
Si vous obtenez plutôt le message "Connecting...failed to connect.", vérifiez si votre ESP8266 est adéquatement branché (avec la pin GPIO0 branchée à GND). S'il ne se passe rien, ça pourrait être parce que le port série est incorrectement identifié.
Yves Pelletier (Twitter, Facebook)