Adafruit HUZZAH32 Feather: Your ESP32 Swiss Army Knife
A compact and powerful development board featuring the ESP32 microcontroller, ideal for IoT projects and beyond.
The Adafruit HUZZAH32 Feather is a versatile microcontroller board built around the Espressif ESP32 system-on-chip (SoC). It's part of Adafruit's popular Feather ecosystem, which prioritizes small size, USB and battery charging capabilities, and a standardized form factor. This board is designed for makers, students, and engineers who need a capable yet easy-to-use platform for wireless projects, sensor networks, and embedded applications.
At its heart, the HUZZAH32 Feather boasts the ESP32-WROOM-32 module, which integrates a dual-core Tensilica LX6 microprocessor, Wi-Fi, and Bluetooth. This makes it exceptionally well-suited for Internet of Things (IoT) projects, allowing devices to connect to networks wirelessly and communicate with other devices. The ESP32 family itself is known for its strong performance, low power consumption modes, and a rich set of peripherals.
Released around 2017, the HUZZAH32 Feather quickly became a favorite for its balance of features and affordability. It bridges the gap between simpler microcontrollers like the ESP8266 and more complex embedded systems. Its suitability for both rapid prototyping with the Arduino IDE and more advanced development with ESP-IDF or CircuitPython makes it a flexible choice for a wide range of skill levels.
This board is particularly appealing to makers interested in building connected devices, home automation systems, robotics, data loggers, and wearable electronics. The inclusion of LiPo battery charging circuitry and the Feather's compact footprint make it perfect for battery-powered, portable projects where wireless connectivity is a must.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Espressif ESP32-WROOM-32 module (ESP32-D0WDQ6 chip) |
| Architecture | Dual-core Tensilica Xtensa LX6 |
| Clock speed | Up to 240 MHz |
| Flash / Storage | 4 MB onboard SPI flash |
| RAM / SRAM | 520 KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 32 (many with alternate functions) |
| Analog / ADC | 12-bit, up to 18 channels (exposed on some pins) |
| PWM | Yes, on most GPIO pins |
| Connectivity | 802.11 b/g/n Wi-Fi, Bluetooth v4.2 BR/EDR and BLE |
| USB | Micro-USB connector for power and programming (CP2104 USB-to-UART bridge) |
| Power input | 5V via USB, 3.7V LiPo battery connector, or VIN pin (7-12V recommended) |
| Dimensions | 68.6mm x 22.9mm x 7.1mm (2.7in x 0.9in x 0.28in) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| EN | Enable Pin (active low) |
| VBAT | LiPo Battery Input/Output |
| GND | Ground |
| GND | Ground |
| RX | UART0 RX (Connects to USB TX) |
| TX | UART0 TX (Connects to USB RX) |
| D0/GPIO16 | General Purpose I/O |
| D1/GPIO17 | General Purpose I/O |
| D2/GPIO4 | General Purpose I/O, ADC12_CH4 |
| D3/GPIO2 | General Purpose I/O, ADC12_CH5, Touch 9 |
| D4/GPIO15 | General Purpose I/O, ADC12_CH3, Touch 8, SPI2 SCK |
| D5/GPIO14 | General Purpose I/O, ADC12_CH6, Touch 6, SPI2 HDS |
| D6/GPIO12 | General Purpose I/O, ADC12_CH5, Touch 7, SPI2 MOSI |
| D7/GPIO13 | General Purpose I/O, ADC12_CH4, Touch 4, SPI2 MISO |
| D8/GPIO0 | General Purpose I/O, Boot Button Input, Touch 0 |
| D9/GPIO22 | General Purpose I/O, ADC12_CH1, Touch 2 |
| D10/GPIO21 | General Purpose I/O, ADC12_CH0, Touch 1, I2C SDA |
| D11/GPIO19 | General Purpose I/O, ADC12_CH7, Touch 3, I2C SCL |
| D12/GPIO23 | General Purpose I/O, ADC12_CH8, Touch 5 |
| D13/GPIO20 | General Purpose I/O, ADC12_CH9 |
| A0/GPIO34 | ADC12_CH6 Input Only |
| A1/GPIO35 | ADC12_CH7 Input Only |
| A2/GPIO36 | ADC12_CH0 Input Only |
| A3/GPIO39 | ADC12_CH3 Input Only |
| VIN | Input Voltage (5-12V recommended) |
| RST | Reset Pin (active low) |
Wiring & circuit basics
Powering the Adafruit HUZZAH32 Feather requires careful consideration of its 3.3V logic level. The board can be powered via its micro-USB port (typically 5V), a 3.7V LiPo battery connected to the VBAT header, or the VIN pin (recommended 7-12V). The onboard regulator will step down the voltage to the 3.3V required by the ESP32. Avoid applying voltages higher than 5V directly to the 3V3 pin, as this can damage the chip. When connecting external components, ensure they are compatible with 3.3V logic. If you need to interface with 5V devices, use a logic level shifter.
For a simple LED project, connect an LED's anode to a digital GPIO pin (e.g., D4/GPIO2) and its cathode to a current-limiting resistor (typically 220-330 Ohms). The other end of the resistor connects to a GND pin. When the GPIO pin is set HIGH (3.3V), the LED will illuminate. This demonstrates basic digital output.
To connect an I2C sensor, such as a BME280 or an MPU6050, use the dedicated I2C pins: D10/GPIO21 for SDA and D11/GPIO19 for SCL. Ensure the sensor is also powered by 3.3V (connect its VCC to the 3V3 pin) and its GND to a GND pin on the Feather. Remember that I2C communication requires pull-up resistors on both SDA and SCL lines; the HUZZAH32 Feather has these built-in for its primary I2C bus, but check your sensor's datasheet.
Programming & getting started
The Adafruit HUZZAH32 Feather is well-supported across several popular development environments. The Arduino IDE is a common choice for its ease of use and extensive library support. To get started, you'll need to install the ESP32 board support package within the Arduino IDE's Board Manager. Once installed, select the 'Adafruit ESP32 Feather' from the board menu. For your first program, upload the standard 'Blink' sketch, modifying the pin number to match one of the Feather's digital output pins (e.g., `LED_BUILTIN` which is often mapped to GPIO2, or another like GPIO4). Connect the Feather via USB, select the correct COM port, and click upload.
Alternatively, for Python enthusiasts, CircuitPython or MicroPython offer a more accessible scripting experience. These environments allow you to write code in Python and upload it directly to the board without a traditional compilation step. Both have excellent community support and libraries for the ESP32. For advanced users, Espressif's official ESP-IDF (Espressif IoT Development Framework) provides the most control and access to the ESP32's full capabilities, though it has a steeper learning curve.