MakerLab
ESP32ESP32-S2-Saola-1

ESP32-S2-Saola-1: Your Gateway to the Xtensa LX7 World

The ESP32-S2-Saola-1 is a compact development board featuring Espressif's Wi-Fi-only ESP32-S2 microcontroller, ideal for IoT projects requiring robust connectivity and a single-core processor.

ESP32-S2-Saola-1

The ESP32-S2-Saola-1 is a popular development board designed by Espressif Systems, serving as an accessible platform for exploring the capabilities of their ESP32-S2 System-on-Chip (SoC). This board is particularly well-suited for makers, students, and engineers who need a reliable Wi-Fi enabled microcontroller for Internet of Things (IoT) applications. It strips away the Bluetooth functionality found in its predecessors, focusing solely on Wi-Fi connectivity, which can simplify development and reduce power consumption in certain scenarios.

At the heart of the ESP32-S2-Saola-1 is the ESP32-S2 chip, a powerful and versatile microcontroller built on a single-core 32-bit Xtensa LX7 processor. This architecture offers a significant upgrade in performance and security features compared to earlier ESP32 variants. The ESP32-S2 boasts a higher clock speed, improved peripheral set, and enhanced security mechanisms like hardware acceleration for AES and SHA, making it a robust choice for connected devices that need to be secure and responsive.

Positioned within the ESP32 family, the ESP32-S2 represents a distinct evolution, prioritizing Wi-Fi connectivity and a single-core design for efficiency and cost-effectiveness. Unlike the dual-core original ESP32 which includes Bluetooth, the ESP32-S2 focuses on delivering a strong Wi-Fi experience. This makes it an excellent choice for projects where Bluetooth is not a requirement, such as smart home sensors, remote monitoring systems, or simple web-connected gadgets. Its release around 2020 brought a modern, secure, and capable Wi-Fi microcontroller to the maker community.

The ESP32-S2-Saola-1 board is designed for ease of use, featuring a standard USB-C connector for power and programming, and readily accessible GPIO pins. This makes it straightforward to prototype with, whether you're using the Arduino IDE, MicroPython, CircuitPython, or Espressif's own ESP-IDF. It's an ideal platform for learning about embedded systems, wireless communication, and IoT development, offering a balance of power, connectivity, and affordability for a wide range of projects.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCESP32-S2 (ESP32-S2FN4R2)
ArchitectureSingle-core 32-bit Xtensa LX7
Clock speedUp to 240 MHz
Flash / Storage4MB SPI Flash (onboard)
RAM / SRAM512 KB SRAM (internal)
Operating voltage3.3V
Digital I/O pins21 (configurable)
Analog / ADC14x 12-bit SAR ADCs
PWMYes (up to 8 channels, configurable GPIOs)
Connectivity2.4 GHz Wi-Fi (802.11 b/g/n)
USBUSB-to-UART bridge (CP2102 or CH340), native USB OTG (on ESP32-S2 chip)
Power input5V via USB-C or 5V pin, 3.3V via 3.3V pin
DimensionsApprox. 51.1mm x 24.1mm x 3.7mm (PCB only)

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable (Reset)
BOOTBoot Mode Select (Low for bootloader, High for normal boot)
GPIO0General Purpose Input/Output, also used for Boot Mode
GPIO1General Purpose Input/Output, UART0 TXD
GPIO2General Purpose Input/Output, UART0 RXD
GPIO3General Purpose Input/Output, ADC1_CH0, Touch Sensor 0
GPIO4General Purpose Input/Output, ADC1_CH2, Touch Sensor 1
GPIO5General Purpose Input/Output, SPI2 CS0
GPIO6General Purpose Input/Output, SPI2 SCK
GPIO7General Purpose Input/Output, SPI2 MISO
GPIO8General Purpose Input/Output, SPI2 MOSI
GPIO9General Purpose Input/Output, ADC1_CH3, Touch Sensor 2
GPIO10General Purpose Input/Output, ADC1_CH4, Touch Sensor 3
GPIO11General Purpose Input/Output, ADC1_CH5, Touch Sensor 4
GPIO12General Purpose Input/Output, ADC1_CH6, Touch Sensor 5
GPIO13General Purpose Input/Output, ADC1_CH7, Touch Sensor 6
GPIO14General Purpose Input/Output, ADC1_CH8, Touch Sensor 7
GPIO15General Purpose Input/Output, ADC1_CH9, Touch Sensor 8
GPIO16General Purpose Input/Output, ADC1_CH10, Touch Sensor 9
GPIO17General Purpose Input/Output, ADC1_CH11, Touch Sensor 10
GPIO18General Purpose Input/Output, ADC1_CH12, Touch Sensor 11
GPIO19General Purpose Input/Output, ADC1_CH13, Touch Sensor 12
GPIO20General Purpose Input/Output, ADC1_CH14, Touch Sensor 13
GPIO21General Purpose Input/Output, ADC1_CH15, Touch Sensor 14
GPIO33General Purpose Input/Output, ADC2_CH4, Touch Sensor 14
GPIO34General Purpose Input/Output, ADC2_CH5, Touch Sensor 13
GPIO35General Purpose Input/Output, ADC2_CH6, Touch Sensor 12
GPIO36General Purpose Input/Output, ADC2_CH7, Touch Sensor 11
GPIO37General Purpose Input/Output, ADC2_CH8, Touch Sensor 10
GPIO38General Purpose Input/Output, ADC2_CH9, Touch Sensor 9
GPIO39General Purpose Input/Output, ADC2_CH10, Touch Sensor 8
GPIO40General Purpose Input/Output, ADC2_CH11, Touch Sensor 7
GPIO41General Purpose Input/Output, ADC2_CH12, Touch Sensor 6
GPIO42General Purpose Input/Output, ADC2_CH13, Touch Sensor 5
GPIO43General Purpose Input/Output, ADC2_CH14, Touch Sensor 4
GPIO44General Purpose Input/Output, ADC2_CH15, Touch Sensor 3
GPIO45General Purpose Input/Output, ADC2_CH16, Touch Sensor 2
GPIO46General Purpose Input/Output, ADC2_CH17, Touch Sensor 1
USB D-USB Data Minus
USB D+USB Data Plus

Wiring & circuit basics

The ESP32-S2-Saola-1 operates at a logic level of 3.3V. Connecting 5V devices directly to its GPIO pins can cause permanent damage. If you need to interface with 5V components, use a logic level shifter or a voltage divider for inputs. Powering the board is typically done via the USB-C connector, which supplies 5V. This 5V is then regulated down to 3.3V by an onboard regulator to power the ESP32-S2 chip and its peripherals. You can also power the board by applying 5V to the '5V' pin or a regulated 3.3V to the '3V3' pin, but be cautious not to exceed the voltage limits.

When connecting external components, always ensure they are compatible with 3.3V logic. For example, to blink an LED, connect a current-limiting resistor (typically 220-330 ohms) in series with the LED, and then connect this series combination between a chosen GPIO pin and GND. To read a sensor, ensure its operating voltage and logic levels are 3.3V. For I2C communication, the ESP32-S2 has dedicated pins (often GPIO33 for SDA and GPIO34 for SCL, though this can vary and should be checked on the specific board silkscreen or documentation). Connect the sensor's VCC to 3V3, GND to GND, SDA to the ESP32-S2's SDA pin, and SCL to the ESP32-S2's SCL pin. Remember to include pull-up resistors on the SDA and SCL lines if your sensor doesn't have them built-in.

For more complex peripherals like SPI devices, ensure you connect the MOSI, MISO, SCK, and CS (Chip Select) pins correctly to the corresponding SPI pins on the ESP32-S2. Always refer to the specific pinout diagram for your ESP32-S2-Saola-1 board to identify the available GPIOs and their alternate functions. Using the onboard USB-to-UART chip simplifies programming as it handles the serial communication needed to flash new code onto the device.

Programming & getting started

The ESP32-S2-Saola-1 is well-supported by several popular development environments. For beginners and those familiar with Arduino, the Arduino IDE with the ESP32 board package installed is an excellent choice. You'll need to install the ESP32 core via the Board Manager. For those who prefer Python, MicroPython and CircuitPython offer a more abstracted, high-level programming experience. The official Espressif IoT Development Framework (ESP-IDF) provides the most control and access to the chip's full capabilities, ideal for professional development. PlatformIO, an extension for VS Code, also offers robust support for the ESP32-S2.

To upload your first program using the Arduino IDE: 1. Install the ESP32 board support in the Arduino IDE via the Board Manager. 2. Select the correct board (e.g., 'ESP32-S2 Dev Module' or a specific Saola board if available) and the corresponding COM port. 3. Write your sketch, for example, a simple 'Blink' sketch. 4. Connect the ESP32-S2-Saola-1 to your computer via USB. Ensure the BOOT and EN pins are in their default state (usually high). 5. Click the Upload button. The IDE will compile the code and flash it to the board. You may need to manually put the board into bootloader mode by pressing and holding the BOOT button while pressing and releasing the EN button, then releasing BOOT, just before or as the upload starts, depending on your board's configuration and USB-to-UART chip.

Project ideas

Wi-Fi Connected ThermometerRead temperature from a DS18B20 sensor connected to a GPIO pin and broadcast the readings over Wi-Fi to a web server or cloud platform. Uses GPIO for sensor, Wi-Fi for connectivity, and teaches basic IoT data logging.
Web-Controlled LED StripControl an addressable RGB LED strip (like WS2812B) via a web interface hosted on the ESP32-S2. Uses a GPIO pin for data, Wi-Fi for network access, and introduces web server development on microcontrollers.
Simple MQTT Sensor NodeBuild a battery-powered sensor node that publishes environmental data (e.g., from a BME280 sensor) to an MQTT broker. Uses I2C for the sensor, Wi-Fi for MQTT communication, and teaches publish/subscribe patterns for IoT.
USB HID Device (Keyboard/Mouse)Leverage the ESP32-S2's native USB OTG capabilities to act as a USB Human Interface Device, like a custom keyboard or mouse. Uses the native USB pins and teaches about USB protocols.
ESP32-S2 based Web ServerHost a simple static website directly on the ESP32-S2, allowing users to interact with the board through a browser. Uses Wi-Fi and teaches embedded web server development and file system management.
OTA Update Capable DeviceDevelop a project that can receive firmware updates wirelessly over Wi-Fi (Over-The-Air updates). Uses Wi-Fi and teaches robust firmware deployment strategies for IoT devices.

Buying tips & gotchas

When purchasing an ESP32-S2-Saola-1, be aware that the exact USB-to-UART chip can vary (CP2102 or CH340 are common), which might require installing specific drivers. Always check for official documentation or community forums for the most accurate pinout and known issues for your specific board revision. While the ESP32-S2 is Wi-Fi only, ensure your project doesn't require Bluetooth, as this board lacks it. Accessories like breadboards, jumper wires, sensors (temperature, humidity, motion), and a reliable 3.3V power supply are highly recommended for prototyping. Be cautious of very cheap clones that may use counterfeit chips or have poor quality control.