Files
abonnel-www/68a07aea-8f12-4b6a-802a-03af83a09ad8/revisions/0001.md
T
2026-05-15 09:29:56 +02:00

86 lines
4.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 :
![Erreur lors du téléversement vers ESP-01](20201212-191417.png)
```
Executable segment sizes:
IROM : 234612 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 26888 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1252 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 1376 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 25112 ) - zeroed variables (global, static) in RAM/HEAP
Le croquis utilise 264128 octets (25%) de l'espace de stockage de programmes. Le maximum est de 1044464 octets.
Les variables globales utilisent 27740 octets (33%) de mémoire dynamique, ce qui laisse 54180 octets pour les variables locales. Le maximum est de 81920 octets.
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting........_....._....._....._....._....._....._....____
Traceback (most recent call last):
File ".../tools/upload.py", line 65, in <module>
esptool.main(cmdline)
...
File ".../esptool.py", line 483, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
```
Le message clé ici est `Failed to connect to ESP8266: Timed out waiting for packet header` : l'outil `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. Le rappel du brochage de l'ESP-01 :
![Broches 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 deux points, de manière à pouvoir court-circuiter GPIO0 et GND en plaçant simplement un jumper.
![Adaptateur USB vers ESP-01 modifié](20201212-173952.png)
Une goutte de colle chaude permet ensuite de fixer la barrette sur le corps de l'adaptateur et d'éviter que les fils ne tirent sur les soudures, qui sont fragiles.
![Finition de la modification](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 l'usage des commandes AT après avoir flashé un programme personnalisé, il faudra reflasher un firmware AT officiel d'Espressif.