← Retour
Électronique

Adaptateur USB vers ESP-01 : activer le mode programmation

Cédrix · 13/12/2020

Adaptateur USB vers ESP-01

Présentation

L'adaptateur USB vers ESP-01 avec puce CH340 permet de connecter facilement un module ESP-01 (basé sur le microcontrôleur ESP8266) au port USB d'un ordinateur. Il intègre également un régulateur de tension 3,3 V, indispensable pour alimenter correctement l'ESP-01.

Cet adaptateur sert à deux usages principaux :

  • dialoguer avec l'ESP-01 via des commandes AT (commandes Hayes) afin de récupérer des informations ou de piloter le module ;
  • téléverser un firmware personnalisé sur l'ESP8266, par exemple depuis l'IDE Arduino.

Lien d'achat : adaptateur USB vers ESP-01 avec puce CH340

Le problème : passer en mode programmation

Par défaut, l'ESP-01 démarre en mode UART (communication série), qui convient pour échanger des commandes AT mais ne permet pas de flasher un nouveau firmware. Pour téléverser un programme, il faut basculer le module en mode FLASH (également appelé mode programmation).

Cette bascule n'est pas logicielle : elle se fait électriquement, en forçant la broche GPIO0 à la masse (GND) au moment du démarrage du module.

De nombreux adaptateurs USB vers ESP-01 d'entrée de gamme ne prévoient pas de bouton ou de switch pour cette opération. Sans modification, toute tentative de téléversement échoue avec une erreur de ce type dans l'IDE Arduino :

esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting........_....._....._....._....._....._....._....____
...
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

Erreur lors du téléversement vers ESP-01

Le message clé est Failed to connect to ESP8266: Timed out waiting for packet header : esptool.py n'a pas réussi à mettre le module en mode flash et abandonne après plusieurs tentatives.

La solution : modifier l'adaptateur

Pour rendre l'adaptateur compatible avec le mode programmation, il suffit d'ajouter un moyen de relier GPIO0 à GND à la demande. Rappel du brochage de l'ESP-01 :

Brochage de l'ESP-01

Matériel nécessaire

  • un fer à souder et de l'étain ;
  • deux fils fins ;
  • une barrette de deux broches au pas de 2,54 mm ;
  • un jumper ;
  • éventuellement un pistolet à colle pour rigidifier l'ensemble.

Procédure

  1. Souder un premier fil sur la broche GPIO0 (côté adaptateur).
  2. Souder un second fil sur une broche GND (côté adaptateur).
  3. Relier l'autre extrémité de chaque fil à une broche de la barrette, de manière à pouvoir court-circuiter GPIO0 et GND en plaçant simplement un jumper.
  4. Fixer la barrette avec une goutte de colle chaude pour éviter que les fils ne tirent sur les soudures.

Adaptateur USB vers ESP-01 modifié et collé

Utilisation

  • Pour téléverser un programme : placer le jumper (GPIO0 relié à GND), insérer l'adaptateur dans le port USB, puis lancer le téléversement depuis l'IDE Arduino.
  • Pour utiliser le module normalement (commandes AT ou exécution du firmware) : retirer le jumper, puis débrancher et rebrancher l'adaptateur pour redémarrer l'ESP-01 dans son mode standard.

Téléversement réussi

À retenir

Le téléversement d'un nouveau firmware écrase le code précédemment chargé, y compris le firmware AT d'origine. Pour retrouver les commandes AT après avoir flashé un programme personnalisé, il faudra reflasher un firmware AT officiel d'Espressif.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.