Les mystères de l'upload (séquence de bouton BOOT - RESET - BOOT)

Bonjour,

question sans grande urgence mais qui me laisse perplexe... j'ai bossé un certain nombre de jours sans problème sur une carte ESP32-C3 de WeAct Studio et pour lancer les uploads de programmes, je cliquais simplement sur le bouton qui va bien de l'IDE (2.3.2)

J'ai fais quelques modifications aux fichiers embarqués sur la partition littleFS et pour ça je passe par l'IDE 1.8.19

Depuis je suis obligé de passer par la séquence de bouton boot enfoncé - reset - boot relaché avant de pouvoir faire l'upload. Upload à la fin duquel d'ailleurs je suis oubligé de rebooter la carte, cela ne se fait plus tout seul.

Mystère étrange (pour moi en tout cas)

Quel est le lien entre ces évènements et si par bonheur qq'un pouvait m'expliquer ou simplement me donner un lien vers une doc expliquant la logique derrière tout ça je lui en serait reconnaissant.

1 Like

Bonjour @Mephisto

Aurais tu désactivé l'option 'USB CDC On Boot' (menu Outils d l'IDE) ?

non c'est bien sur Enabled

1 Like

Si tu sélectionnes une autre carte , LOLIN C3 MIni par exemple, les choses s'arrangent-elles ?

le forçage de l'ESP32-C3 en mode bootloader par l'USB natif me parait un peu capricieux , je n'ai pas creusé la question et appuie sur les 2 BP quand cela est nécessaire :wink:

1 Like

Je n'ai pas mon proto sous la main mais j'ai juste mis une autre carte (toute pareille) à la place et là je n'ai pas eu besoin de la séquence de boutons...

JE regarde de plus près ce soir avec le proto

1 Like

Bonsoir

Avec mon prototype le "problème" reste le même, y compris quand je change de type de carte...

Bon ce n'est pas très grave :wink:

1 Like

bonsoir , tu es sous windows ?

non linux

2 Likes

Sur ton prototype des composants sont ils raccordés aux GPIO2 , 8 ou 9 en dehors de la carte We Act Studio ESP32-C3 ?

SI oui, attention à leur impact éventuel au moment du reset (ils ne doivent pas perturber l'indispensable état haut franc à ce moment précis )

Ce sont des 'strapping pins ' conditionnant le démarrage de l'ESP32-C3 :
https://pcbartists.com/design/embedded/esp32-c3-gpio-notes-strapping-pins/

Schéma de ton prototype ?

Il y a effectivement un inverseur sur la GPIO2 qui est prévu. PAs encore câblé car il est prévu pour déterminer, au démarrage le mode de fonctionnement (wifi ou BLE) et comme j'ai prévu que ouvert = wifi il n'est même pas câblé puisque je suis en train de peaufiner la partie wifi...

Donc pour le moment la GPIO2 est « en l'air » avec un pullup interne. Ça peut quand-même venir de là ?

Rien de fou fou dans le proto :

Edit : avec la carte « nue » qui semblait fonctionner comme prévu, j'ai balancé le même code, donc avec le réglage de la résistance de pullup également.

1 Like

Non je ne pense pas , GPIO2 non connecté à autre chose que son pull up de 10K sur la carte We Act est OK
(sauf s'il y a un long fil entre l'inverseur BLE/WIFI et la carte We Act pour capter des parasites)

Par contre le choix de GPIO2 pour la sélection de mode radio posera un pb en position BLE, utiliser pour cela un GPIO sans influence sur le démarrage (pas une des 'strapping pins'). Vu les GPIOs disponibles je te conseille de laisser tranquilles les 'strapping pins' , gérés par ta carte We Act (R5, R6 et R7)

Pourquoi choisir GPIO1 et non EN pour ton bouton de reset ? As tu besoin d'un 'reset logiciel' distinct du reset matériel déjà présent sur la carte ?

j'ai balancé le même code, donc avec le réglage de la résistance de pullup également.

Pour information : un pull up activé dans le code agit au moment de l'éxécution du code , pas pendant le Reset
SEuls sont actifs au Reset les pull-up /pull down internes à la puce (indiqués dans la Data Sheet du microcontrolleur) et ceux câblés à l'extérieur

Il s'appelle reset parce qu'il efface les données enregistrées rien à voir avec un reset de la carte... Désolé pour ce terme ambigu :frowning:

Il est carrément absent pour le moment mais je prendrait soin à le faire assez court.

Si j'ai bien compris ce sera problématique pour un upload de programme, pas pour l'utilisation courante. Ou bien ?

1 Like

à la lecture de cette documentation, je ne pense pas que ce soit gênant ?
Pour passer en mode download, il faut que GPIO01 et GPIO02 soit à 0.
Si GPIO01 est à 1(SPI BOOT), GPIO02 n'est pas regardé.
Donc il ne faut pas que GPIO02 que tu es une position ou GPIO02 soit à 1 au boot.

Ensuite, j'ai choisi les GPIO 1, 2, 3 et 4 pour les avoir du même côté et simplifier le câblage. Je peux aussi prendre de 5 à 8.

1 Like

@terwal : tu fait mention içi aux ESP32 'première version', pas celle des ESP32-C3, les 'strapping pins' ne sont pas identiques selon les versions d'ESP32x,

ESP32-C3 : https://docs.espressif.com/projects/esptool/en/latest/esp32c3/advanced-topics/boot-mode-selection.html

1 Like

attention au GPIO 8 , strapping pins , ( j'ai édité mon dernier post sur ton topic précédent)
sur le lien donné par al1fch , il faut aussi se soucier des GPIO 0 et 10 , cad. les utiliser en sortie , ou en entrée avec une résistance en série

la Data Sheet des ESP32-C3 comporte ceux parties importantes pour le sujet évoqué dans ce fil
Restrictions sur les GPIO: page 20
Strapping Pins : pages 25 à 27

effectivement je n'ai pas regardé aux quels cela s'appliquait.
Par contre dans ton document, il ne mentionne pas le GPIO02, alors que sur le pinout de la carte de @ProfesseurMephisto, il est bien indiqué la fonction "BOOT"?

Edit : dans le dernier document que tu as linké, il est bien indiqué comme problématique.

De quel pin-out parles tu ?

la sérigraphie et le schéma de la carte We Act Studio ESP32-C3 associent logiquement le bouton BOOT au GPIO9, c'est le cas de toutes les cartes avec un ESP32-C3

image

GPIO2 ? Espressif dans ses docs pour le -C3 recommande de le maintenir à l'état haut au démarrage Comme il est flottant au Reset dans la puce, les cartes comme la WE Act Studio ESP32-C3 mettent un pull-up externe
image

Il n'est donc pas recommandé d'y mettre l'interrupteur de sélection de mode WiFi/BLE comme envisagé initialement par @ProfesseurMephisto

1 Like

Effectivement je parles de cette image qui n'est pas quelque chose d'officiel, je pense.

Oui, ce qui est un peu inquiétant, car il sous entends que bien que le GPIO02 n'intervient pas dans le boot, ils ont constatés des défaillances :rofl: