

The ItsyBitsy ESP32 is a compact microcontroller board developed by Adafruit, featuring the powerful ESP32-PICO-MINI-02 module. This board is designed for Internet of Things (IoT) applications, offering built-in Wi-Fi and Bluetooth capabilities. Its small form factor makes it ideal for projects where space is limited, while still providing robust wireless connectivity and processing power.








The following table outlines the key technical details of the ItsyBitsy ESP32:
| Specification | Details |
|---|---|
| Microcontroller | ESP32-PICO-MINI-02 |
| Processor | Dual-core Xtensa® 32-bit LX6 microprocessor |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB |
| SRAM | 520 KB |
| Wireless Connectivity | Wi-Fi (802.11 b/g/n) and Bluetooth (Classic + BLE) |
| Operating Voltage | 3.3V |
| Input Voltage Range | 3.3V to 6V (via USB or external power) |
| GPIO Pins | 23 (including ADC, DAC, I2C, SPI, UART, PWM) |
| Analog Inputs | 6 ADC channels (12-bit resolution) |
| Digital Outputs | PWM support on multiple pins |
| Dimensions | 35.9 mm x 17.8 mm x 4.6 mm |
| Weight | ~3 grams |
The ItsyBitsy ESP32 features a total of 23 GPIO pins, with multiple functions. Below is the pinout description:
| Pin | Function | Description |
|---|---|---|
| VIN | Power Input | Accepts 3.3V to 6V input for powering the board. |
| 3V3 | 3.3V Output | Regulated 3.3V output for external components. |
| GND | Ground | Common ground for the circuit. |
| GPIO0 | Digital I/O, ADC, Touch | General-purpose I/O, analog input, or capacitive touch sensing. |
| GPIO1 | UART TX | Serial communication transmit pin. |
| GPIO3 | UART RX | Serial communication receive pin. |
| GPIO4 | Digital I/O, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| GPIO5 | Digital I/O, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| GPIO12 | Digital I/O, ADC, DAC | General-purpose I/O, analog input, or digital-to-analog conversion. |
| GPIO13 | Digital I/O, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| GPIO14 | Digital I/O, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| GPIO15 | Digital I/O, ADC, PWM | General-purpose I/O, analog input, or PWM output. |
| GPIO16 | Digital I/O | General-purpose I/O. |
| GPIO17 | Digital I/O | General-purpose I/O. |
| GPIO18 | SPI SCK | Serial Peripheral Interface clock pin. |
| GPIO19 | SPI MISO | Serial Peripheral Interface Master-In-Slave-Out pin. |
| GPIO21 | I2C SDA | I2C data line. |
| GPIO22 | I2C SCL | I2C clock line. |
| GPIO23 | SPI MOSI | Serial Peripheral Interface Master-Out-Slave-In pin. |
| EN | Enable | Enable pin to reset or wake the board. |
| RST | Reset | Reset pin to restart the microcontroller. |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Wireless Connectivity:
Below is an example of using the ItsyBitsy ESP32 to connect to a Wi-Fi network and send data to a server:
#include <WiFi.h>
// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
void setup() {
Serial.begin(115200); // Initialize serial communication at 115200 baud
delay(1000);
// Connect to Wi-Fi
Serial.print("Connecting to Wi-Fi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to Wi-Fi!");
}
void loop() {
// Example: Print the IP address
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
delay(5000); // Wait for 5 seconds before repeating
}
Board Not Detected by Computer:
Wi-Fi Connection Fails:
Program Upload Fails:
GPIO Pins Not Working:
pinMode(pin, OUTPUT)).Q: Can I power the ItsyBitsy ESP32 with a LiPo battery?
A: Yes, you can use a 3.7V LiPo battery connected to the VIN pin. Ensure the battery voltage does not exceed 6V.
Q: Does the board support deep sleep mode?
A: Yes, the ESP32 supports deep sleep mode for low-power applications. Use the esp_sleep_enable_* functions in your code to configure sleep modes.
Q: Can I use the ItsyBitsy ESP32 with MicroPython?
A: Yes, the board is compatible with MicroPython. Flash the MicroPython firmware to the board and use a Python IDE for development.
Q: How do I reset the board?
A: Press the "RST" button on the board to reset the microcontroller.