Arduino and ESP32-S2-Saola-1

Ordered from JameCo: ESP32-S2-Saola-1M ESP32-S2-WROOM Dev 4MB Flash


  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


ESP32-S2 compared to STM32, Raspberry Pi Pico


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