Comment utiliser avec esp32S2 l'affichage sur port série?

Bonjour,
Je commence à utiliser le S2mini qui me plait au niveau adaptabilité et shields tout prêts.
Un peu de mal à configurer l'onglet outils car la doc wemos n'est plus à jour mais
https://www.youtube.com/watch?v=0EhTZAWQWRQ m'a bien aidé.
Pas beaucoup de doc encore sur le web pour le S2

J'ai un message en fin de téléchargement
ERROR: ESP32-S2FH32 chip was placed into download mode using GPIO0.
esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.
To suppress this error, set --after option to 'no_reset'.
To suppress this error, set --after option to 'no_reset'.

Je ne sais pas où mettre le set etc..

Mais est-ce lié je n'ai rien dans le moniteur série

Bon réveillon

Bonjour

L'ESP32-S2 est récent, la carte WEMOS S2 Mini encore plus !!

il faut attendre un peu pour voir une documentation détaillée..

esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.

Que donne cette proposition ? (appui sur Reset après le téléchargement pour passer en mode Exécution) ?

Une D1 MINI dispose d'un CH340 et d'un circuit AUTO-FLASH utilisant les signaux DTR RTS (voir U5 sur ce schéma) :

Sur une D32 également :

Sur une S2 MINI ce circuit est absent :

Donc adopter la méthode habituelle :

  • appuyer sur le bouton 0
  • appuyer sur RESET, relâcher RESET
  • relâcher le bouton 0
  • charger
  • EDIT : appuyer sur RESET après le chargement

https://www.wemos.cc/en/latest/s2/s2_mini.html

https://www.wemos.cc/en/latest/tutorials/s2/get_started_with_arduino_s2.html

Oui, il manque RESET après le chargement.

Qu'il s'agisse d'un ESP32 classique ou S2, à partir du moment où les signaux DTR RTS ne sont pas exploités, la méthode est la même.

esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.
To suppress this error, set --after option to 'no_reset'.
To suppress this error, set --after option to 'no_reset'.

Il s'agit peut être d'une option a ajouter en fin de ligne à Esptool pour permettre à l'ESP32-S2 pour lancer l'exécution automatiquement après téléchargement

(avec son USB natif , l'ESP32-S2 n'a aps tout fait le comportement auquel les ESP32 nous ont habitué)

J'avais fait venir une carte Wemos S2 Mini par curiosité, c'est le moment de la tester !

Un peu de mal à configurer l'onglet outils car la doc wemos n'est plus à jour

En effet la page suivante du site WEMOS ne correspond pas à la toute dernière version du Core ESP32 et ses options diverses nouvelles
https://www.wemos.cc/en/latest/tutorials/s2/get_started_with_arduino_s2.html

Je te laisse faire, je n'en possède pas :wink:

OK , mais pas tout de suite :wink:

Il ya même un mode DFU au programme, un USB MSC.....
S2
modes

Affichage sur port série ?
Pour activer la communication série avec le PC si Serial.begin() dans le code ne suffit pas je tenterai en plus d'activer "USB CDC ON Boot" dans les options pour le "Type de carte ESP32S2 Module"

Merci pour toutes vos réponses.

J'ai essayé le programme link sur une autre install d'arduino ide et pareil le même message qui demande de reset manuel et un set etc

Il s'agit peut être d'une option a ajouter en fin de ligne à Esptool pour permettre à l'ESP32-S2 pour lancer l'exécution automatiquement après téléchargement

C'est où exactement ?
Par ailleurs en setup

Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("test");

Ne donne rien avec ou sans USB CDC on boot mais bloque le programme dans la S2mini .
Si on lance une nouvelle compil, la demande de l'ide de com cesse donc et le programme sur la S2 continue... une piste ?

Sans moniteur série dur dur de coder avec vérif
Une fois le programme chargé pourrais-je utiliser un https://fr.aliexpress.com/item/1005002900034680.html
voire pour tout faire ?
Si oui sur quelles pins Rx et Tx du S2 ?

je ferai des essais demain pour tenter d'apporter des réponses aux diverses questions

En attendant en lançant un moteur de recherche avec comme mots clefs "ESP32-S2 serial" il semble qu'on trouve des infos

L'année prochaine ? :laughing:

OUi !!
La dernière journée de 2021 est un peu chargée en préparatifs divers.....

Il me semble que @bricoleau a écrit une bibliothèque pour ce genre de besoin.

profité d'un petit créneau pour tester avec succès la combinaison suivante :

carte S2 Mini de Wemos/Lolin

Boutique : https://lolin.fr.aliexpress.com/store/group/S2/1331105_10000002298668.html?spm=a2g0o.detail.0.0.5a6fb69dlApnUE

Core ESP32 en version 2.0.2

Options IDE :
32S2 Dev Module
CDC on Boot : Enabled
MSC on Boot : Disabled
DFU on Booot : Disabled
Upload Mode : Internal USB

le code suivant fontionne , OK s'affiche en boucle dans le terminal série :grinning:
Serial.print OK par le port USB natif


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(15, OUTPUT);
  Serial.begin(115200);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(15, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);                       // wait for a second
  digitalWrite(15, LOW);    // turn the LED off by making the voltage LOW
  delay(5000);   
  Serial.println("OK");// wait for a second
}

Cerise sur le gâteau : après plusieurs manipulations des deux boutons pour basculer du mode Execution au mode Flashage et vice versa........le système est passé tout seul en mode flashage automatique. + démarrage automatique du programme une fois le flashage terminé !! :sunglasses:

(les deux phases utilisent chez moi le même port : /dev/ttyACM0)

Elle est pas mal celle-là. La gestion du flashage auto et reboot est donc faite en interne en partant du D- D+ USB ...

oui et je n'ai pas bien saisi le moment précis où celà s'est mis en place et l'appui sur les BP devenus inutiles !

j'etais pressé et suis passé involontairement de deux ports serie usb distincts + commutation manuelle ...
... a un seul port + commutation auto.

Je regarderai la ligne de commande d'Esptool pour voir un éventuel changement

Si ESPTOOL manipule les signaux DTR & RTS, qu'il s'agisse d'un CH340 ou autre, ou d'un port USB natif, le code ne doit pas être différent.
Il utilise de toutes façons les méthodes setDTR() et setRTS() de PYTHON serial.
C'est transparent.

Voir les fonctions bootloader_reset() et hard_reset().

Avec Lolin – Carte Wifi Iot S2 Mini V1.0.0, 4 Mo, Flash, 2 Mo, Psram, Micropython, Compatible Avec Arduino, Esp32-s2fn4r2, Esp32-s2 - Circuits Intégrés - AliExpress
Core ESP32 en version 2.0.2

Options IDE :
32S2 Dev Module
CDC on Boot : Enabled
MSC on Boot : Disabled
DFU on Booot : Disabled
Upload Mode : Internal USB

On a bien un moniteur série fonctionnel

J'ai pas encore corrigé set etc..., ni avoir un mode programmation passant automatiquement mais avec tout cela je peux poursuivre mon projet.

Pour ces détails je vais analyser vos réponses bien sûr.
Une question les GPIO 39 et 40 sont respectivement TxD0 et RxD0 donc on doit pouvoir y connecteur un périphérique série je peux utiliser
HardwareSerial truc(1); ?

Enfin il m'a semblé que preferences a encore des problèmes avec les S2

Une question les GPIO 39 et 40 sont respectivement TxD0 et RxD0 donc on doit pouvoir y connecteur un périphérique série je peux utiliser
HardwareSerial truc(1); ?

39 et 40 ? pas forcément., sur une autre carte avec un ESP32-S2 j'ai vu RXD0 en GPIO38 et TXD0 en GPIO37 ou même GPIO43 et 44

Sur tous les ESP32 on peut faire déboucher les UART sur des pins au choix, bien entendu il y a des pins par défaut dans les fichiers du CORE ESP32 pour IDE

Esssayer d'initialiser puis écrire sur Serial0 et Serial1 voir où ça sort !!
EDIT : Serial1 sort en GPIO17 (TX de l'UART1), par défaut sur cette carte.

Enfin il m'a semblé que preferences a encore des problèmes avec les S2

Pas surprenant , il faut laisser un peu de temps pour que les nouvelles variétés d'ESP32 (-S2, --S3, -C3... etc) soient bien prises en charge sous IDE Arduino.. et documentées
En jouant maintenant avec ces cartes on accepte d'essuyer les plâtres !!
Pour le 'confort' s'en tenir aux ESP32 'classiques' !!