L’ESP-01 est un petit module ESP8266 qui permet d’ajouter une connexion Wifi à un Arduino. Nous allons voir ici comment réinstaller le firmware d’origine. Vous pourrez en avoir besoin si vous obtenez un code erreur durant le boot, pour réinstaller le firmware d’origine après avoir testé NodeMCU, retrouver les commandes AT ou tout simplement si vous pensez que votre ESP-01 est défectueux.
L’ESP-01 est très certainement le membre le plus populaire de la grande famille des modules Wifi ESP8266 (18 au moment de l’écriture de cet article). Nous les découvrirons dans un prochain article. C’est un module très économique. Pour moins de 3€ en provenance d’Asie, vous ajoutez une carte Wifi à votre Arduino. C’est bien moins cher qu’un Shield Wifi ou l’Arduino Yun.
Sommaire
- 1 Avant de commencer avec l’ESP8266
- 2 Pourquoi flasher le firmware d’origine ?
- 3 Préparer l’ESP-01 au flashage (boot mode)
- 4 Quel logiciel utiliser pour flasher le firmware de l’ESP-01 ?
- 5 Mettre à jour le firmware
- 6 Vérifier que la mise à jour fonctionne
- 7 Tester votre premier programme Arduino sur votre ESP8266
- 8 Messages d’erreurs et remèdes
Avant de commencer avec l’ESP8266
Si vous découvrez l’ESP8266 (et l’ESP-01), c’est un peu comme pour les clones d’Arduino, vous trouverez de nombreux fabricants / vendeurs. Par conséquent, vous risquez d’acheter des cartes avec un version différente du firmware. Si vous venez d’acheter votre ESP8266, vous pouvez vérifier facilement les informations à l’aide des commandes AT. En effet, une fois que vous aurez téléversé un programme Arduino dans votre ESP, les commandes AT ne seront plus accessibles via le Moniteur Serie (ou via Putty).
Pour câbler, suivez le paragraphe “Préparez l’ESP-01 au flashage” ci-dessous.
Depuis l’IDE Arduino, lancez le Moniteur Série. Sélectionnez le mode “Les deux, NR et CR” et une vitesse de 9600 baud. Mettez votre ESP sous tension, après quelques instants vous devriez obtenir un message contenant le nom du vendeur suivi d’un OK. Si vous n’arrivez pas à lire (codes ASCII incompréhensibles), essayez de changer la vitesse à 115200 baud.
Tapez la commande AT puis Envoyer. Si tout est normal, l’ESP va renvoyer OK. Enfin saisissez AT+GMR puis Envoyer. En retour l’ESP vous renvoie la version de l’interpréteur de commande AT ainsi que celle du SDK installé.
Pourquoi flasher le firmware d’origine ?
Tout d’abord, l’ESP01 peut parfois se mettre en erreur. Cela peut se produire après une installation défectueuse (autre firmware, programme…). Si le module vous renvoie par exemple le code erreur suivant via le Moniteur Série, le mieux est de flasher le firmware d’origine d’Espressif.
ets Jan 8 2013,rst cause:1, boot mode:(3,7) ets_main.c
Si vous obtenez le message ci-dessous, c’est que votre ESP est en “Flashing Mode”, ce n’est pas une erreur
epc1=0x4
ets Jan 8 2013,rst cause:2, boot mode:(1,6)
L’autre grande force des ESP8266 est la possibilité d’installer le firmware de son choix (et même de développer le sien grâce au SDK). L’IDE Arduino reste encore le moyen le plus simple pour programmer l’ESP8266, dans ce cas, vous aurez besoin de ré-installer le firmware d’origine.
Préparer l’ESP-01 au flashage (boot mode)
Avant de flasher le firmware d’origine, il faut déjà mettre en “Flashing Mode” l’ESP-01. Pour cela, il faut que le GPIO soit relié au GND au moment de la mise sous tension. La mise à jour du firmware est consommateur en énergie, assurez vous de disposer d’une alimentation suffisante avant de réaliser l’opération.
Matériel nécessaire
Vous aurez besoin du matériel suivant
Réaliser une alimentation 3.3Volts
Tous les modules ESP8266 doivent être alimentés en 3.3 Volts. Attention à ne pas dépasser cette tension car aucune protection n’est prévue. Un autre point important est l’intensité d’alimentation. Il vaut mieux disposer d’au moins 500mA (voir 1A) pour la mise à jour du firmware. Il est donc déconseillé d’utiliser l’alimentation du port USB. Pour ma part, j’utilise simplement deux piles AA (neuves) dans un boîtier disposant d’un interrupteur. Cela m’évite de câbler un bouton de Reset et je suis certain que l’ESP-01 démarre en Flashing Mode à la mise sous tension.
Vous pouvez aussi investir dans une alimentation 3.3V / 5V pour breadboard. Ce n’est pas une dépense inutile si vous avez plusieurs projets DIY sympa en tête.
Vous pouvez enfin utiliser une alimentation d’un smartphone. Pour cela vous aurez besoin d’un adaptateur jack muni d’un bornier à vis et d’un régulateur de tension (LD1117V33 par exemple) permettant de délivrer les 3.3 Volts nécessaires à votre ESP8266. Attention à ne pas dépasser la tension d’alimentation préconisée (consulter la documentation technique). Enfin, tenez compte dans la conception de vos projets que le LD1117 chauffe (beaucoup). Vous pouvez également ajouter un condensateur 10µF pour une alimentation plus stable.
Branchement
Pour que l’ESP démarre en Flashing Mode, la broche GPIO0 doit être reliée au GND. Reliez les broches ainsi :
GND Reliez ensemble le GND de la batterie avec le GND du module FTDI. Vous pouvez également câbler une résistance de rappel.
GPIO0 GND
RX TX du FTDI
TX RX du FTDI
CH_PD + 3.3V
VCC + 3.3V
Le câblage que je vous propose est bien plus simple que ce que vous pourrez trouver sur internet mais il fonctionne et ne nécessite que quelques câbles Dupont.
Ne branchez rien sur la broche GPIO2 durant la mise à jour du firmware (également lorsque vous voulez téléverser un programme depuis l’IDE Arduino).
Quel logiciel utiliser pour flasher le firmware de l’ESP-01 ?
Il existe au moins deux solutions pour flasher le firmware d’origine. La première solution est d’utiliser le logiciel de mise à jour d’origine d’Espressif. Le Flash Tool permet de flasher tous les modules de la famille ESP8266. Le plus difficile est de trouver les bons paramètres de flashage. J’en ai essayé de nombreux sans succès. Je n’abandonne pas cette solution mais pour cet article je vous propose plutôt d’utiliser ESPFlasher qui fonctionne très bien et qui fait le travail sans aucun réglage. Vous pouvez le télécharger à cette adresse. L’archive ZIP contient le logiciel de mise à jour, esp8266_flasher.exe ainsi que le Firmware (ESP_8266_BIN0.92.bin). Il ne semble pas exister de version pour les utilisateurs Mac OS, Linux (ou Raspberry).
En cas d’échec, vous pouvez aussi tester un firmware alternatif disponible ici :
- ai-thinker-0.9.5.2-9600.bin
- v0.9.2.2 AT Firmware.bin
- v1.1.1.1 AT Firmware.bin
Mettre à jour le firmware
Mettez sous tension votre ESP-01. Vous ne devez avoir que la Led rouge allumée.
Lancez esp8266_flasher.exe et indiquez le port COM sur lequel se trouve votre ESP-01. Pour connaître le port COM sur lequel est branché votre ESP01, vous pouvez vous aider de l’IDE Arduino. Ne changez pas l’adresse (0x00000)
Lancez la mise à jour du firmware en appuyant sur “Download”. esp8266_flasher.exe va tout d’abord effacer la mémoire flash puis télécharger la mise à jour. L’opération dure une minute environ. Ne vous souciez pas du message d’erreur à la fin de l’opération.
Vérifier que la mise à jour fonctionne
Pour vérifier que la mise à jour est correcte, le plus simple est d’utiliser le Moniteur Série de l’IDE Arduino (vous pouvez également utiliser Putty). Suivez les étapes du paragraphe d’introduction. Si tout s’est bien passé vous devriez obtenir OK avec la commande AT et les versions AT et SDK avec la commande AT+GMG.
Voilà, si tout fonctionne votre ESP-01 est comme neuf. Vous pouvez de nouveau utiliser les commandes AT et téléverser votre programme depuis l’IDE Arduino. Rappelez vous que les commandes AT ne seront plus disponibles une fois qu’un programme Arduino a été téléversé.
Tester votre premier programme Arduino sur votre ESP8266
Si vous découvrez l’ESP8266, vous devez tout d’abord installer la librairie permettant de programmer les cartes esp8266 à votre IDE Arduino. Pour cela, ouvrez les préférences et ajoutez à la liste des packages.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Allez dans le gestionnaire de carte et cherchez esp8266, puis cliquez sur installer.
Une fois l’installation terminée, sélectionnez “Generic ESP8266 Module”. La configuration pour un ESP-01 est la suivante :
- Flash Mode : DIO
- Flash Frequency : 40 MHz
- CPU Frequency : 80 MHz
- Flash Size : 512K
- Upload Speed : 115200 baud
Choisissez ArduinoISP comme programmateur.
Dans la liste des exemples ESP8266Wifi, choisissez WifiScan. Mettez votre ESP en Flashing Mode puis téléversez le programme. Si votre branchement est correct, des points indiquant la progression de téléchargement vont apparaître.
Ouvrez le Moniteur Série (à 115200 baud). Votre ESP-01 scanne maintenant votre réseau Wifi et renvoie les réseaux trouvés.
Messages d’erreurs et remèdes
J’ai répertorié quelques messages d’erreur que vous pouvez rencontrer ainsi que quelques pistes pour les résoudre. Si vous avez d’autres solutions, n’hésitez pas à les partager dans les commentaires pour que je puisse les ajouter.
Message | Causes possibles | Remèdes |
warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed |
L’ESP n’est pas en Flashing Mode | Choisir ArduinoISP comme programmateur
Vérifier le branchement de la liaison Série (inverser TX/RX) Le GPIO0 est-il bien au GND ? Votre alimentation trop faible. Elle doit délivrer au moins 300mA lors du flashage du firmware Ajoutez une résistance de rappel sur le GPIO0 ou relier le GND de l’alimentation 3.3V au GND du module FTDI Débrancher/remettre sous tension l’ESP8266 Débrancher/rebrancher sur un autre port USB votre module FTDI Redémarrer l’ordinateur (si le module FTDI est toujours introuvable) |
Avez-vous aimé cet article ?