Files
varlog/68a07aea-8f12-4b6a-802a-03af83a09ad8/index.md
T
2026-05-15 10:37:48 +02:00

70 lines
3.6 KiB
Markdown

# Adaptateur USB vers ESP-01 : activer le mode programmation
![Adaptateur USB vers ESP-01](20201207-233302.png)
## Présentation
L'[adaptateur USB vers ESP-01 avec puce CH340](https://amzn.to/3oHZ1Eo) 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](https://amzn.to/3oHZ1Eo)
## 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](20201212-191417.png)
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](20201212-134043.png)
### 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é](20201213-084414.png)
### 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](20201213-083952.png)
## À 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.
```