70 lines
3.6 KiB
Markdown
70 lines
3.6 KiB
Markdown
# Adaptateur USB vers ESP-01 : activer le mode programmation
|
|
|
|

|
|
|
|
## 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
|
|
```
|
|
|
|

|
|
|
|
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 :
|
|
|
|

|
|
|
|
### 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.
|
|
|
|

|
|
|
|
### 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.
|
|
|
|

|
|
|
|
## À 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.
|
|
```
|