Table des matières

ESP8266

Divers problèmes et solutions trouvées pour les ESP.

ESP-01

Premier ESP de la gamme, il est parfait pour de petites applis.

Programmation

On peu le programmer de plusieurs façon, mais celle que j'ai utilisé est avec l'IDE arduino.
La configuration de l'IDE est bien documentée sur le web, je vous propose de suivre ce tuto.

- Install the current upstream Arduino IDE at the 1.8 level or later. The current version is at the [Arduino website](http://www.arduino.cc/en/main/software).
- Start Arduino and open Preferences window.
- Enter ```http://arduino.esp8266.com/stable/package_esp8266com_index.json``` into *Additional Board Manager URLs* field. You can add multiple URLs, separating them with commas.
- Open Boards Manager from Tools > Board menu and install *esp8266* platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).

Pour programmer l'esp, il faut mettre certaine pins au +3V3 ou au GND.
Un petit schémas récupéré sur le web pour illustrer :

ATTENTION ! tous ça fonctionne en 3V3, le 5v peu être accepté par certain esp, mais je ne m'y suis pas risqué.

Après avoir fait un montage soudé sur une petite plaque à trou, j'ai essayé une programmation.

Problème N°1

J'ai rencontré des alertes sur les bibliothèques.
effectivement, toutes ne sont pas compatibles avec l'arduino et certaines sont spécifiques à l'ESP.
On peu les télécharger via le gestionnaires de bibliothèque de l'IDE, ou via git.
Voici le lien https://github.com/esp8266/Arduino.git qui permet aussi d'installer les boards esp8266 a la place du board manager de l'IDE.

Problème N°2

Après avoir connecté l'ESP sur le port USB via une TTL interface.
En ouvrant un moniteur série pour voir si tout fonctionne, après un reset, mon ESP répond en 74880 baud.
Quelques recherches donnent que l'ESP a un firmware pour le LUA et que il communique ses messages d'erreurs en 74880 baud.
Par contre il communique en 115200 baud, donc rien d'anormal.

Problème N°3

Un essai de programmation plante et me revoie les erreurs :

warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed

J'ai cherché longtemps !! Et j'ai même essayé de programmer via esptool.py - https://github.com/espressif/esptool
Exemple de ligne de commande avec esptool :

  1. Compilez votre programme avec l'IDE
  2. Allez dans “croquis/exporter les binaires compilés”
  3. Lancez la commande (pour un esp 01)

./esptool.py –port /dev/ttyUSB0 –baud 115200 write_flash –flash_freq 40m –flash_mode dio –flash_size 4MB 0x0000 /votre_chemin_vers_le.bin

La fréquence, le flash mode, la size, je l'ai vu sur le moniteur série en faisant un reset.

LA SOLUTION ! en fait il faut faire un reset de l'ESP en appuyant et le maintenant, sur le bouton flash !
Sinon l'ESP ne rentre pas dans sont mode programmation, et on a les erreurs.
Après cette manip, ma ligne de commande pour programmer l'ESP fonctionne.