Skip to content

uPesy ships directly only in France !

uPesy products available on Amazon for EU

Contents Menu Expand Light mode Dark mode Auto light/dark mode

Premiers pas avec la carte uPesy ESP32S3DevKit

(Mis à jour le 12/10/2023)

Ce guide va vous aider pour vos premières utilisations de votre uPesy ESP32S3 DevKit : une carte basée sur la puissante puce ESP32S3, conçue des applications gourmandes en CPU et mémoire.

Comment programmer facilement l’ESP32S3 ?

Avertissement

Si c’est la première fois que vous touchez à une carte ESP32, je vous conseille de commencer par une carte basée sur le module ESP32 Wroom classique, au lieu du modèle ESP32S3 plus récent et plus complexe.

La programmation de l’ESP32S3 se fait avec les mêmes outils qu’un module ESP32 classique. Vous devez juste vous assurer d’avoir une version récente du portage Arduino , qui intègre les nouveaux modèles.

Programmer l’ESP32S3 avec MicroPython

MicroPython est déjà installé sur la carte uPesy ESP32S3. Vous pouvez directement utiliser votre éditeur préféré pour programmer la carte.

Programmer l’ESP32S3 avec du code Arduino dans l’IDE

Si vous partez de zéro, le lien vers le tutoriel pour installer et programmer l’ESP32 dans l’application Arduino IDE . Si vous déjà les outils d’installés, je vous recommande vivement d’utiliser la dernière version disponible :

../_images/install-latest-esp32-package-for-esp32s3.png

Ensuite, vous pouvez choisir comme carte :

../_images/upesy-esp32s3-select-correct-board.png

En attendant que la carte uPesy ESP32S3 soit répertoriée dans la liste, vous pouvez choisir le modèle basique “ESP32S3 Dev Module” qui fera très bien l’affaire.

Voici la configuration que je vous conseille de mettre pour les différents paramètres.

../_images/upesy-esp32s3-default-config-arduino-ide.png

Note

La plupart concernent l’USB, que je déconseille d’utiliser dans un premier temps. Le plus important est l’activation de la PSRAM

Communication avec la carte ESP32S3

Comme vous avez pu le remarquer, la carte possède 2 ports USB. Il y a deux manières de programmer le module ESP32S3 :

  • Via l’UART avec un convertisseur USB → UART. C’est exactement la même manière qu’avec l’ESP32 classique. C’est le connecteur USB-C de droite.

  • Via l’USB natif. L’ESP32S3 peut communiquer directement en USB avec l’ordinateur. Même s’il présente certains avantages, il est plus difficile à mettre en place et est plus susceptible de bugger lors de la réalisation de vos programmes (Mode Deep Sleep par exemple). C’est le connecteur USB-C de gauche.

La méthode UART sera toujours prioritaire par rapport à l’USB.

Note

Je vous conseille donc d’utiliser le mode UART pour commencer.

Astuce

Avoir 2 ports USB distincts peut permettre de debugger un programme qui communique en USB à un périphérique externes via la liaison UART. Et vice-versa.

Communication via la liaison série (UART)

Contrairement aux autres cartes ESP32 d’uPesy, ce modèle utilise le convertisseur CH340. Si vous ne l’avez jamais utilisé sur une autre carte, l’installation du driver sera probablement nécessaire. Sur les versions récentes de Windows, le driver s’installe automatiquement lors du branchement de la carte à l’ordinateur (connexion Internet requise).

../_images/upesy-esp32-ch340g-detection-notification.png

Au début, en allant dans le gestionnaire de périphériques, le CH340 n’est pas reconnu.

../_images/upesy-esp32-ch340g-undetected-device-manager.png

Ensuite une fois que l’installation automatique du driver est finie, le CH340G est bien détecté en tant que convertisseur USB → UART.

../_images/upesy-esp32-ch340g-detected-device-manager.png

Note

Si l’installation automatique du CH340 ne se fait pas, vous pouvez essayer de forcer la recherche les nouvelles mises à jour dans Windows Update.

Sinon, vous pouvez toujours installer manuellement le drive. Ce tutoriel en français qui explique bien la procédure.

Comme avec l’ESP32 classique, le convertisseur met en mode DOWNLOAD l’ESP32S3 automatiquement lors du téléversement d’un programme. Vous pouvez toujours le faire manuellement avec la manipulation des boutons EN et BOOT .

Vous pouvez ensuite choisir le port COM dans Outils → Port et flasher le programme Blink suivant :

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(2, OUTPUT);
  Serial.begin(115200);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
  Serial.println("LED Allumée");
  delay(250);                       // wait for a second

  digitalWrite(2, LOW);    // turn the LED off by making the voltage LOW
  delay(250);                       // wait for a second
  Serial.println("LED Eteinte");
}

Pour la LED RGB (Librairie FastLED requise installable depuis l’Arduino IDE) :

#include <FastLED.h>

#define LED_PIN     38
#define NUM_LEDS    1
#define BRIGHTNESS  64
#define LED_TYPE    WS2812B
#define COLOR_ORDER RGB
CRGB leds[NUM_LEDS];

#define UPDATES_PER_SECOND 100

CRGBPalette16 currentPalette;
TBlendType    currentBlending;

void setup() {
    delay( 3000 ); // power-up safety delay
    FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
    FastLED.setBrightness(  BRIGHTNESS );

    currentPalette = RainbowColors_p;
    currentBlending = LINEARBLEND;
}

void loop()
{

    static uint8_t startIndex = 0;
    startIndex = startIndex + 1; /* motion speed */

    FillLEDsFromPaletteColors( startIndex);

    FastLED.show();
    FastLED.delay(1000 / UPDATES_PER_SECOND);
}

void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
    uint8_t brightness = 255;
    for( int i = 0; i < NUM_LEDS; ++i) {
        leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
        colorIndex += 3;
    }
}

Note

Même si vous changez de programme, la LED conserve sa dernière couleur enregistrée dans sa mémoire (Il y a une mini puce logique incluse dans la LED).

Communication via USB (CDC & DFU)

La communication USB sera détaillée dans la documentation complète de la carte ultérieurement.

ESP32 Pinout : Comprendre les broches de l’ESP32

L’ESP32S3 possède beaucoup plus de broches que l’ESP32 classique. Les périphériques sont globalement les mêmes (SPI, I2C…).

La carte possède 2 LEDs intégrées:

  • Une LED blue sur la broche GPIO2 (comme sur les cartes uPesy ESP32)

  • Une LED RGB (type WS2812B Mini) sur la broche 38 , contrôlable via des librairies.

schéma des broches de l’uPesy ESP32S3 complet

Pinout de la carte uPesy ESP32S3

Si besoin, vous pouvez consulter le tutoriel sur le fonctionnement détaillé de chaque broche de l’ESP32S3 (ESP32S3 Pinout) pour avoir plus de précisions sur les pins de l’ESP32.

Apprendre la programmation sur l’ESP32

Le code est globalement identique à celui de l’ESP32 classique via le portage Arduino-ESP32. Il faut juste adapter les numéros des broches en conséquences. Vous trouverez plus d’informations à ce sujet sur la page détaillé du pinout de l’ESP3S3.

Documentation technique de l’ESP32S3

Pour finir la découverte de cette nouvelle carte, je vous encourage fortement à lire la documentation de la carte uPesy ESP32S3 DevKit , pour en apprendre davantage sur ses caractéristiques techniques et suivre les recommandations d’usage.