Archivi tag: ESP32-S3

ESP32-C3 Super Mini vs ESP32-S3 Super Mini: differenze e quale scegliere

In riferimento al post pubblicato la scorsa settimana, mi è arrivato un messaggio da parte di un lettore: cercando la stessa schedina in rete ha notato che, oltre alla versione ESP32-C3 Super Mini, viene proposta anche la ESP32-S3 Super Mini e mi ha chiesto, che cosa cambia tra le due schede.

La domanda è più che legittima, perché a colpo d’occhio le due board sembrano quasi identiche: stesso formato compatto, stesso uso tipico in progetti IoT e didattici. In realtà le due schede si differenziano in molte cose: architettura della CPU, prestazioni, numero di GPIO disponibili, gestione USB, e (in molti modelli S3) perfino dettagli pratici come la presenza dei pad per collegare direttamente una batteria Li-Po con ricarica via USB.

In questo articolo metto quindi a confronto ESP32-C3 Super Mini e ESP32-S3 Super Mini, prima indico le differenze elettroniche (quelle che dipendono dal chip), poi evidenzio le differenze che dipendono dalla specifica schedina e dal produttore, così da capire subito quale scegliere in base al progetto e agli obiettivi didattici.

Premessa importante: “Super Mini” non è uno standard

“Super Mini” descrive un form factor molto diffuso, ma non è un nome “ufficiale” che garantisce caratteristiche identiche tra produttori.

Quindi:

  • le differenze C3 vs S3 (CPU, USB, risorse) sono reali e dipendono dal chip;
  • dettagli come LED onboard, pin esposti, flash/PSRAM, pad batteria possono variare a seconda del lotto e del venditore.

In questo post separo volutamente:

  • differenze elettroniche del chip;
  • differenze dipendenti dal produttore.

Confronto tra le due schede

Nella tabella che segue vengono indicate le differenze tra le due schede:

Aspetto ESP32-C3 Super Mini ESP32-S3 Super Mini
CPU RISC-V single-core (tipicamente fino a 160 MHz) Xtensa LX7 dual-core (tipicamente fino a 240 MHz)
Potenza percepita ottima per IoT “snello” migliore su web UI ricche, log, parsing, multitasking
GPIO disponibili in genere meno margine in genere molti più GPIO “utili”
USB molto comoda per programmazione/debug USB OTG (progetti USB “creativi”) + programmazione
Progetti tipici sensori/attuatori, MQTT/HTTP, BLE semplice progetti più “ricchi”, USB, più periferiche insieme
Batteria (su molte board) spesso richiede gestione esterna spesso include pad batteria + ricarica USB (dipende dal modello)

Pinout ESP32 S3 Super mini

Differenze elettroniche

CPU: single-core vs dual-core

Questa è la differenza più importante:

  • ESP32-C3: single-core > perfetto per progetti ripetibili, sensori e automazioni;
  • ESP32-S3: dual-core > più margine quando ad esempio uniamo web server + gestione rete + periferiche + log + UI; quindi con S3 possiamo gestire programmi di dimensioni più grandi e più complessi.

Utilizzo esteso dell’USB

  • Con C3 la USB è “comoda” perché semplifica upload e debug (senza chip USB-serial esterno);
  • con S3 poiché è supportato il mondo USB OTG: potete progettare dispositivi che si presentano al PC come periferiche USB (a seconda delle librerie e della configurazione).

GPIO e periferiche

S3 offre in genere:

  • più GPIO disponibili (più alternative di cablaggio);
  • più margine quando usate più bus/linee insieme (SPI, I2C, UART multiple, ecc.).

Differenze dipendenti dal produttore

LED onboard

Su molte ESP32-C3 Super Mini il LED onboard:

  • è su un pin specifico (spesso GPIO8),
  • può essere in logica invertita (active-LOW: LOW = acceso, HIGH = spento).

Per evitare confusione (e rendere gli esempi robusti tra lotti), io consiglio di dichiarare due costanti:

const int PIN_LED = 8;     // esempio tipico: verificate sul vostro modello
const int LED_ON  = LOW;   // se il LED è active-LOW
const int LED_OFF = HIGH;

void setup() {
  pinMode(PIN_LED, OUTPUT);
  digitalWrite(PIN_LED, LED_OFF);
}

void loop() {
  digitalWrite(PIN_LED, LED_ON);
  delay(300);
  digitalWrite(PIN_LED, LED_OFF);
  delay(300);
}

Se sulla vostra scheda il LED non è invertito, basta scambiare LED_ON/LED_OFF e il resto del codice rimane identico.

S3: LED RGB

Molte schede ESP32-S3 Super Mini (in generale vale per tutte quelle che ho usato ed acquistate su diversi store) includono un LED RGB (tipo WS2812) molto utile per “stati” e debug (Wi-Fi ok, errore, modalità AP, ecc.).
Attenzione: pin e presenza dipendono dalla board. Prima di copiare uno sketch per la gestione del led RGB, verificate sullo schema/pinout del vostro modello.

Batteria e ricarica

Modello ESP32-S3 Super Mini (nel mio caso acquistato su Amazon)

Su questa scheda, nello schema sono indicati i pin/pad a cui saldare la batteria. In altre parole: su questa versione è previsto il collegamento diretto di una Li-Po 1S (3,7 V nominali) tramite piazzole dedicate.
Nella maggior parte delle Super Mini S3 che supportano batteria trovate (di solito sul retro) due pad del tipo:

B+ > positivo batteria
B- > negativo batteria (GND)

In molte varianti, come quella acquistata da me, insieme ai pad batteria, è presente anche un circuito di ricarica via USB-C e un LED di stato legato alla carica (gestito dal circuito di power/charge, non via GPIO). Lo schema del venditore è sempre il riferimento migliore per capire cosa è effettivamente presente sulla tua board.

Avvertenze pratiche molto importanti

  • Usate solo batterie 1S (Li-Po/Li-Ion 3,7 V nominali; 4,2 V a fine carica).
    Controllate la polarità prima di saldare: inversione o corto su una Li-Po può danneggiare scheda e batteria;
  • consiglio di non saldare direttamente la batteria al PCB, potete saldare ai pad un cavetto con connettore (es. JST) così la batteria diventa removibile e riducete stress meccanici sulle piazzole.

Buon Making a tutti 🙂