The QT Py ESP32-S2 is tiny but packed with features. Here's a detailed look.
PrettyPins PDF on GitHub.
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 (unless you bridge the jumper on the back!). 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.
The ESP32-S2 is a highly-integrated, low-power, 2.4 GHz Wi-Fi System-on-Chip (SoC) solution that now has built-in native USB as well as some other interesting new technologies like Time of Flight distance measurements. With its state-of-the-art power and RF performance, this SoC is an ideal choice for a wide variety of application scenarios relating to the Internet of Things (IoT), wearable electronics, and smart homes.
Please note, this is a single-core 240 MHz chip so it won't be as fast as ESP32's with dual-core. Also, there is no Bluetooth support. However, we are super excited about the ESP32-S2's native USB which unlocks a lot of capabilities for advanced interfacing! This module comes with 4 MB flash and 2 MB PSRAM.
The 4 MB of flash is inside the module and is used for both program firmware and filesystem storage. For example, in CircuitPython, we have 3 MB set aside for program firmware (this includes two OTA option spots as well) and a 1MB section for CircuitPython scripts and files.
There are eleven GPIO pins broken out to pads. There is hardware I2C, UART, and SPI.
Eight pads are 12-bit analog inputs (SPI high speed pads do not have analog inputs).
You can do PWM output or hardware I2S on any pin.
There are five pins (A2, A3, SCL, SDA, TX) that can do capacitive touch without any external components needed.
That's the general concept. 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. 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-S2 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.
- MI - This is the SPI Microcontroller In / Sensor Out pin.
- MO - This is the SPI Microcontroller Out / Sensor In pin.
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 CircuitPython are
The STEMMA QT connector IO pins in Arduino are
40 (SCL1) and
41 (SDA1) and are available on
There are two buttons.
The Adafruit QT Py ESP32-S2 WiFi Dev Board with uFL Antenna Port comes with, you guessed it, a uFL antenna port! This is the only version that has the port!