The Adafruit QT Py ESP32 Pico is jam-packed with pins, connectors and buttons. This page covers all the features!
PrettyPins PDF on GitHub.
- USB-C port - This is used for both powering and programming the board. You can power it with any USB C cable.
- 3.3V - This pin is the output from the 3.3V regulator, it can supply 600mA peak.
- GND - This is the common ground for all power and logic.
- 5V - This is 5V out from the USB port.
You can also use the 5V pin as a voltage input but you must have some sort of diode (schottky, signal, power, really anything) between your external power source and this pin with anode to battery, cathode to 5V pin. Note that you cannot power the USB port by supplying 5V to this pin: there is a protection diode that prevents the 5V from reaching the USB connector. This is to protect host computer USB ports, etc. You can draw 1A peak through the diode, but we recommend keeping it lower than that, about 500mA.
VBAT pads - On the back of the board are two pads labeled + and - (ground). These are the battery input pads with diode protection for external battery packs from 3V to 6V input.
The ESP32-Pico-V3-02 is an all-in-one chip that has an ESP32 chip with dual-core 240MHz Tensilica processor, WiFi and Bluetooth classic + BLE, as well as 8 MB of Flash memory and 2 MB of PSRAM.
At the core of ESP32-PICO-V3-02 is the ESP32 (ECO V3) chip, which is a single 2.4 GHz Wi-Fi and Bluetooth combo chip designed with TSMC’s 40 nm low-power technology. ESP32-PICO-V3-02 integrates all peripheral components seamlessly, including a crystal oscillator, flash, PSRAM, filter capacitors, and RF matching links in one single package. The 8 MB of flash is inside the chip and is used for both program firmware and filesystem storage.
There are eleven GPIO pins broken out to pads. There is hardware I2C, UART, and SPI.
Ten pads are 12-bit analog inputs.
You can do PWM output or hardware I2S on any pin.
There are eight pins (A2, A3, SCL, SDA, TX, MOSI, MISO, SCK) that can do capacitive touch without any external components needed.
That's the general overview. Now for the details!
There are four analog pins.
- A0 and A1 are the only DAC output pins. These can be used as 8-bit true analog outputs. No other pins can do so. These pins can also be analog inputs. A0 and A1 are on ADC2.
- A2 and A3 can also be analog inputs. A2 and A3 are on ADC2. These two pins can do capacitive touch.
The I2C pins. These are NOT shared by the STEMMA QT connector!
- SCL - This is the I2C clock pin. There is no pull-up on this pin, so for I2C please add an external pull-up if the breakout doesn't have one already. This pin can do capacitive touch and also analog input
- SDA - This is the I2C data pin.There is no pull-up on this pin, so for I2C please add an external pull-up if the breakout doesn't have one already. This pin can do capacitive touch and also analog input
The UART interface.
- RX - This is the UART receive pin. Connect to TX (transmit) pin on your sensor or breakout.
- TX - This is the UART transmit pin. Connect to RX (receive) pin on your sensor or breakout. This pin can do capacitive touch.
The SPI pins are on the ESP32 high-speed peripheral. You can set any pins to be the low-speed peripheral but you won't get the speedy interface!
- SCK - This is the SPI clock pin. This pin can do capacitive touch.
- MI - This is the SPI Microcontroller In / Sensor Out pin. This pin can do capacitive touch.
- MO - This is the SPI Microcontroller Out / Sensor In pin. This pin can do capacitive touch.
This JST SH 4-pin STEMMA QT connector breaks out a second I2C interface (SCL1, SDA1, 3.3V, GND). It allows you to connect to various breakouts and sensors with STEMMA QT connectors or to other things using assorted associated accessories. It works great with any STEMMA QT or Qwiic sensor/device. You can also use it with Grove I2C devices thanks to this handy cable.
The STEMMA QT connector IO pins in Arduino are
19 (SCL1) and
22 (SDA1) and are available on
- Above the SCK and MI on the silk, is the RGB NeoPixel LED. This addressable LED can be controlled with code. It is available in Arduino as
- There is a
NEOPIXEL_POWERpower pin that is pulled high in Arduino by default. It is necessary for the NeoPixel to work. This is so it can be fully de-powered for low power usage.
- Reset button - This button restarts the board and helps enter the bootloader. You can click it once to reset the board without unplugging the USB cable or battery.
BOOT button - This button can be read in code as
SWITCHor GPIO 0 (set it to be an input-with-pullup).
Both buttons combined can be used to enter the ROM bootloader. To enter ROM bootloader mode, press and continue to hold down the BOOT button while tapping the reset button. When in the ROM bootloader, you can upload code and query the chip using