ESP32-S3-WROOM-1: The Versatile Powerhouse for Your Next IoT Project
Explore the ESP32-S3-WROOM-1 module, a feature-rich microcontroller with Wi-Fi and Bluetooth, ideal for advanced makers and embedded engineers.

The ESP32-S3-WROOM-1 is a powerful and versatile Wi-Fi and Bluetooth System-on-Chip (SoC) module developed by Espressif Systems. Released around 2021, it represents a significant upgrade over its predecessors, particularly in processing power, AI acceleration capabilities, and peripheral set. This module is designed for a wide range of IoT applications, from smart home devices and industrial automation to wearable electronics and complex sensor networks.
At the heart of the ESP32-S3-WROOM-1 is the ESP32-S3 chip, which features a dual-core Xtensa LX7 processor. This architecture offers substantial performance improvements, running at clock speeds up to 240 MHz. The LX7 cores are optimized for low-power operation and include advanced features like vector instructions, which can significantly accelerate machine learning and signal processing tasks. This makes the ESP32-S3 a compelling choice for projects requiring on-device intelligence.
Compared to other ESP32 variants, the ESP32-S3-WROOM-1 stands out with its enhanced connectivity options, including Wi-Fi 4 (802.11 b/g/n) and Bluetooth 5 (LE), offering improved range and data rates. It also boasts a generous amount of integrated SRAM and supports external flash memory, allowing for larger and more complex firmware. The abundance of GPIO pins, coupled with support for various communication protocols like I2C, SPI, UART, and USB OTG, makes it incredibly flexible for interfacing with a multitude of sensors and actuators.
This module is particularly well-suited for makers, students, and embedded engineers who need a robust platform for developing sophisticated IoT solutions. Its blend of high performance, extensive connectivity, and AI acceleration capabilities makes it ideal for projects that push the boundaries of what's possible with microcontrollers, especially those involving real-time data processing, machine learning inference, or complex user interfaces.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | ESP32-S3 |
| Architecture | Dual-core Xtensa LX7 |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4MB to 16MB external SPI flash (default 4MB on WROOM-1) |
| RAM / SRAM | 512KB internal SRAM |
| Operating voltage | 3.0V - 3.6V |
| Digital I/O pins | 34 (configurable) |
| Analog / ADC | 20 channels (12-bit ADC) |
| PWM | 14 channels |
| Connectivity | Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5 (LE) |
| USB | USB OTG (Full Speed) |
| Power input | USB (5V), VIN (3.0V-3.6V) |
| Dimensions | 18.0mm x 25.5mm x 2.8mm (module) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | Power Supply (3.3V) |
| GND | Ground |
| EN | Enable (active high) |
| IO0 | Boot mode selection (low for bootloader) |
| IO1 | UART0 TXD |
| IO2 | UART0 RXD |
| IO3 | GPIO3 (ADC1_CH3) |
| IO4 | GPIO4 (ADC1_CH4) |
| IO5 | GPIO5 |
| IO6 | SPI0/1 CS0 |
| IO7 | SPI0/1 CLK |
| IO8 | SPI0/1 MISO |
| IO9 | SPI0/1 MOSI |
| IO10 | SPI0/1 CS1 |
| IO11 | GPIO11 (ADC1_CH0) |
| IO12 | GPIO12 (ADC1_CH1) |
| IO13 | GPIO13 (ADC1_CH2) |
| IO14 | GPIO14 (ADC2_CH0) |
| IO15 | GPIO15 (ADC2_CH1) |
| IO16 | GPIO16 (ADC2_CH2) |
| IO17 | GPIO17 (ADC2_CH3) |
| IO18 | GPIO18 (DAC_CH1) |
| IO19 | GPIO19 (DAC_CH2) |
| IO20 | GPIO20 |
| IO21 | GPIO21 (ADC1_CH5) |
| IO25 | GPIO25 (ADC1_CH6) |
| IO26 | GPIO26 (ADC1_CH7) |
| IO27 | GPIO27 (ADC1_CH8) |
| IO28 | GPIO28 (ADC1_CH9) |
| IO29 | GPIO29 (ADC1_CH10) |
| IO30 | GPIO30 (ADC1_CH11) |
| IO31 | GPIO31 (ADC1_CH12) |
| IO32 | GPIO32 (ADC1_CH13) |
| IO33 | GPIO33 (ADC1_CH14) |
| IO34 | GPIO34 (ADC1_CH15) |
| IO35 | GPIO35 (ADC1_CH16) |
| IO36 | GPIO36 (ADC1_CH17) |
| IO37 | GPIO37 (ADC1_CH18) |
| IO38 | GPIO38 (ADC1_CH19) |
| IO39 | GPIO39 (ADC1_CH20) |
| USB_D- | USB Negative Data Line |
| USB_D+ | USB Positive Data Line |
| VIN | External Power Input (3.0V-3.6V) |
| GND | Ground |
Wiring & circuit basics
The ESP32-S3-WROOM-1 operates at a logic level of 3.3V. Ensure all components connected directly to its GPIO pins are compatible with this voltage. Connecting 5V devices directly can damage the microcontroller. If you need to interface with 5V logic, use a logic level shifter. Powering the module can be done via the USB port (which provides 5V, regulated down to 3.3V by an onboard regulator) or through the VIN pin, which should receive a stable 3.0V to 3.6V supply. The module requires a stable power source capable of delivering at least 500mA, especially during Wi-Fi or Bluetooth transmissions.
For a simple LED project, connect an LED's anode to a GPIO pin (e.g., IO21) through a current-limiting resistor (typically 220-330 Ohms) and connect the LED's cathode to a GND pin. This ensures the LED receives sufficient current without exceeding the GPIO pin's current sourcing/sinking capabilities. For an I2C sensor, identify the SDA and SCL pins on the ESP32-S3 (often mapped to IO33 for SDA and IO34 for SCL, but check your specific board's pinout) and connect them to the sensor's corresponding SDA and SCL pins. Remember to connect the sensor's VCC to 3.3V and GND to a GND pin on the ESP32-S3. I2C devices also require pull-up resistors on the SDA and SCL lines, which may be onboard or need to be added externally.
Always double-check your wiring before powering up the device. Incorrect connections, especially to power and ground pins, can lead to permanent damage. Refer to the specific development board's pinout diagram (e.g., for an ESP32-S3-DevKitC) as the WROOM-1 module itself is often integrated onto such boards, and the pin labels might vary slightly.
Programming & getting started
The ESP32-S3-WROOM-1 is highly versatile in its programming environments. For beginners and rapid prototyping, the Arduino IDE with the ESP32 board support package is an excellent choice. You can also use MicroPython or CircuitPython for a Python-based development experience. For more advanced, production-level applications, Espressif's official ESP-IDF (Espressif IoT Development Framework) provides the most control and access to all hardware features. PlatformIO is another powerful option, supporting multiple frameworks and integrated development environments.
To upload your first program using the Arduino IDE, ensure you have installed the ESP32 board support. Connect the ESP32-S3-WROOM-1 development board to your computer via USB. Select the correct board (e.g., "ESP32S3 Dev Module") and COM port in the IDE. Write a simple sketch, such as blinking an LED connected to a GPIO pin, and click the Upload button. The board will typically enter bootloader mode automatically, or you may need to hold down the BOOT button while pressing the RESET button, then release BOOT to initiate the flash process.