Esp32s2mini : vogue la galère…

Bonjour,

J’essaie désespérément de flasher mon 3ème esp32s2mini
Les deux premiers ont été une vrai galère, comparativement aux 2102, et il faut croire que j’aime souffrir.
Le plus désespérant, c’est que quand ça a marché, je n’ai jamais réellement su pourquoi !
Bref, voici le code et son log d’installation

Dernière remarque, je ne peux connecter l’esp que sur le Rapsberry, mon ordinateur (sans doute trop ancien) refusant de reconnaître les ports nécessaires, malgré des tentatives d’installation de drivers conseillés…

Dans les erreurs il est dit que le port ttyACM1 est occupé ou inexistant alors qu’il apparaît bien au moment de l’install…

Donc si quelqu’un avait la recette miracle pour en faire un de plus :innocent:, ça m’intéresse.
Merci d’avance,
patrickp78

esphome:
  name: esp32s2mini-03
  friendly_name: esp32s2mini-03

esp32:
  board: lolin_s2_mini
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "o/Lu3X9sxxxxxxxxxxxxxxxxxNXRBVJRCuJ9u68="

ota:
  - platform: esphome
    password: "b3fd04bfxxxxxxxxxxxxxxxxx50f8b3ebd"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32S2Mini-03 Fallback Hotspot"
    password: "buQxxxxxxxxgsp"

captive_portal:
    
INFO ESPHome 2025.3.0
INFO Reading configuration /config/esphome/esp32s2mini-03.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing esp32s2mini-03 (board: lolin_s2_mini; framework: arduino; platform: platformio/espressif32@5.4.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 
 - toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 2.1.4
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 3.3.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.6
RAM:   [=         ]  13.4% (used 44032 bytes from 327680 bytes)
Flash: [=====     ]  47.3% (used 867746 bytes from 1835008 bytes)
========================= [SUCCESS] Took 19.03 seconds =========================
INFO Successfully compiled program.
esptool.py v4.8.1
Serial port /dev/ttyACM1
Connecting...
Chip is ESP32-S2FNR2 (revision v1.0)
Features: WiFi, Embedded Flash 4MB, Embedded PSRAM 2MB, ADC and temperature sensor calibration in BLK2 of efuse V2
Crystal is 40MHz
MAC: 80:65:99:e9:45:be
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00010000 to 0x000e3fff...
Flash will be erased from 0x00001000 to 0x00004fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Compressed 868128 bytes to 588953...
Wrote 868128 bytes (588953 compressed) at 0x00010000 in 6.8 seconds (effective 1019.0 kbit/s)...
Hash of data verified.
SHA digest in image updated
Compressed 13552 bytes to 9525...
Wrote 13552 bytes (9525 compressed) at 0x00001000 in 0.2 seconds (effective 444.3 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 144...
Wrote 3072 bytes (144 compressed) at 0x00008000 in 0.1 seconds (effective 479.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 588.0 kbit/s)...
Hash of data verified.

Leaving...
INFO Upload with baud rate 460800 failed. Trying again with baud rate 115200.
esptool.py v4.8.1
Serial port /dev/ttyACM1
ERROR Running command failed: Could not open /dev/ttyACM1, the port is busy or doesn't exist.
([Errno 11] Could not exclusively lock port /dev/ttyACM1: [Errno 11] Resource temporarily unavailable)

ERROR Please try running esptool.py --before default_reset --after hard_reset --baud 115200 --port /dev/ttyACM1 --chip esp32s2 write_flash -z --flash_size detect 0x10000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/firmware.bin 0x1000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/bootloader.bin 0x8000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/partitions.bin 0xe000 /data/cache/platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin locally.

Je en réponds pas directement à ta question, mais je te donne un retour d’expérience. L’ESPHome est pour moi une usine à gaz que je trouve complexe et les EPS32 ou le ESP8266 sont difficile à programmer. Venant du monde JEEDOM j’ai voulu conserver mes capteurs sur JEEDOM et sur HA simultanément et là, tu as une solution qui s’impose c’est ESPEASY qui est très facile d’utilisation pour Flasher tes ESP, et programmer dans l’ESP tes capteurs et vérifier tout de suite ce que donnent tes capteurs. Après je récupère les informations via MQTT et tout cela fonctionne à merveille et me parait plus simple que ESPHome.
Une exemple sur un capteur de température :


Coté du contrôleur sur l’ESP

Dans cet exemple j’envoie les information vers JEEDOM et vers Home Assistant en MQTT, mais bien évidement ça fonctionne avec un seul contrôleur MQTT.
J’avais interrogé le FORUM sur des problème d’intégration ça peut éventuellement t’intéresser…

Tu as ce post qui est bien sur le sujet

Tu trouveras beaucoup de sujets sur le Forum.

Salut,

c’est méthode fonctionne ?

Passer par Adafruit ESPTool pour le flasher la première fois.

INFO Upload with baud rate 460800 failed. Trying again with baud rate 115200.

Sinon changer la vitesse d’upload a 115200

esphome:
  platformio_options:
    upload_speed: 115200

et retenter de compiler et upload le firmware de esphome.

J’ai essayé une première fois avec le même échec. Pourtant la procédure de @Patrick_MX se fait bien jusqu’au résultat final dans adafruit qui demande de faire un reset de l’esp.
Ensuite, il refuse toujours la connexion.
Je vais retenter, ça va bien finir par passer…

Les messages d’erreur. Il semble avoir essayé en 460800 et en 115200 bauds

Connecting...
ERROR Running command failed: [Errno 32] Broken pipe
ERROR Please try running esptool.py --before default_reset --after hard_reset --baud 460800 --port /dev/ttyACM1 --chip esp32s2 write_flash -z --flash_size detect 0x10000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/firmware.bin 0x1000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/bootloader.bin 0x8000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/partitions.bin 0xe000 /data/cache/platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin locally.
INFO Upload with baud rate 460800 failed. Trying again with baud rate 115200.
esptool.py v4.8.1
Serial port /dev/ttyACM1
Connecting...
ERROR Running command failed: [Errno 32] Broken pipe
ERROR Please try running esptool.py --before default_reset --after hard_reset --baud 115200 --port /dev/ttyACM1 --chip esp32s2 write_flash -z --flash_size detect 0x10000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/firmware.bin 0x1000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/bootloader.bin 0x8000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/partitions.bin 0xe000 /data/cache/platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin locally.

passe l’esp en mode download avant le flash

Upload Code

(Get started with Arduino [S2 series] — WEMOS documentation)

  • Make S2 boards into Device Firmware Upgrade (DFU) mode.
    • Hold on Button 0
    • Press Button Reset
    • Release Button 0 When you hear the prompt tone on usb reconnection

c’est pas ce que je comprends.

INFO Échec du téléchargement avec un débit de 460 800 bauds. Réessayez avec un débit de 115 200 bauds.

Tu as ajouté dans ton code yaml ?

esphome:
  platformio_options:
    upload_speed: 115200

Oui mais je n’ai fait qu’un démarrage rapide (yaml). Faut peut-être un démarrage complet ?

De quoi tu parles démarrage rapide ou complet ?
Pas besoin de redémarrer HA.

tu ajoutes juste les lignes dans ton yaml du firmware de esphome

esphome:
  name: esp32s2mini-03
  friendly_name: esp32s2mini-03
  platformio_options:
    upload_speed: 115200

si ca fonctionne pas
passer le esp en mode download avant de lancer le flash

Oui ! Je viens de le faire. J’avais mis le code dans le fichier de configuration yaml !!!
Je vais devenir chèvre !

Malheureusement, le résultat est le même !

======================== [SUCCESS] Took 167.48 seconds ========================
INFO Successfully compiled program.
esptool.py v4.8.1
Serial port /dev/ttyACM1
Connecting...
ERROR Running command failed: [Errno 32] Broken pipe
ERROR Please try running esptool.py --before default_reset --after hard_reset --baud 115200 --port /dev/ttyACM1 --chip esp32s2 write_flash -z --flash_size detect 0x10000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/firmware.bin 0x1000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/bootloader.bin 0x8000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/partitions.bin 0xe000 /data/cache/platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin locally.
INFO Upload with baud rate 115200 failed. Trying again with baud rate 115200.
esptool.py v4.8.1
Serial port /dev/ttyACM1
Connecting...
ERROR Running command failed: [Errno 32] Broken pipe
ERROR Please try running esptool.py --before default_reset --after hard_reset --baud 115200 --port /dev/ttyACM1 --chip esp32s2 write_flash -z --flash_size detect 0x10000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/firmware.bin 0x1000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/bootloader.bin 0x8000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/partitions.bin 0xe000 /data/cache/platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin locally.

Message après plusieurs tentatives de 0 / reset / 0
Peut-être que je ne fais pas la séquence correctement…

  • avant de cliquer sur le port qui apparaît, je maintiens 0, j’appuie sur reset et je relâche reset (le port disparaît le temps de l’appui sur reset)
  • quand le port réapparaît, je clique dessus et je relâche 0
Leaving...
INFO Upload with baud rate 115200 failed. Trying again with baud rate 115200.
esptool.py v4.8.1
Serial port /dev/ttyACM1
ERROR Running command failed: Could not open /dev/ttyACM1, the port is busy or doesn't exist.
([Errno 11] Could not exclusively lock port /dev/ttyACM1: [Errno 11] Resource temporarily unavailable)

ERROR Please try running esptool.py --before default_reset --after hard_reset --baud 115200 --port /dev/ttyACM1 --chip esp32s2 write_flash -z --flash_size detect 0x10000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/firmware.bin 0x1000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/bootloader.bin 0x8000 /data/build/esp32s2mini-03/.pioenvs/esp32s2mini-03/partitions.bin 0xe000 /data/cache/platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin locally.

Est-ce qu’à tout hasard je me tromperais de version à importer ? A noter que cette option ne figure pas dans le tuto…
J’ai choisi la Factory format puisque le WiFi n’est pas encore actif. Je me trompe ?

Non, c’est bien ça.
L’autre, c’est pour OTA, mais comme il n’est pas flashé avec esphome, tu ne peux pas mettre à jour en OTA.

1 « J'aime »