back

Getting Started with ESP32 Arduino

ESP32 was originally for MIDI and webserver by Arduino 1 IDE,
but ESP32-S3 has in-circuit debugging via USB-Serial-JTAG peripheral
.
SimHub Custom Serial plugin only writes to COM ports, logging responses;
ESP32-S3 board second USB ports can attach to other Windows apps..

ESPConnect checks ESP32 board operation, features

Set speed to 115200 (factory default)
  • In Device Manager, check driver installation
  • for boards with a single USB port,
    - Press and release RST button while holding down BOOT.
    - Click ESPConnect CONNECT

VS Code, ESP-IDF, arduino-idf-component

  Cannot install separate ('portable') Arduino 2 for ESP32 vs STM32.

ESP32 Arduino Core’s documentation



ESP32-S3 has Dual-core 240 MHz Xtensa LX7

  ESP32-Cx familes have single RISC-V cores.


This pageArduino and ESP32-S2-Saola-1

Arguably more like single L106 core ESP8266,
ESP32-S2 has a Single-core 240 MHz Xtensa LX7,
while regular ESP32 had dual LX6 microprocessors.

Ordered from JameCo (late 2021):
  ESP32-S2-Saola-1M ESP32-S2-WROOM Dev 4MB Flash XX0H32


  ESP32-S2-WROOM Data sheet   ESP32-S2-Saola-1 user guide
Arduino pin assignments
There are now also ESP32-S2 boards from LILYGO, SparkFun, UnexpectedMaker

ESP32-S2-Saola-1 Arduino installation

Arduino ESP32-S2 webservers

Specifically, ESPAsyncWebServer with WebSocket e.g. for MIDI

TinyUSB for Arduino ESP32-S2

Gamepad, second serial port and (perhaps) flash filesystem

Arduino ESP32-S2 USB MIDI

Did not make a useful composite device e.g. with gamepad and CDC serial;
Wi-Fi MIDI, particularly by WebSocket, seems a promising alternative.

Servo support

GitHub: Other:

ESP32-S2 compared to ESP32 - Jun 14, 2020

YouTube:  ESP32-S2: How relevant for Makers? First tests

YouTube:  Raspberry Pi Pico vs ESP32-S2 and STM32 Blackpill

solderless breadboarding

ESP32-S2-Saola-1 width is inconvenient for 400-point breadboards:


.. but a merely temporary obstacle to anyone with bandsaw access:


ESP32-S2 pin allocations

per libraries/esp32s2LED/src/Servo.h:
// Map Arduino pins to available ESP32-S2 PWM pins
#define PC13 2                          // typical LED pin:  GPIO0
#define WS2812_PIN  18                  // GPIO18 for ESP32-S2-Saola-1M (WROOM)
// 8,9 are SDA, SCL; 15-16 are XTAL; 17 is DAC1; 19-20 are USB; 22-25 are nc
// 26 is Flash; 27-32 are nc; 39-42 are JTAG; 43-44 are COM port; 46 is input-only
#define PB9  6
#define PB8  7
#define PB7  10
#define PB6  11
#define PA10 12
#define PA9  13
#define PA8  14
#define PB1  21
#define PB0  33 // <- level converted
#define PA7  34 // <- level converted
#define PA6  35
#define PA3  36
#define PA2  37 // <- level converted
#define PA1  38 // <- level converted
#define PA15 45

USB OTG pinout


  • Green to GPIO20
  • White to GPIO19
  • Black to - bus
  • GND to - bus

Level converter for 5V PWM fans and Servos


maintained by blekenbleu