jeudi 27 août 2015

Réinstallation du firmware de l'ESP8266 (Windows)

Ayant de la suite dans les idées, je vous propose aujourd'hui un quatrième article consécutif portant sur le module WiFi ESP8266.  Cette fois, je vous indique une méthode pour réinstaller le firmware AT dans l'ESP8266.

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   (TwitterFacebook)

1 commentaire:

  1. Bonjour, je suis enseignant auprès d'enfants handicapés dans une école sur Marseille. Nous utilisons dans la classe un vidéo-projecteur. J'ai fabriqué l'année dernière un système de boitiers de vote pour faire fabriquer des QCM à mes élèves. J'ai suivi le modèle du site http://svtalacarte.free.fr/?p=25
    En quelques mots il sagit de démonter un clavier usb et d'associer chaque bouton poussoir à une touche puis de relier le tout avec des fils rj45 (car 8 fils et donc parfait pour les 4 choix de vote sur chaque boitier).
    Désormais je cherche à améliorer le système en faisant disparaitre les fils tout en cherchant évidement un coût minimal car cet argent, je vais devoir le mettre de ma poche...
    Auriez-vous des idées pour m'aider dans mon projet ?
    Pour préciser chaque boitier contient 4 boutons poussoirs. L'ensemble des boitiers sont reliés à un ancien clavier usb que j'ai désossé. Ainsi chaque interrupteur correspond à une touche du clavier. C'est ensuite la partir logicielle qui indique que la touche "a" correspond au bouton 1 du boitier 1, la touche "b" au bouton 2 du boitier 1...
    J'aimerai enlever les fils entre les boitiers et le module usb de l'ancien clavier.
    J'ai bien pensé à acheté un lot d'une dizaine de clavier sans fil afin de n'utiliser qu'1 seul récepteur branché à l’ordinateur et les émeteurs (qui seraient identiques) sur les boitiers... Mais toujours un problème de prix, et la curiosité de faire ça moi même en électronique... Merci d'avance pour toute aide, cdl

    RépondreSupprimer