Unexpected Maker FeatherS3: Your Feather-Compatible ESP32-S3 Powerhouse
A compact and powerful development board featuring the ESP32-S3, designed for makers who need Wi-Fi, Bluetooth, and ample GPIO for complex projects.
The Unexpected Maker FeatherS3 is a highly capable development board built around the Espressif ESP32-S3 System-on-Chip (SoC). It follows the popular Adafruit Feather form factor, making it compatible with a vast ecosystem of FeatherWings and accessories. This board is designed for makers, hobbyists, and embedded engineers who require a robust microcontroller with modern connectivity and plenty of processing power for demanding applications.
At its core, the ESP32-S3 is a dual-core Tensilica LX7 microcontroller running at up to 240 MHz. It boasts integrated Wi-Fi 802.11 b/g/n and Bluetooth 5 (LE), offering versatile wireless communication options. The S3 variant also includes dedicated hardware for AI acceleration, making it suitable for on-device machine learning tasks, and features a USB OTG interface for direct connection to computers without a separate USB-to-serial chip. This makes it a significant upgrade over earlier ESP32 generations, particularly for projects requiring faster processing or USB host capabilities.
Released around 2021, the FeatherS3 by Unexpected Maker aims to provide a feature-rich and maker-friendly platform. It typically includes onboard battery charging circuitry, making it ideal for portable projects. Its pinout is designed to be familiar to Feather users while exposing the full capabilities of the ESP32-S3, including a generous number of GPIO pins, multiple ADC channels, and support for various communication protocols like I2C, SPI, and UART. This board is particularly well-suited for projects involving IoT devices, sensor networks, robotics, and embedded machine learning applications where performance and connectivity are key.
The FeatherS3 is a great choice for makers who have outgrown simpler microcontrollers or need the combined power of a capable MCU, Wi-Fi, and Bluetooth in a small form factor. Its compatibility with the Feather ecosystem simplifies hardware expansion, allowing for rapid prototyping. Whether you're building a smart home device, a data logger, a custom controller, or experimenting with AI at the edge, the FeatherS3 offers a compelling blend of performance, features, and ease of use.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-S3FN4R2 |
| Architecture | Dual-core Tensilica LX7 |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4MB (typically) - accessible via SPI |
| RAM / SRAM | 512KB SRAM (internal) + 16MB PSRAM (external, on some variants) |
| Operating voltage | 3.3V |
| Digital I/O pins | 34 (configurable) |
| Analog / ADC | 14x 12-bit SAR ADCs |
| PWM | Up to 48 channels (configurable) |
| Connectivity | Wi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5 (LE) |
| USB | USB Type-C (for programming, power, and USB OTG) |
| Power input | USB Type-C, LiPo battery connector (3.7V), 3V3 pin |
| Dimensions | 68.6mm x 25.4mm (Feather standard) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| VBAT | LiPo Battery Input (3.7V) |
| GND | Ground |
| EN | Enable Pin (active low) |
| IO20 | GPIO 20 (ADC1_CH4, Touch 4) |
| IO19 | GPIO 19 (ADC1_CH3, Touch 3) |
| IO18 | GPIO 18 (ADC1_CH2, Touch 2) |
| IO17 | GPIO 17 (ADC1_CH1, Touch 1) |
| IO16 | GPIO 16 (ADC1_CH0, Touch 0) |
| IO15 | GPIO 15 (ADC2_CH7, Touch 7) |
| IO14 | GPIO 14 (ADC2_CH6, Touch 6) |
| IO13 | GPIO 13 (ADC2_CH5, Touch 5) |
| IO12 | GPIO 12 (ADC2_CH4, Touch 4) |
| IO11 | GPIO 11 (ADC2_CH3, Touch 3) |
| IO10 | GPIO 10 (ADC2_CH2, Touch 2) |
| IO9 | GPIO 9 (ADC2_CH1, Touch 1) |
| IO8 | GPIO 8 (ADC2_CH0, Touch 0) |
| IO7 | GPIO 7 (SPI2_MOSI, UART1_TX, I2S0_TX_WS) |
| IO6 | GPIO 6 (SPI2_MISO, UART1_RX, I2S0_RX_WS) |
| IO5 | GPIO 5 (SPI2_SCK, UART1_RTS, I2S0_TX_BCK) |
| IO4 | GPIO 4 (SPI2_CS0, UART1_CTS, I2S0_RX_BCK) |
| IO3 | GPIO 3 (I2C0_SDA, UART2_TX) |
| IO2 | GPIO 2 (I2C0_SCL, UART2_RX) |
| IO1 | GPIO 1 (UART0_TX, SPI3_MOSI) |
| IO0 | GPIO 0 (UART0_RX, SPI3_MISO) |
| IO43 | GPIO 43 (SPI3_SCK, USB_D- signal) |
| IO44 | GPIO 44 (SPI3_CS0, USB_D+ signal) |
| IO45 | GPIO 45 (ADC1_CH10, Touch 10) |
| IO46 | GPIO 46 (ADC1_CH11, Touch 11) |
| IO47 | GPIO 47 (ADC1_CH12, Touch 12) |
| IO48 | GPIO 48 (ADC1_CH13, Touch 13) |
| IO39 | GPIO 39 (ADC1_CH14, Touch 14) |
| IO38 | GPIO 38 (ADC1_CH15, Touch 15) |
| IO37 | GPIO 37 (ADC1_CH16, Touch 16) |
| IO36 | GPIO 36 (ADC1_CH17, Touch 17) |
| IO35 | GPIO 35 (ADC1_CH18, Touch 18) |
| IO34 | GPIO 34 (ADC1_CH19, Touch 19) |
| IO33 | GPIO 33 (ADC1_CH20, Touch 20) |
| IO32 | GPIO 32 (ADC1_CH21, Touch 21) |
| IO31 | GPIO 31 (ADC1_CH22, Touch 22) |
| IO21 | GPIO 21 (I2C1_SDA) |
| IO22 | GPIO 22 (I2C1_SCL) |
| IO12 | GPIO 12 (ADC2_CH4, Touch 4) |
| IO11 | GPIO 11 (ADC2_CH3, Touch 3) |
| IO10 | GPIO 10 (ADC2_CH2, Touch 2) |
| IO9 | GPIO 9 (ADC2_CH1, Touch 1) |
| IO8 | GPIO 8 (ADC2_CH0, Touch 0) |
| IO7 | GPIO 7 (SPI2_MOSI, UART1_TX, I2S0_TX_WS) |
| IO6 | GPIO 6 (SPI2_MISO, UART1_RX, I2S0_RX_WS) |
| IO5 | GPIO 5 (SPI2_SCK, UART1_RTS, I2S0_TX_BCK) |
| IO4 | GPIO 4 (SPI2_CS0, UART1_CTS, I2S0_RX_BCK) |
| IO3 | GPIO 3 (I2C0_SDA, UART2_TX) |
| IO2 | GPIO 2 (I2C0_SCL, UART2_RX) |
| IO1 | GPIO 1 (UART0_TX, SPI3_MOSI) |
| IO0 | GPIO 0 (UART0_RX, SPI3_MISO) |
| IO43 | GPIO 43 (SPI3_SCK, USB_D- signal) |
| IO44 | GPIO 44 (SPI3_CS0, USB_D+ signal) |
| IO45 | GPIO 45 (ADC1_CH10, Touch 10) |
| IO46 | GPIO 46 (ADC1_CH11, Touch 11) |
| IO47 | GPIO 47 (ADC1_CH12, Touch 12) |
| IO48 | GPIO 48 (ADC1_CH13, Touch 13) |
| IO39 | GPIO 39 (ADC1_CH14, Touch 14) |
| IO38 | GPIO 38 (ADC1_CH15, Touch 15) |
| IO37 | GPIO 37 (ADC1_CH16, Touch 16) |
| IO36 | GPIO 36 (ADC1_CH17, Touch 17) |
| IO35 | GPIO 35 (ADC1_CH18, Touch 18) |
| IO34 | GPIO 34 (ADC1_CH19, Touch 19) |
| IO33 | GPIO 33 (ADC1_CH20, Touch 20) |
| IO32 | GPIO 32 (ADC1_CH21, Touch 21) |
| IO31 | GPIO 31 (ADC1_CH22, Touch 22) |
| IO21 | GPIO 21 (I2C1_SDA) |
| IO22 | GPIO 22 (I2C1_SCL) |
Wiring & circuit basics
Powering the Unexpected Maker FeatherS3 is straightforward. The board can be powered via its USB Type-C port, which also handles programming and data transfer. For battery-powered projects, a 3.7V LiPo battery can be connected to the VBAT pin and the corresponding GND pin; the board includes a charging circuit for this purpose. The onboard 3.3V regulator can supply power to external components, but be mindful of its current limit (typically around 500mA to 1A, depending on the specific board variant and conditions). Always connect power sources correctly; reversing polarity can damage the board.
The FeatherS3 operates at a logic level of 3.3V. This means that any sensors, displays, or other peripherals you connect should also be 3.3V compatible. Connecting 5V devices directly to GPIO pins can cause permanent damage to the ESP32-S3. If you need to interface with 5V logic devices, you must use a logic level shifter. Conversely, 3.3V devices can typically be connected to 5V systems through a level shifter or by ensuring the 5V system has tolerant inputs.
A simple example is connecting an LED. Choose a standard LED and a current-limiting resistor (e.g., 220-330 ohms for a typical 3.3V LED). Connect the anode (longer leg) of the LED to a digital GPIO pin, such as IO23. Connect the cathode (shorter leg) of the LED to one end of the resistor. Connect the other end of the resistor to a GND pin on the FeatherS3. When you program the GPIO pin to be HIGH (3.3V), current will flow through the resistor and LED, illuminating it. When the pin is LOW (0V), the LED will turn off.
Programming & getting started
The Unexpected Maker FeatherS3 can be programmed using several popular toolchains. The most common for beginners is the Arduino IDE, with support available through the ESP32 Arduino Core. You'll need to add the ESP32 board definitions to your Arduino IDE. For those preferring Python, CircuitPython or MicroPython offer excellent support, allowing for rapid development and easy file management. Advanced users can leverage the Espressif IoT Development Framework (ESP-IDF) for full control over the hardware and direct access to Espressif's SDKs. PlatformIO, an integrated development environment for IoT development, also provides robust support for the ESP32-S3.
To upload your first program using the Arduino IDE: 1. Install the ESP32 Arduino Core. 2. Connect the FeatherS3 to your computer via USB. 3. Select the correct board (e.g., 'ESP32S3 Dev Module' or a specific FeatherS3 variant if available) and COM port in the Arduino IDE. 4. Write or load a simple sketch (e.g., a Blink example). 5. Click the Upload button. The board will typically enter bootloader mode automatically, but some boards might require pressing and holding the BOOT button while pressing and releasing the RESET button, then releasing BOOT. The IDE will compile and flash the code.