ESP Easy R120 ou Mega. Flasher le firmware avec esptool.py sur ESP8266

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

ESP Easy est très facile à flasher sur Windows à l’aide de l’utilitaire d’installation contenu dans le dépôt du projet. Si vous êtes un utilisateur Linux (PC, Raspberry Pi, Orange Pi…) ou macOS, il va falloir utiliser esptool.py déjà présenté dans ce tutoriel.

 

Dernière mise à jour : 20 avril 2020

Pour ce tutoriel, nous allons installer sur firmware sur une LoLin WeMos D1 Mini, mais la méthode s’applique également à tous les ESP8266 NodeMCU (attention, certaines cartes nécessitent d’être en mode bootload avant de pouvoir flasher le firmware).

Installer Python et esptool.py

Avant de commencer, vérifions que la version 2.7.x de python est bien installée. Ouvrez le Terminal et exécutez Python. Si Python est installé, le shell doit démarrer. Saisissez exit() pour quitter le shell.

Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Si Python n’est pas installé sur votre machine, installez le en vous rendant ici.

Pour installer esptool.py, le mieux est de laisser Python s’en charger de manière à ce que toutes les dépendances soient installées en même temps.

pip install esptool

en cas de difficulté, vous pouvez aussi exécuter python -m pip install esptool  ou pip2 install esptool.

Sur Windows

Lancez PowerShell (qui permet d’exécuter les commandes Unix). Placez vous dans le répertoire d’installation d’esptool, par exemple Documents et lancez l’installation d’esptool (et des dépendances) comme sur macOS ou Linux.

 

PS C:\Users\Christophe\Documents> pip install esptool
Collecting esptool
  Downloading esptool-1.3.tar.gz
Collecting pyserial>=2.5 (from esptool)
  Using cached pyserial-3.2.1-py2.py3-none-any.whl
Installing collected packages: pyserial, esptool
  Running setup.py install for esptool ... done
Successfully installed esptool-1.3 pyserial-3.2.1
PS C:\Users\Christophe\Documents>

Vous pouvez maintenant appeler esptool.py depuis n’importe ou. En effet, il a été installé dans le répertoire des exécutables par défaut de Python (C:\Python27\Scripts).

Sur macOS

Suivez ce tutoriel pour macOS.

A LIRE AUSSI :
esptool.py, mise à jour du firmware NodeMCU ESP8266 sur macOS

Flasher le firmware ESP Easy sur l’ESP8266 LoLin D1 Mini

Maintenant que tout est prêt, nous allons pouvoir lancer l’installation. Dans un Terminal, placez vous dans le répertoire d’ESP Easy. Vous pouvez le récupérer directement depuis GitHub ici ou le cloner à l’aide de la commande

git clone https://github.com/espressif/esptool.git

La commande esptool.py pour flasher la mémoire flash d’un ESP8266 est de la forme suivante

esptool.py --port [serial-port-of-ESP8266] write_flash -fm [mode] -fs [size] 0x00000 [nodemcu-firmware].bin

On doit donc lui passer les paramètres suivants :

  • Le port série sur lequel est branché l’ESP8266. Sur moaOS ou linux, exécutez la commande ls /dev/tty.*. Sur Windows, exécutez mode dans l’invite de commande
  • mode (-fm ou –flash_mode) :  dio par défaut
  • size (-fs ou –flash_size) : 32m pour 4MB
  • nodemcu-firmware : le chemin vers le binaire à flasher. Ici ESPEasy_Rxxx_xxxx.bin

Ce qui donne par exemple pour une Wemos D1 Mini (4MB)

esptool.py --port COM3 --baud 115200 write_flash -fm dio -fs 32m 0x00000 ESPEasy_R120_4096.bin

Il possible d’indiquer d’autres paramètres

  • baud (–baud) : la vitesse de transfert. En cas de problème, il ne faut pas hésiter à la diminuer à 115200 bauds par exemple.
  • after (–after) : permet de faire un reset (no_reset, hard_reset ou soft_reset) après l’opération de flashage.

Flasher ESP Easy sur une autre carte ESP8266 NodeMCU générique

esptool.py est un utilitaire à tout faire pour toutes les carte ESP8266 du marché. Il faudra adapter la commande en passant les paramètres qui correspondent à votre carte. Ca fonctionne également pour la nouvelle génération ESP32. Pour cela, il faudra aller piocher dans la documentation d’esptool.py qui se trouve ici. esptool.py envoi un autre

Les cartes NodeMCU, WeMOS, HUZZAH Feather, Core Board, ESP32-WROVER-KIT sont en mesure de passer en mode bootload, pour les autres il faudra appliquer la méthode classique déjà expliquée dans ce tutoriel.

Pour récupérer les caractéristiques de la carte, exécutez la commande esptool.py –port COMx flash_id

C:\Users>esptool.py --port COM3 flash_id
esptool.py v1.3
Connecting....
Manufacturer: ef
Device: 4016

Bonus : comment déterminer la taille de la mémoire d’un ESP8266

C’est un problème récurrent car la taille de la mémoire n’est jamais notée sur les cartes. Si vous avez plusieurs modèles, vous risquez rapidement d’avoir des problèmes. Voici comment faire pour déterminer la taille de la mémoire à partir de d’identifiant et du fabricant.

Tout d’abord, allez sur cette page qui liste les fabricants de puces ESP8266 https://code.coreboot.org/p/flashrom/source/tree/HEAD/trunk/flashchips.h

Ne vous occupez pas du fabricant, ici “ef”. Faites une recherche sur l’id du device, ici 0x4016. Vous allez trouver les lignes suivantes :

  • #define AMIC_A25LQ032                          0x4016 /* Same as A25LQ32A, but the latter supports SFDP */
  • #define ESMT_F25L32QA                         0x4016
  • #define GIGADEVICE_GD25Q32            0x4016 /* Same as GD25Q32B */
  • #define SPANSION_S25FL132K              0x4016
  • #define WINBOND_NEX_W25Q32_V  0x4016 /* W25Q32BV; W25Q32FV in SPI mode (default) */

Par convention, il faut prendre les 2 derniers chiffres du code sans s’occuper des lettres éventuelles qui se trouvent derrière (aucune idée de la signification pour le moment). Ici, on prendra donc 32. Toujours par convention, ce chiffre indique la quantité de mémoire en megabits, ce qui fait donc 32Mb, soit 4Mo (un convertisseur en ligne).

Pour le moment, c’est la seule méthode que j’ai pu trouvé. Si vous avez plus facile, n’hésitez pas à partager dans les commentaires.

Cas particulier de la Wemos d1 mini Pro 16MB

En théorie, l’ESP8266 est capable de supporter jusqu’à 128Mb (16Mo) de mémoire flash QSPI. C’est le cas de la nouvelle Wemos d1 mini Pro. Si on cherche 0x4018, le numéro de device, on va par exemple trouver GIGADEVICE_GD25Q128. Dans ce cas, on prendra 128. Après conversion, on obtient bien 16Mo (128Mb). On dira plutôt qu’il faut prendre les 2 ou 3 derniers chiffres du code dans s’occuper des dernières lettres.

Ces cartes de développement sont totalement obsolètes..mais sont encore commercialisées.

Comment utiliser esptools.py sur Windows ?

Sur Windows, tout fonctionne à l’identique. esptool étant un script Python, le programme est cross-plateforme. Il faudra simplement modifier le port de destination. Sous Windows il sera de la forme COM1, COM2… Pour connaître le port COM sur lequel est branché l’ESP8266, exécutez la commande mode. La commande permet de récupérer beaucoup plus de paramètres que la commande sous Linux.

 

 

PS C:\Users\Christophe\Documents\esptool-master> mode

Statut du périphérique COM3:
----------------------------
    Baud :            1200
    Parité :          None
    Bits de données : 7
    Bits d’arrêt :    1
    Temporisation :   OFF
    XON/XOFF :        OFF
    Protocole CTS :   OFF
    Protocole DSR :   OFF
    Sensibilité DSR : OFF
    Circuit DTR :     ON
    Circuit RTS :     ON


Statut du périphérique CON:
---------------------------
    Lignes :          3000
    Colonnes :        120
    Vitesse clavier : 31
    Délai clavier :   1
    Page de codes :   850

Rien ne fonctionne ! Effacez simplement la mémoire

Si vous rencontrez des problèmes  d’installation, vous pouvez tenter d ‘effacer la mémoire avec la commande erase_flash.

esptool.py --port COM3 erase_flash
Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

Nous serions ravis de connaître votre avis

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment. 

Shopping cart