MakerLab
ESP32Adafruit HUZZAH32 Feather

Adafruit HUZZAH32 Feather: Your ESP32 Swiss Army Knife

A compact and powerful development board featuring the ESP32 microcontroller, ideal for IoT projects and beyond.

Adafruit HUZZAH32 Feather

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 / SoCEspressif ESP32-WROOM-32 module (ESP32-D0WDQ6 chip)
ArchitectureDual-core Tensilica Xtensa LX6
Clock speedUp to 240 MHz
Flash / Storage4 MB onboard SPI flash
RAM / SRAM520 KB SRAM
Operating voltage3.3V
Digital I/O pins32 (many with alternate functions)
Analog / ADC12-bit, up to 18 channels (exposed on some pins)
PWMYes, on most GPIO pins
Connectivity802.11 b/g/n Wi-Fi, Bluetooth v4.2 BR/EDR and BLE
USBMicro-USB connector for power and programming (CP2104 USB-to-UART bridge)
Power input5V via USB, 3.7V LiPo battery connector, or VIN pin (7-12V recommended)
Dimensions68.6mm x 22.9mm x 7.1mm (2.7in x 0.9in x 0.28in)

Pinout & pin functions

PinFunction
3V33.3V Power Output
ENEnable Pin (active low)
VBATLiPo Battery Input/Output
GNDGround
GNDGround
RXUART0 RX (Connects to USB TX)
TXUART0 TX (Connects to USB RX)
D0/GPIO16General Purpose I/O
D1/GPIO17General Purpose I/O
D2/GPIO4General Purpose I/O, ADC12_CH4
D3/GPIO2General Purpose I/O, ADC12_CH5, Touch 9
D4/GPIO15General Purpose I/O, ADC12_CH3, Touch 8, SPI2 SCK
D5/GPIO14General Purpose I/O, ADC12_CH6, Touch 6, SPI2 HDS
D6/GPIO12General Purpose I/O, ADC12_CH5, Touch 7, SPI2 MOSI
D7/GPIO13General Purpose I/O, ADC12_CH4, Touch 4, SPI2 MISO
D8/GPIO0General Purpose I/O, Boot Button Input, Touch 0
D9/GPIO22General Purpose I/O, ADC12_CH1, Touch 2
D10/GPIO21General Purpose I/O, ADC12_CH0, Touch 1, I2C SDA
D11/GPIO19General Purpose I/O, ADC12_CH7, Touch 3, I2C SCL
D12/GPIO23General Purpose I/O, ADC12_CH8, Touch 5
D13/GPIO20General Purpose I/O, ADC12_CH9
A0/GPIO34ADC12_CH6 Input Only
A1/GPIO35ADC12_CH7 Input Only
A2/GPIO36ADC12_CH0 Input Only
A3/GPIO39ADC12_CH3 Input Only
VINInput Voltage (5-12V recommended)
RSTReset 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.

Project ideas

Wi-Fi Connected ThermometerUse a temperature sensor (like the DS18B20 or BME280) connected to a GPIO pin to read ambient temperature. Program the HUZZAH32 Feather to connect to your Wi-Fi network and periodically send the temperature data to a web server or cloud service (e.g., Adafruit IO, ThingSpeak). This project teaches sensor interfacing, Wi-Fi connectivity, and basic IoT data transmission.
Bluetooth Low Energy (BLE) Heart Rate MonitorPair the HUZZAH32 Feather with a BLE heart rate sensor module. Use the board's Bluetooth capabilities to read heart rate data and broadcast it as a BLE peripheral. This project explores BLE communication, device pairing, and real-time data streaming.
Smart Home Motion DetectorConnect a PIR motion sensor to a digital input pin. When motion is detected, program the HUZZAH32 Feather to send an alert via Wi-Fi (e.g., email, push notification through a service like Pushover) or activate a local indicator like an LED or buzzer. This project covers sensor input, interrupt handling, and network-based notifications.
LiPo Powered Weather StationCombine multiple sensors (temperature, humidity, pressure, light) and connect them to the HUZZAH32 Feather. Utilize its LiPo battery charging capability for a portable solution. Program the board to log data locally to an SD card (requires an SPI interface) or transmit it wirelessly to a dashboard. This project integrates multiple sensors, power management, and data logging/transmission.
ESP32 Web Server Control PanelHost a simple web server directly on the HUZZAH32 Feather. Create a web page with buttons that control onboard LEDs or external relays connected to GPIO pins. Users can access the control panel from any device on the same Wi-Fi network. This project teaches web server development on embedded systems and basic control logic.
Gesture Controlled Robot ArmUse an MPU6050 accelerometer/gyroscope to detect hand gestures. Program the HUZZAH32 Feather to interpret these gestures and send commands via Wi-Fi or Bluetooth to control a small robot arm equipped with servo motors. This project combines sensor fusion, wireless communication, and motor control for a more advanced robotics application.

Buying tips & gotchas

When purchasing the Adafruit HUZZAH32 Feather, be aware of potential clones or variants; always buy from reputable distributors to ensure genuine Adafruit quality and support. The board uses 3.3V logic, so be cautious when connecting components designed for 5V systems โ€“ a logic level shifter is often necessary. Ensure your power supply can provide sufficient current, especially when using Wi-Fi, as the ESP32 can draw significant current spikes. Consider accessories like small breadboards, jumper wires, and a selection of 3.3V sensors to get the most out of this versatile board.