Adafruit Feather ESP32-S3: Your Gateway to Powerful IoT Projects
Explore the capabilities of the ESP32-S3 with this compact, feature-rich development board from Adafruit.
The Adafruit Feather ESP32-S3 is a versatile development board designed for makers, students, and engineers looking to build internet-connected projects. It leverages the powerful Espressif ESP32-S3 System-on-Chip (SoC), a popular choice for its robust Wi-Fi and Bluetooth capabilities, combined with a dual-core processor and ample peripherals. This board is part of Adafruit's Feather ecosystem, known for its compact size, standardized Feather header layout, and integrated battery charging capabilities, making it ideal for portable and wearable applications.
At the heart of the Feather ESP32-S3 is the ESP32-S3 chip, which features two Xtensa LX7 cores running at up to 240 MHz. This chip offers significant improvements over previous ESP32 generations, including native USB support, AI acceleration instructions, and a wider range of GPIO pins. It boasts integrated 2.4 GHz Wi-Fi and Bluetooth 5 (LE) connectivity, enabling seamless communication with other devices and the internet. The ESP32-S3 is a step up from the original ESP32 and the ESP32-S2, offering a more balanced feature set for general-purpose IoT development.
This board is particularly well-suited for projects requiring a good balance of processing power, connectivity, and low power consumption. Its integrated LiPo battery charger makes it easy to create self-powered, portable devices. Whether you are building a smart home sensor, a wearable fitness tracker, a remote control system, or an educational robot, the Feather ESP32-S3 provides the necessary tools and flexibility. The extensive community support and availability of libraries for popular platforms like Arduino IDE and CircuitPython further lower the barrier to entry for complex projects.
Released around 2022, the Adafruit Feather ESP32-S3 builds upon the success of previous Feather boards and ESP32 variants. It aims to provide a powerful yet accessible platform for rapid prototyping. The inclusion of native USB allows for easier firmware flashing and serial communication without the need for a separate USB-to-serial converter. This makes it an excellent choice for beginners venturing into embedded systems and IoT, as well as for experienced developers seeking a reliable and feature-rich platform for their next creation.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-S3 |
| Architecture | Dual-core Xtensa LX7 |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4MB SPI Flash (on-board) |
| RAM / SRAM | 512KB SRAM (internal) |
| Operating voltage | 3.3V |
| Digital I/O pins | 20+ (depending on configuration) |
| Analog / ADC | 14x 12-bit SAR ADCs |
| PWM | Multiple PWM channels available on GPIOs |
| Connectivity | Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5 (LE) |
| USB | Native USB (Micro-USB connector) |
| Power input | 5V via Micro-USB, 3.7V LiPo battery connector, 5V/1A battery charger IC |
| Dimensions | 51mm x 23mm x 8mm (approx.) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V | 3.3V Power Output |
| EN | Reset Pin (active low) |
| VBAT | Battery Input (connect 3.7V LiPo battery) |
| GND | Ground |
| D0 / GPIO1 | General Purpose I/O, SPI Flash Interface |
| D1 / GPIO2 | General Purpose I/O |
| D2 / GPIO3 | General Purpose I/O |
| D3 / GPIO4 | General Purpose I/O |
| D4 / GPIO5 | General Purpose I/O, I2C SCL (default) |
| D5 / GPIO6 | General Purpose I/O |
| D6 / GPIO7 | General Purpose I/O |
| D7 / GPIO8 | General Purpose I/O |
| D8 / GPIO9 | General Purpose I/O, I2C SDA (default) |
| D9 / GPIO10 | General Purpose I/O |
| D10 / GPIO11 | General Purpose I/O |
| D11 / GPIO12 | General Purpose I/O |
| D12 / GPIO13 | General Purpose I/O |
| D13 / GPIO14 | General Purpose I/O |
| D14 / GPIO15 | General Purpose I/O |
| D15 / GPIO16 | General Purpose I/O |
| D16 / GPIO17 | General Purpose I/O |
| D17 / GPIO18 | General Purpose I/O |
| D18 / GPIO19 | General Purpose I/O, SPI MOSI (default) |
| D19 / GPIO20 | General Purpose I/O, SPI MISO (default) |
| D20 / GPIO21 | General Purpose I/O, SPI SCK (default) |
| D21 / GPIO25 | General Purpose I/O, ADC1_CH8 |
| D22 / GPIO26 | General Purpose I/O, ADC1_CH9 |
| D23 / GPIO27 | General Purpose I/O, ADC1_CH10 |
| D24 / GPIO33 | General Purpose I/O, ADC1_CH11 |
| D25 / GPIO34 | General Purpose I/O, ADC1_CH12 |
| D26 / GPIO35 | General Purpose I/O, ADC1_CH13 |
| D27 / GPIO36 | General Purpose I/O, ADC1_CH14 |
| D28 / GPIO37 | General Purpose I/O, ADC1_CH15 |
| USB | Micro-USB Port (Power and Data) |
Wiring & circuit basics
Powering the Adafruit Feather ESP32-S3 is straightforward. You can power it via the Micro-USB port using a standard 5V USB power supply or a USB port on a computer. The board also features a JST connector for a 3.7V LiPo battery, allowing for portable and battery-powered applications. An onboard battery charger IC manages charging when USB power is connected. The operating voltage for the microcontroller and its peripherals is 3.3V. Avoid connecting voltages higher than 3.3V directly to the GPIO pins, as this can damage the ESP32-S3.
When connecting external components, always respect the 3.3V logic level of the Feather ESP32-S3. If you need to interface with 5V devices, use a logic level shifter. For example, to blink an LED, connect an LED's anode to a digital GPIO pin (e.g., D21/GPIO25) and its cathode through a current-limiting resistor (typically 220-330 ohms) to a GND pin. This resistor prevents excessive current from flowing through the LED and the ESP32-S3 pin.
For sensors or modules that use I2C communication, the Feather ESP32-S3 has dedicated pins. The default I2C pins are D4/GPIO5 for SCL and D8/GPIO9 for SDA. Connect the VCC pin of the I2C device to the 3V pin on the Feather, the GND pin to a GND pin, the SCL pin to D4, and the SDA pin to D8. Ensure the I2C device also operates at 3.3V or use a logic level shifter if it's a 5V device.
Programming & getting started
The Adafruit Feather ESP32-S3 is well-supported by several popular development environments. For beginners and those familiar with Arduino, the Arduino IDE is an excellent choice. You'll need to install the ESP32 board support package via the Board Manager. CircuitPython, developed by Adafruit, offers a Python-based programming experience that is easy to learn and use, ideal for rapid prototyping. Simply download the latest CircuitPython firmware for the ESP32-S3 and drag-and-drop your Python code onto the board when it appears as a USB drive.
To upload your first program using the Arduino IDE: 1. Install the ESP32 board support. 2. Select the 'Adafruit Feather ESP32-S3' from the Boards menu. 3. Connect the Feather ESP32-S3 to your computer via Micro-USB. 4. Write your sketch (e.g., a simple Blink sketch). 5. Select the correct COM port and click the Upload button. For CircuitPython, after flashing the firmware, simply create a file named 'code.py' on the CIRCUITPY drive and write your Python code. The board will automatically run the code when it boots.