ESP32C3 et platformIO

Bonjour à tous,

ça fait un bon moment que je n’ai pas posté sur ce forum…

Depuis une paire d’année, je suis familiarisé avec l’esp32 « tout court » que je programme avec VScode et platformIO.

Aujourd’hui je rencontre des problèmes avec l’ESP32 C3 :

après quelques tâtonnements, je parviens à le programmer et à monitorer sur le port série. Pour que ça fonctionne, jai du passer « flash size » de 4 à 2, et modifier le fichier board.txt :

j’ai remplacé

esp32c3.serial.disableDTR=false
esp32c3.serial.disableRTS=false

par :

esp32c3.serial.disableDTR=true
esp32c3.serial.disableRTS=true

En revanche, avec platformIO, le code (n’importe quel code, blink ou Serial.print(« coucou »)) à l’air d’uploader mais ensuite il reboot en permanence.

Voici le contenu de platformio.ini :

[env:esp32-c3-devkitm-1]

platform = https://github.com/platformio/platform-espressif32.git

board = esp32-c3-devkitm-1

framework = arduino

board_upload.flash_size=2MB

monitor_speed = 115200

board_build.flash_size=2MB

monitor_rts = 0

monitor_dtr = 0

build_flags= -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1

Bonsoir bouault

Quel est le contenu du message d'erreur apparaissant au boot cyclique ?

Quelle est la référence de la carte comportant l'ESP32-C3 ? son fournisseur ?
Cette carte est-elle totalement conforme au modèle de carte sélectionné dans le fichier de configuration de Platformio ?

petit test rapide avec une carte LILYGO TTGO T_OI PLUS (avec un RISCV ESP32-C3) , blink sur GPIO3 et ce simple fichier platformio.ini minimal , aucun pb

[env:ttgo-t-oi-plus]
platform = espressif32
board = ttgo-t-oi-plus
framework = arduino

Bonsoir al1fch, merci pour ta réponse.
Il n'y a pas de message d'erreur à la compilation ni à l'upload. Mais voici ce qui apparait dans le port serie :`

Saved PC:0x403d10fc
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x438
load:0x403ce000,len:0x918
load:0x403d0000,len:0x24e4
entry 0x403ce000
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT)
Saved PC:0x403d10fc
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x438

etc, en boucle...
La carte est une NodeMCU-series ESP32C3N-Kit 3264.

Bonsoir

Un lien vers le site vendant la carte ?
la référence de la carte ne me dit rien , son nom est 'passe partout' comme font trop souvent les vendeurs sur les plateformes diverses

Je trouve surprenant quil ait fallu déclarer une taliie de mémoire Flash inférieure aux 4Mb usuels, memoire Flash défectueuse ?

je ne sais pas interpréter ce message d'erreur , peut être un indice supplémentaire d'un défaut de la mémoire flash SPI qui accompagne l'ESP32-C3 ? ...... il n'y a peut être pas de code valide après flashage à l'adresse
0x403ce000

(je ne connais pas assez PlatformIO pour savoir si le `board_upload.flash_size=2MB induit une redéfinition du partitionnement en cohérence avec la nouvelle taille totale réduite ou s'il faut écrite cette table )

la carte a été commmandé chez Aliexpress :
https://fr.aliexpress.com/item/1005002748205023.html?spm=a2g0o.order_list.0.0.783b5e5bxm7ugt&gatewayAdapt=glo2fra

Bonjour bouault

En effet sur cette page on trouve divers modèles dont ceratins équipés d'un module de marque AI avec seulement 2Mb de mémoire Flash pour accompagner l'ESP32-C3

Pas facile de s'y retrouver chez ce vendeur qui ne fait pas d'effort pour permettre de distinguer clairement les variantes proposées

Je reste sur l'hypothèse d'une configuration PlatformIO à compléter pour que ce dernier adopte un partitionnement cohérent avec la taille de Flash SPI réduite (2Mb) déclarée.

il en est question ici : https://community.platformio.org/t/board-configuration-for-esp32-c3-2mb-version/22750/2

ça revient à dire que PlatformIO ne connait pas encore ton modèle de carte et qu'il faut l'aider à bien la gérer
.....ta carte est plutôt marginale parmi les cartes avec des ESP32-C3 qui en règle générale adjoignent 4Mb à l'ESP32-C3

Merci beaucoup pour ton aide !
Conformément à ce qui est indiqué sur le lien, j'ai creé un fichier my_partition.csv :slight_smile:

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 0x1F0000,

et j'ai modifié platformio.ini :

[env:esp32c3]
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
;platform = espressif32
platform_packages = 
  toolchain-riscv-esp
  platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.0-rc1
  platformio/tool-esptoolpy @ ~1.30100
framework = arduino
board = esp32-c3-devkitm-1
monitor_rts = 0
monitor_dtr = 0
monitor_speed = 115200
board_build.partitions = my_partitions.csv

Malheureusement ça ne fonctionne toujours pas ...
Au lieu des "OK" toutes les seconde de mon code de test, le moniteur affiche :

--- forcing DTR inactive
--- forcing RTS inactive
--- Terminal on COM8 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H

Pus, en boucle :

ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:QIO, clock div:1
load:0x3fcd6100,len:0x142c
ets_loader.c 78

Je pense commander un autre esp32C3 basique avec 4Mb de mémoire Flash (des suggestions ?), mais en attendant ça me contrarie quand même de ne pas arriver à faire fonctionner celui-ci !

Lorsque je programme la carte (avec succès) avec l'IDE arduino, la config est la suivante :

type de carte : « ESP32C3 dev Module »
Upload Speed : « 921600 »
USB CDC on Boot : « Disabled »
CPU Frequency : « 160MHz (wifi) »
Flash  Frequency  : « 80MHz »
Flash  Mode : « QIO »
Flash  Size : « 2Mb (16Mb) »
Parition Sheme : « Default 4MB with spiffs (1,2MB app/1,5MB SPIFFS) »
Core debug level : « rien »
Erase all flash before sketch upload : disabled

houhou ! J'avance, après de multiples essais ça à l'air de fonctionner en ajoutant dans platformio.ini :

board_build.flash_mode = dio

Je ne comprend pas trop pourquoi mais ça fonctionne....

Bonjour bouault

la persévérance a payé !! tu arrives à un paramétrage 'sur mesure'pout ta carte : taille Flash SPI, partitionnement, mode d'accès (DIO vs QIO) car ta carte présente une différence en matière de Flash SPI avec celle que tu déclares :

ESP32C3 dev Module

DIO : la mémoire Flash SPI installée sur ta carte fonctionne en mode 2 bits et non 4 bits (QIO) (ça concerne la iiaison ESP32-C3 <-> Flash SPI)

Sur le site du fabricant de modules AI, on trouve peut être une description détaillée , voire un schéma,de chacun des modules produits contenant un ESP32-C3. Ton lien Aliexpresse montre une floppée de cartes utilisant divers modules AI

Deux petites cartes à ESP32-C3 me donnent satisfaction , je n'ai pas été voir ailleurs...
Elles sont toutes les deux bien documentées, (schéma....)

https://www.wemos.cc/en/latest/c3/c3_mini.html

http://www.lilygo.cn/prod_view.aspx?TypeId=50044&Id=1361&FId=t3:50044:3

EDIT : confusion entre les cartes LOLIN C3 Mini et LOLIN S2 MIni, je n'ai pas utilisé la carte LOLIN C3 MIni

L'autre carte à ESP32-C3 testée et donnant satisfaction est celle-ci qui offre une Flash SPI DE 4 Mg et une Ram SPI de 400Kb GOOUUU ESP32-C3

Je regarde ça.
Merci encore pour ton aide précieuse !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.