ESP32 S2: piedinatura, specifiche e configurazione dell’Arduino IDE – 1

Spread the love

ESP32 S2 pinout, specs and Arduino IDE configuration main
ESP32 S2 pinout, specs and Arduino IDE configuration main

Dettagli esp32 s2

In quest’articolo presenterò la famiglia di dispositivi esp32 s2, questi dispositivi sono in fase di sviluppo e alcune parti potrebbero essere modificate in futuro.

Nel passato 2019 è nata la nuova scheda ESP32, la famiglia s2. All’inizio era supportata solo la piattaforma ESP-IDF, ma ora anche la versione per l’ecosistema Arduino è abbastanza matura, sebbene la versione ufficiale per l’IDE Arduino non sia ancora stata rilasciata in veste ufficiale.

Sull’ESP32-S2 non sono presenti Bluetooth o Ethernet MAC, ma include nuove interessanti funzionalità in maniera da essere più appetibile dal mercato dei dispositivi IoT. 
Ha un costo inferiore rispetto all’ESP32 ha un USB-OTG , supporto LCD e per fotocamera .
L’ESP32-S2 è anche in grado di spegnere dinamicamente il ricevitore Wi-Fi quando non è in uso per risparmiare energia.

Inoltre ora monta un potente single core , quindi molti problemi di programmazione come la gestione delle risorse della CPU vengono risolti.

Qui trovi i moduli esp32 s2 di sviluppo ESP32 S2 Saola 1 - Ai-thinke ESP-12K - ESP32 S2 Mini

Specifiche

ESP32 S2 SoC core block diagram
ESP32 S2 SoC core block diagram

Ricorda che esistono molte varianti di questo dispositivo, alcune hanno funzioni specializzati, ma qui mettiamo una descrizione base delle specifiche.

  • CPU e memoria
    • Microprocessore Xtensa® single-core a 32 bit LX7, fino a 240 MHz
    • ROM da 128 KB
    • 320 KB SRAM
    • 16 KB SRAM in RTC
    • Flash incorporato (Nessuno, 2 Mb o 4 Mb)
    • SPI / QSPI / OSPI supporta più flash e chip RAM esterni
  • Wi-Fi
    • Conforme a IEEE 802.11 b / g / n
    • Supporta una larghezza di banda di 20 MHz, 40 MHz all’interno della banda di 2,4 GHz
    • Modalità 1T1R a banda singola con velocità dati fino a 150 Mbps
    • WMM
    • TX / RX A-MPDU, RX A-MSDU
    • Blocco immediato ACK
    • Frammentazione e deframmentazione
  • Interfacce periferiche avanzate
    • 43 × GPIO programmabili
    • 2 × ADC SAR a 12 bit, fino a 20 canali
    • DAC 2 × 8 bit
    • 14 IO con rilevamento del tocco
    • 4 × SPI
    • 1 × I2S
    • 2 × I2C
    • 2 × UART
    • RMT (TX / RX)
    • LED_PWM, fino a 8 canali
    • 1 × USB OTG ad alta velocità
    • 1 × sensore di temperatura
    • 1 × interfaccia telecamera DVP 8/16, implementata utilizzando le risorse hardware dell’I2S
    • 1 × interfaccia LCD (RGB seriale a 8 bit / 8080/6800), implementata utilizzando le risorse hardware dell’SPI2
    • 1 × interfaccia LCD (8/16/24 bit parallela), implementata utilizzando le risorse hardware dell’I2S
  • Sicurezza
    • Avvio sicuro
    • Crittografia Flash
    • OTP a 4096 bit, fino a 1792 bit per gli utenti
    • Accelerazione hardware crittografica:
      • AES-128/192/256 (FIPS PUB 197)
      • Hash (FIPS PUB 180-4)
      • RSA
      • Generatore di numeri casuali (RNG)
      • HMAC
      • Firma digitale
esp32 s2 saola 1 v1.2 annotated photo
esp32 s2 saola 1 v1.2 annotated photo

Piedinatura

Questo dispositivo è molto potente, puoi vedere che ci sono touch pins capacitivi, più di una UART e vari pin analogici.

ESP32 S2 Saola 1MI

Equipaggiato con l’ESP32-S2-WROVER-I , ci sono 2 versioni di questa scheda, 1M e 1MI, l’unica differenza è che l’1MI ha l’antenna IPEX.

Questa scheda ha 3 componenti aggiuntivi rispetto alla configurazione di base: 4 MB SPI flash, 2 MB PSRAM e un LED RGB indirizzabile (WS2812).

ESP32 S2 Saola 1MI pinout mischianti low
ESP32 S2 Saola 1MI pinout mischianti low

Dettaglio ESP32 S2 Saola 1MI con mmagine ad alta risoluzione del pinout

Ai-thinker ESP-12K

Ai-thinker usa un SoC di Ensink Technology che ha le stesse specifiche di ESP32-S2-WROVER, questa scheda ha un semplice led di stato.
Ci sono 2 versioni di questa scheda:

  • ESP-12K (00) senza PSRAM
  • ESP-12K (08) con 8MByte PSRAM
Ai-thinker ESP 12K ESP32 S2 pinout
Ai-thinker ESP 12K ESP32 S2 pinout

Immagine ad alta risoluzione del pinout dell’Ai-thinker ESP 12K ESP32 S2

Configurazione IDE Arduino (Utilizzo del json dev aggiornato)

Aggiungere le boards all’Arduino IDE

Per prima cosa devi aggiungere il descrittore url esp32 al tuo IDE

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

Vai su File --> Preferences ed aggiungi la url su “Additional Boards Manager URLs

Arduino IDE esp32 additional board manager
Arduino IDE esp32 additional board manager

Poi devi aggiungere la nuova board sul Board Manager

Select board manager

La scheda da selezionare è la esp32

Arduino IDE esp32 gestore schede sviluppo per s2 c3 s3
Arduino IDE esp32 gestore schede sviluppo per s2 c3 s3

E’ importante che scegliate una versione del core esp32 >=2.

Arduino IDE esp32 selezione della scheda S2 dal menu
Arduino IDE esp32 selezione della scheda S2 dal menu

Configurazione IDE Arduino (installazione manuale del ramo esp32s2) (Deprecato)

Come si può capire dal titolo, non esiste ancora una procedura semplificata, quindi dovremo compiere diversi passaggi per poter utilizzare la nostra esp32 s2 sull’IDE di Arduino.

Installa dal gestore schede dell’IDE le schede ESP32 standard

Il branch è stato spostato in esp32c3 o master non più esp32s2.

Per prima cosa devi aggiungere il descrittore dell’URL esp32 al tuo IDE

http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json 

Vai a File --> Preferences e aggiungi l’URL su “Url aggiuntive gel gestore di schede”.

Arduino IDE esp32 additional board manager
Arduino IDE esp32 additional board manager

Quindi è necessario aggiungere una nuova libreria dal Boards Manager

Select board manager

Le schede da selezionare sono le esp32

Arduino IDE esp32 boards manager
Arduino IDE esp32 boards manager

Scaricare il gestore dal branch ESP32s2

Il branch è stato spostato in esp32c3 o master non più esp32s2.

Ma ora abbiamo installato il ramo stabile del master sull’IDE e non c’è l’implementazione esp32 s2.

ESP32 S2 download Arduino IDE boards implementation
ESP32 S2 download Arduino IDE boards implementation

Quindi devi scaricare questo branch

Branch GitHub ESP32s2 o Master

poi devi aprire la path dove l’IDE di Arduino memorizza le sue preferenze:

ESP32 S2 download Arduino IDE preferences folder
ESP32 S2 download Arduino IDE preferences folder

Ora trova l’implementazione esp32, nel mio caso è la cartella

<Arduino IDE preferences path>\packages\esp32\hardware\esp32\1.0.4

nel mio caso sarà

C:\Users\renzo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4

Per prima cosa crea una copia della cartella packages\esp32 se vuoi ripristinare la situazione iniziale in futuro.

Quindi apri lo zip del branch e copia lo stesso file e cartella nel percorso esp32

ESP32 S2 copy branch ESP32S2 to esp32 implementation
ESP32 S2 copy branch ESP32S2 to esp32 implementation

Ora puoi trovare l’implementazione del kit di sviluppo ESP32s2 sul tuo IDE Arduino:

ESP32 S2 board manager ESP32s2 Dev Module
ESP32 S2 board manager ESP32s2 Dev Module

Ma non puoi compilare e caricare nulla perché hai bisogno di altri 2 strumenti aggiornati.

Download xtensa-esp32s2-elf

Ma niente può funzionare, questo perché questa scheda non usa xtensa-esp32-elf ma l’xtensa-esp32s2-elf, devi scaricarla da qui:

Tools scaricabili IDF

La versione per il mio sistema operativo Windows 10 è win64.

Download ESPTools

E hai bisogno dell’ultima versione di esptool, puoi controllare l’ultima versione da qui.

GitHub ESPTools

La prima versione che supporta ESP32 s2 è la 3.0.0 e la scaricheremo da questo link.

ESPTools 3.0.0

Metti tutto insieme

Ora devi copiare nella cartella

<Arduino IDE preferences folder>\packages\esp32\hardware\esp32\1.0.4\tools 

questi 2 tools.

ESP32 S2 install xtensa-esp32s2-elf and esptool 3.0.0
ESP32 S2 install xtensa-esp32s2-elf and esptool 3.0.0

Ora il tuo IDE funziona correttamente  Sono commosso.

Il tuo primo sketch ESP32 s2

ESP32 S2 Saola 1MI

Adesso andremo a gestire il led RGB indirizzabile (LED RGB indirizzabile (WS2812), pilotato dal GPIO18) installato sulla scheda.

È necessario installare la libreria Adafruit_NeoPixel.h dal gestore delle librerie.

Ecco il semplice sketch:

/*
 *  Here a simple sketch to test the upload of ESP32 S2 Saola 1MI.
 *  The addressable RGB LED (WS2812), driven by GPIO18 need
 *  Adafruit NeoPixel library
 *  by Mischianti Renzo <https://mischianti.org>
 *
 *  https://mischianti.org/
 *
 */

#include <Adafruit_NeoPixel.h>
#define PIN 18
#define NUMPIXELS 1
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

enum {NONE, RED, GREEN, BLUE};
int ledColor = NONE;

void setup()
{
  pixels.begin();
}

void loop()
{
  switch (ledColor) {
    case NONE:
      pixels.setPixelColor(0, pixels.Color(0, 0, 0));
      pixels.show();
      break;
    case RED:
      pixels.setPixelColor(0, pixels.Color(20, 0, 0));
      pixels.show();
      break;
    case GREEN:
      pixels.setPixelColor(0, pixels.Color(0, 20, 0));
      pixels.show();
      break;
    case BLUE:
      pixels.setPixelColor(0, pixels.Color(0, 0, 20));
      pixels.show();
      break;
    default:
      break;
  }

  ledColor++;
  if (ledColor == 4) {
    ledColor = NONE;
  }

  delay(1000);
}

ESP32-S2-Saola-1MI Led RGB animation test
ESP32-S2-Saola-1MI Led RGB animation test

Ai-thinker ESP-12K

Ora uno sketch per questo microcontrollore:

/*
 *  Here a simple sketch to test the upload of Ai-thinker ESP-12K.
 *  by Mischianti Renzo <https://mischianti.org>
 *
 *  https://mischianti.org/
 *
 */

#define LED_BUILTIN 2

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

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Entrambe le installazioni, personalizzata e standard, funzionanti sul tuo IDE Arduino

Molte persone mi chiedono come switchare dalla nuova e vecchia installazione in maniera agevole, qui una piccola guida.

Rinomina la nuova installazione esp32s2 all’interno della cartella <Arduino IDE preferences folder>/preferences da esp32 in esp32s2 e la “vecchia” standard directory in esp32.

Ora avrai la precedente installazione esp32 (come è la normalità) e in esp32s2 l’installazione da github.

Su “Additional Boards Manager URLs” aggiungi una url fake come

https://dl.espressif.com/dl/package_esp32s2_index.json

Ora duplica da <Arduino IDE preferences folder> il file package_esp32_index.json e rinominalo in package_esp32s2_index.json.

All’interno del nuovo file cambia name in esp32s2 come segue:

{
  "packages": [
    {
      "name": "esp32s2",
      "maintainer": "Espressif Systems",

ora vai nella cartella

<Arduino IDE preferences folder>\packages\esp32s2\hardware\esp32\1.0.4

apri il file platform.txt e cambia la prima linea da name=ESP32 Arduino in name=ESP32s2 Arduino. Riavvia l’IDE.

ESP32 S2 show double installation in your Arduino IDE
ESP32 S2 show double installation in your Arduino IDE

Grazie

  1. ESP32 s2: piedinatura, specifiche e configurazione dell’Arduino IDE
  2. […]

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *