MakerLab
ESP32ESP32-PICO-KIT

ESP32-PICO-KIT: Your All-in-One ESP32 Development Board

The ESP32-PICO-KIT is a compact and versatile development board featuring the integrated ESP32-PICO-D4 module, perfect for rapid prototyping of IoT projects.

ESP32-PICO-KIT

The ESP32-PICO-KIT is a highly integrated development board designed by Espressif Systems, built around their ESP32-PICO-D4 System-in-Package (SiP). This module cleverly combines the powerful ESP32 dual-core processor, Wi-Fi and Bluetooth radios, flash memory, and an antenna into a single, compact component. This SiP approach significantly simplifies board design and reduces the overall footprint, making it ideal for space-constrained applications.

At its heart, the ESP32-PICO-D4 module is powered by the ESP32 chip, a low-power, high-performance SoC featuring two Tensilica Xtensa LX6 microprocessors. This dual-core architecture allows for efficient handling of demanding tasks, such as running complex applications while simultaneously managing wireless communication. The ESP32 is renowned for its robust Wi-Fi (802.11 b/g/n) and Bluetooth (v4.2 BR/EDR and BLE) capabilities, making it a go-to choice for connected projects.

Released around 2017, the ESP32-PICO-KIT was one of the early development boards to showcase the integrated ESP32-PICO-D4 module. It sits within Espressif's extensive family of ESP32 development boards, offering a more streamlined and compact alternative to boards like the popular ESP32-DevKitC. Its integrated nature makes it particularly appealing to makers and students who want a single, ready-to-use board without the need for external flash memory chips or complex antenna circuitry, enabling faster project development.

This board is well-suited for a wide range of makers, from beginners experimenting with IoT concepts to experienced embedded engineers looking for a compact platform for product development. Its ease of use, combined with the powerful features of the ESP32, makes it excellent for projects involving wireless sensors, home automation, smart devices, and wearable technology where size and integrated connectivity are key requirements.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCESP32-PICO-D4 (based on ESP32 chip)
ArchitectureDual-core Tensilica Xtensa LX6
Clock speedUp to 240 MHz
Flash / Storage4 MB integrated SPI flash
RAM / SRAM520 KB SRAM
Operating voltage3.3V
Digital I/O pins21 (shared with peripherals)
Analog / ADC12-bit ADC (up to 18 channels)
PWMYes (up to 16 channels)
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR and BLE
USBMicro-USB connector for power and programming (via onboard USB-to-UART bridge)
Power inputMicro-USB (5V) or 5V/VIN pin
Dimensions27.1mm x 17.9mm x 3.7mm (module); Board size varies, typically around 52mm x 25mm

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable Pin (active low)
VPADC1_CH0 (GPIO36)
VNADC1_CH3 (GPIO39)
ADC1_CH4ADC1_CH4 (GPIO34)
ADC1_CH6ADC1_CH6 (GPIO34)
ADC1_CH7ADC1_CH7 (GPIO35)
GPIO4GPIO4
GPIO2GPIO2, also connected to Green LED
GPIO15GPIO15
GPIO13GPIO13, also SPI MOSI
GPIO12GPIO12, also SPI MISO
GPIO14GPIO14, also SPI SCK
GPIO27GPIO27, also I2C SDA
GPIO26GPIO26, also I2C SCL
GPIO25GPIO25, also DAC
GPIO33GPIO33
GPIO32GPIO32
GPIO35GPIO35, also ADC1_CH7
GPIO34GPIO34, also ADC1_CH6
GPIO39GPIO39, also ADC1_CH3
GPIO36GPIO36, also ADC1_CH0
TXD0UART0 TXD (GPIO1)
RXD0UART0 RXD (GPIO3)
5V/VIN5V Power Input (from USB or external supply)

Wiring & circuit basics

Powering the ESP32-PICO-KIT is straightforward via its micro-USB port, which supplies a stable 5V. Alternatively, the 5V/VIN pin can accept an external 5V supply. The board features an onboard 3.3V voltage regulator, which supplies the ESP32-PICO-D4 module and any connected peripherals. It's crucial to ensure your power source can provide at least 500mA, especially when using Wi-Fi or Bluetooth, to prevent brownouts and ensure stable operation. Avoid applying voltages higher than 5V to the 5V/VIN pin, as this can damage the onboard regulator.

All GPIO pins on the ESP32-PICO-KIT operate at a logic level of 3.3V. This means you must be cautious when interfacing with 5V components. Connecting a 5V output directly to an ESP32 GPIO pin can cause permanent damage. For sensors or modules that output 5V logic, use a logic level shifter or a voltage divider (e.g., a simple resistor divider for digital inputs) to convert the signal to 3.3V. Conversely, if you need to control a 5V device (like a relay or LED requiring 5V), ensure the ESP32's 3.3V output is sufficient or use a transistor or MOSFET as a switch, driven by the 3.3V GPIO signal.

A common beginner project involves blinking an LED. Connect the longer leg (anode) of an LED to a GPIO pin, such as GPIO2 (which is also connected to the onboard LED). Connect the shorter leg (cathode) of the LED through a current-limiting resistor (typically 220-330 ohms for standard LEDs) to a GND pin. When the GPIO pin is set HIGH (3.3V), current flows through the LED and resistor, illuminating it. For an I2C sensor like a BME280, connect its VCC to the 3V3 pin, GND to a GND pin, SDA to GPIO27 (SDA), and SCL to GPIO26 (SCL).

Programming & getting started

The ESP32-PICO-KIT is highly versatile in its programming options. For beginners and rapid prototyping, the Arduino IDE is an excellent choice. After installing the ESP32 board support package, you can upload code via the micro-USB port using the onboard USB-to-UART bridge. MicroPython and CircuitPython also offer intuitive Python-based environments for the ESP32, allowing for quick development cycles. For more advanced applications and direct hardware control, Espressif's official ESP-IDF (Espressif IoT Development Framework) provides a powerful C/C++ SDK. PlatformIO, an integrated development environment for IoT, also offers robust support for the ESP32 family.

To upload your first sketch using the Arduino IDE: 1. Install the ESP32 board definitions in the Arduino IDE. 2. Select the 'ESP32-PICO-KIT' (or a compatible generic ESP32 board) from the Tools > Board menu. 3. Connect the ESP32-PICO-KIT to your computer via USB. 4. Select the correct COM port from the Tools > Port menu. 5. Write a simple sketch, like the 'Blink' example, modifying the pin number if necessary (e.g., to use the onboard LED on GPIO2). 6. Click the Upload button. The board will reset and begin executing your code.

Project ideas

Smart Weather StationMonitor temperature, humidity, and pressure using an I2C sensor (like BME280) connected to GPIO26/27. The ESP32-PICO-KIT will then transmit this data wirelessly via Wi-Fi to a cloud service or local server, teaching wireless communication and sensor integration.
IoT RGB LED ControllerControl an RGB LED strip via Wi-Fi. Use PWM outputs on GPIO pins to control the brightness of each color channel. This project explores PWM control, Wi-Fi networking, and web server implementation for remote control.
Bluetooth Low Energy (BLE) BeaconConfigure the ESP32-PICO-KIT to act as a BLE beacon, broadcasting its presence and simple data. This is useful for proximity detection and location-based services, demonstrating BLE advertising capabilities.
Voice-Controlled Home Automation HubIntegrate with a voice assistant (like Google Assistant or Alexa via cloud services) to control smart devices. The ESP32-PICO-KIT can act as the central hub, receiving commands and controlling relays or other actuators connected to its GPIOs, teaching cloud integration and IoT protocols.
ESP32-PICO-KIT Web ServerHost a simple web server directly on the ESP32-PICO-KIT. Display sensor readings or control outputs through a web browser connected to the same network. This project is fundamental for understanding how to create connected devices with user interfaces.
Low-Power Sensor NodeUtilize the ESP32's deep sleep modes to create a battery-powered sensor node that wakes up periodically, takes readings (e.g., from an ADC pin), transmits data via Wi-Fi or BLE, and goes back to sleep. This project focuses on power management techniques critical for battery-operated IoT devices.

Buying tips & gotchas

When purchasing an ESP32-PICO-KIT, ensure you are getting the ESP32-PICO-D4 variant, as other ESP32-PICO modules exist with different flash sizes. Be aware of potential clones or unofficial variants; stick to reputable suppliers for guaranteed quality and support. The onboard USB-to-UART chip might require specific drivers depending on your operating system. Common pitfalls include exceeding the 3.3V logic level limit for GPIOs or attempting to draw too much current from the 3.3V pin. Accessories like breadboards, jumper wires, and a reliable 5V power supply are essential for prototyping.