C'est quoi l'ESP-01?

L’ESP8266 est un microcontrôleur à cœur Tensilica L106 (RISC 32bit) produit par la société chinoise Espressif Systems intégrant un module Wifi. Initialement cette puce était un « simple » module Wifi permettant à un microcontrôleur équipé d’une liaison série, tel un Arduino, de disposer d’une connectivité Wifi. Mais depuis Octobre 2014, Espressif a publié un kit de développement (SDK) permettant de reprogrammer la puce supprimant ainsi la nécessité d’un microcontrôleur séparé ! On peut donc maintenant développer sur ce microcontrôleur autonome en C++ natif, en Arduino, en Lua, etc…

Le module “ESP-01” produit par la société AI-Thinker embarque un ESP8266 qui se présente sous la forme d'un circuit imprimé minuscule (1,4cm x 2,4cm) équipé d'un connecteur double 4 broches (au pas standard de 2,54mm) avec une antenne intégrée et une puce de mémoire flash.

Le connecteur est composé de :

  • deux broches pour l’alimentation en 3,3V (Vcc et Gnd)
  • deux broches pour la connexion série (Tx et Rx)
  • une broche RST (reset) pour réinitialiser la puce en le connectant à la masse
  • une broche CH_PD (chip power-down) qui doit être alimenté en 3,3V pour activer le Wifi
  • deux broches GPIO pour vos I/O (GPIO0 et GPIO2)

Le GPIO0 a un autre rôle : il peut servir également à entrer dans le mode programmation (dit "Flash mode"). Pour cela, il faut le connecter à la masse. Ainsi l’ESP8266 ne démarrera pas son programme mais entrera dans l'"UART download mode", c’est-à-dire qu’il écrira tout ce qu’il reçoit sur la liaison série dans sa mémoire. De ce fait, pour programmer la puce, il faut redémarrer l’ESP en "Flash mode" afin de pouvoir écrire un nouveau firmware.

Une carte de programmation

C’est pourquoi, pour faciliter les opérations, je me suis fabriqué une carte de programmation afin de simplifier chaque manipulation/programmation de l’ESP. Il s’agit d'une carte réalisée dans une plaque d'essai avec un connecteur sur lequel on branche l'ESP-01.

Cette carte dispose de :

  • 1 connecteur de 6 pins femelles pour y connecter l’interface FTDI/USB facilement (seul les broches Vcc/Gnd/Rx/Tx sont utilisées)
  • 1 module de régulation AMS1117 5V->3,3V disposé sur 2 connecteurs (Vin(5V)/GND et Vout(3,3V)Gnd) pour l'alimentation (non nécessaire si l'adaptateur FTDI est en 3,3V)
  • 1 connecteur de 3 pin femelles pour les GPIO0, GPIO2 et GPIO16 (RST)
  • 1 bouton poussoir RST (celui du haut) pour faire un reset de l’ESP sans avoir à débrancher l'interface FTDI ou l'alimentation
  • 1 bouton poussoir PROG (celui du bas) pour entrer dans le “Flash mode” afin de charger le nouveau firmware dans l'ESP

De plus, on y trouve aussi:

  • 1 condensateur de 10µF sur l'alimentation en 3,3V pour servir de condensateur de filtrage
  • 2 résistances de rappel de 10kOhm pour mettre les bornes CH_PD et RST à l'état haut

Voici le brouillon du schéma de la carte : IMG_20160125_205048.jpg

Voici le schéma définitif de la carte de programmation : breadboard_esp01.png

Le recto/verso de la carte : IMG_20160125_201440.jpg

La breadboard complète : IMG_20160125_201315.jpg

En savoir plus :