Accueil / esp8266 / Adafruit Huzzah ESP8266: test, mise à jour du firmware NodeMCU

Adafruit Huzzah ESP8266: test, mise à jour du firmware NodeMCU

L’Adafruit Huzzah ESP8266 est une carte très compacte qui est basée sur le module Wifi ESP-12 (ESP8266) du fabricant Chinois Espressif. L’Adafruit Huzzah n’est pas un Arduino mais son chip très polyvalent permet d’exécuter de nombreux types de codes (Arduino, Lua, Python, commandes AT…) en fonction du firmware installé. Dans cet article nous allons découvrir cette petite carte très pratique pour des projets d’objets connectés (IoT), comment la programmer en Lua ou depuis l’IDE Arduino et enfin comment réinstaller son firmware.

Si vous débutez avec les modules Wifi ESP8266, vous pouvez également consulter cet article précédent expliquant comment réinstaller le firmware sur un ESP-01.

Présentation et caractéristiques de l’Adafruit Huzzah ESP8266

L’Adafruit Huzzah ESP8266 se présente sous la forme d’une carte de 38,5 x 25,6 mm. Après programmation (lorsque vous aurez débranché le module FTDI), la hauteur avec les broches est de 20mm. Cette carte a été avant tout conçue pour simplifier la conception de projets à base du module ESP-12 qui est livré au format SMD. Comme tous les modules ESP8266, l’ESP-12 doit être alimenté en 3.3V (il n’est équipé d’aucune protection de surtension), l’Huzzah résout ce problème en intégrant deux entrées d’alimentation protégées (3 à 12 Volts). Voici les principales caractéristiques techniques de l’Huzzah que vous pouvez également retrouver sur le site d’Adafruit sur cette page :

  • Module Wifi ESP-12 d’Espressif (consulter la documentation technique)
  • Un bouton de Reset
  • Un bouton relié au GPIO0 pour mettre le module ESP-12 en Flashing Mode (ou bootloading mode).
  • Régulateur de tension 3V 500mA
  • 1x entrée analogique (1.8V max.)
  • 9x GPIO (3.3V) qui peuvent être utilisées pour des modules I2C ou SPI
  • 2x Broches UART
  • Carte support équipée de 2×10 broches de chaque coté de la carte au pas de 2.54mm compatible breadboard
  • Deux sources d’alimentation 3 à 12V protégées par diode Schottky
  • Certifications CE (n°BCTC-141212468) et FCC (n°2ADUIESP-12)
  • Dimensions: 25mm x 38mm x 5mm
  • Poids : 5g

Comment utiliser l’Adafruit l’Huzzah ESP8266

Branchement

connecteur coudé 90L’Huzzah ESP8266 se programme exclusivement à l’aide d’un module FTDI que l’on viendra brancher sur le connecteur situé au dessus de la carte. Pour gagner en encombrement, vous pouvez remplacer le connecteur livré avec la carte par un connecteur à broches coudées à 90°  (si votre projet nécessite de la compacité).

Pour programmer ou mettre à jour le firmware votre ESP8266, vous aurez besoin d’un module FTDI. Vous pouvez en trouver pour moins de 2€ en provenance d’Asie ou sur Amazon si vous n’avez pas le temps d’attendre. Si votre FTDI est livré avec un connecteur, branchez simplement le câble en l’orientant pour que le fil noir se trouve en face de la broche GND. Sinon voici la correspondance des couleurs (à vérifier avec votre module FTDI) :

Noir <–> GND

Bleu <–> Non utilisé

Rouge <–> V+

Blanc <–> Rx

Jaune <–> Tx

Vert <–> Non utilisé

Programmer l’Adafruit Huzzah ESP8266 en Lua

L’Adafruit Huzzah est avant tout compose d’un module ESP8266 livré avec NodeMCU 0.9.5 build 20150318 (Lua 5.1.4) pré-installé. Si vous ne connaissez pas encore le Lua, nous allons réaliser un petit programme très simple pour le découvrir. Avant de commencer, sachez qu’il est possible d’envoyer des instructions (ou un programme entier) à l’Huzzah directement à l’aide de Putty.

Tout le monde n’est pas forcément familier avec les lignes de commandes, nous allons plutôt utiliser ESPlorer, un outil plus conviviale. C’est un programme Java. Il peut donc fonctionner sur Mac OS, Linux, Windows. Vous pouvez le télécharger à cette adresse. Pour fonctionner vous devez aussi installer Java (version 7 au minimum) que vous trouverez ici.

Après avoir décompressé le Zip contenant ESPlorer, lancez le programme en double cliquant sur le fichier ESPlorer.jar.

Dans la liste des ports COM, sélectionnez celui sur lequel est branché votre carte. Sélectionnez une vitesse de 9600 baud puis appuyez sur OPEN.

ESPlorer connecter esp8266 port com

Appuyez sur le bouton Reset de la carte. Si tout est bon, vous allez obtenir le message NodeMCU 0.9.6 build 20150704 powered by Lua 5.1.4 (les numéros de version correspondront à votre carte bien évidemment). Vous pouvez aussi voir que l’ESP8266 renvoie « lua : cannot open init.lua » ce qui signifie que l’Huzzah n’a aucun programme à exécuter au démarrage. Voyons comment faire maintenant.

ESPlorer esp8266 init nodemcu

Copiez le code suivant dans l’éditeur, puis enregistrez le (bouton Save) en lui donnant le nom init.lua (c’est très important). Ce petit programme fait simplement clignoter la Led bleue de l’antenne Wifi du module ESP-12.

-- Configuration
local pin = 4         --> Correspond au GPIO2
local etat = gpio.LOW --> Par défaut la Led est éteinte 
local duree = 1000    --> 1 seconde

-- Fonction qui permettant de faire clignoter la Led
function toggleLED ()
 if etat == gpio.LOW then --> Si la Led est éteinte
   etat = gpio.HIGH       --> on l'allume
 else
   etat = gpio.LOW        --> sinon on l'éteint
 end
 gpio.write(pin, etat)    --> On écrit sur le Pin le nouvel état de la Led
end

-- Initialisation du pin de sortie
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, etat

-- Cré un timer qui appel la fonction toggleLED après chaque duree
tmr.alarm(0, duree, 1, toggleLED)

ESPlorer esp8266 nodemcu save enregistrer init.lua

ESPlorer enregistre le programme et le télécharge directement sur la carte le programme. Après quelques secondes, la Led bleue située à coté de l’antenne se mettra à clignoter suivant l’interval correspond à la variable « duree ».

Voilà, vous venez de réaliser votre premier programme un Lua.

Maintenant, à chaque branchement (ou Reset), votre Huzzah ESP8266 lance le programme init.lua qui fait clignoter la Led bleue de l’antenne. Pour l’effacer, c’est très simple, appuyer sur le bouton « Format » situé à droite de la console.

Programmer l’Adafruit Huzzah ESP8266 avec l’IDE Arduino

Il est très simple de programmer l’Huzzah depuis l’IDE Arduino. Sachez cependant qu’après avoir téléversé votre programme il faudra flasher le firmware (expliqué au paragraphe suivant) NodeMCU pour pouvoir exécuter de nouveau des programmes Lua.

Comme dans l’article précédent expliquant comment flasher le firmware d’origine d’un ESP-01, vous devez configurer votre IDE Arduino. Ouvrez les Préférences et ajoutez la librairie permettant de programmer les cartes esp8266.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

IDE Arduino 1.6.8 esp8266 package

Allez dans le gestionnaire de carte et cherchez esp8266, puis cliquez sur installer.

IDE Arduino 1.6.x ajouter carte esp8266

Une fois l’installation terminée, sélectionnez « Adafruit Huzzah ESP8266 ». La configuration standard est la suivante :

  • CPU Fequency : 80 Mhz
  • Flash Size : 3M SPIFFS
  • Upload Speed : 115200
  • Port : le port COM sur lequel est branché la carte

Choisissez ArduinoISP comme programmateur.

Ouvrez l’exemple Blink et remplacez l’adresse 13 de sortie par 0, l’adresse de la Led du GPIO présent sur la carte. Il reste maintenant à mettre la carte en mode « bootload », procédez ainsi :

  • Appuyez et maintenez appuyé le bouton GPIO0. La Led s’allume à pleine puissance
  • Appuyez sur le bouton Reset
  • Relachez le Reset
  • Relâchez le bouton GPIO. La led éclaire à demi. L’ESP8266 est en « bootload mode »

Téléversez maintenant votre programme Arduino. Après recompilation, le téléchargement commence. Vous pourrez suivre la progression du téléchargement par des points oranges qui défilent dans la console. Vous pouvez également suivre l’opération grâce à la Led bleue du module ESP8266 qui clignote durant l’opération. Le programme démarre dès la fin du téléchargement.

Adafruit Huzzah ESP8266 IDE Arduino bootload mode téléversement

Mettre à jour ou réinstaller le firmware NodeMCU

Voici un petit tutoriel pour mettre à jour ou réinstaller le firmware NodeMCU qui s’applique à toutes les carte ESP8266. La méthode la plus simple est d’utiliser le programme NodeMCU ESP8266 Flasher que vous pouvez télécharger ici. Il n’est disponible que pour les utilisateurs Windows (32 ou 64 bits). Pour les utilisateurs Mac OS (ou linux), il faudra vous tourner vers esptool.py Flasher dont j’ai détaillé son utilisation dans cet article.

Tout d’abord, allez dans l’onglet « Advanced » et vérifiez la configuration. Voici celle de ma Huzzah ESP8266

  • Baudrate : 115200
  • Flash Size : 4MByte
  • Flash Speed : 80MHz
  • SPI Mode : DIO

adafruit Huzzah ESP8266 Flasher NodeMcu Advanced settings

ESP8266 Flasher inclu la dernière version du firmware NodeMCU. Si vous avez besoin d’installer une autre version, indiquez le chemin de cette dernière ici

adafruit Huzzah ESP8266 Flasher NodeMcu Config

Mettez la carte en mode bootload comme ceci :

  • Appuyez et maintenez appuyé le bouton GPIO0. La Led s’allume à pleine puissance
  • Appuyez sur le bouton Reset
  • Relachez le Reset
  • Relâchez le bouton GPIO. La led éclaire à demi. L’ESP8266 est en « bootload mode »

Choisissez enfin le port COM sur lequel est branché votre carte puis appuyez sur START. Si tout est correct, Le Flasher va détecter l’adresse Mac de votre carte et lancer immédiatement le téléchargement du Firmware NodeMCU. L’opération dure environ une minute. La Led bleue du module ESP-12 clignote durant l’opération.

ESP8266 Flasher NodeMcu

Une fois l’opération terminée, vous pouvez utiliser ESPlorer, Putty ou le Moniteur Série de l’IDE Arduino.

Si vous obtenez le message d’erreur suivant, la première cause de cette erreur est une alimentation trop faible de votre câble  FTDI qui entraîne une erreur durant l’opération de mise à jour du firmware.

Fatal exception (0):
epc1=0x4020188b, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

Pour résoudre ce problème, j’ai simplement installé une batterie LiPo 3.7 Volts (un bloc de 2 piles AA neuves peut également convenir) sur la broche V+.