Power Pins

  • 3V - this is the regulated output from the onboard regulator. You can draw 500mA
  • 5V - This is 5v out from the USB port. You can also use this 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
  • GND - Power/data/signal ground

Input/Output Pins

General Purpose / Analog Inputs

  • A0 / D0 - Digital/analog GPIO pin 0. Can act as a true analog output with 10 bit precision, but does not have PWM. Can also be a capacitive touch input.
  • A1 / D1 - Digital/analog GPIO pin 1. Can be a capacitive touch input or an AREF pin.
  • A2 / D2 - Digital/analog GPIO pin 2. Can act as PWM or capacitive touch input.
  • A3 / D3 - Digital/analog GPIO pin 3. Can act as PWM or capacitive touch input.

I2C Pins

  • SDA / D4 - This is the I2C data pin and digital pin 4, can also be a PWM. There is no analog on this pin! There's no pull up on this pin by default so when using with I2C, you may need a 2.2K-10K pullup on each to 3.3V. All our STEMMA QT breakouts have the pullup installed on the breakout PCB.
  • SCL / D5 - This is the I2C clock pin and digital pin 5, can also be a PWM. There is no analog on this pin! There's no pull up on this pin by default so when using with I2C, you may need a 2.2K-10K pullup on each to 3.3V

STEMMA QT - This connector allows you to connect over I2C (without soldering!) to breakout boards with STEMMA QT connectors or to other things with various associated accessories. In CircuitPython, you can use the STEMMA connector with board.SCL and board.SDA, or board.STEMMA_I2C().

Hardware Serial Pins

  • TX / A6 / D6 - Transmit (output) for Serial1. Also analog/digital GPIO 6. Can act as PWM or capacitive touch input.
  • RX / A7 / D7 - Receive (input) for Serial1. Also analog/digital GPIO 7. Can act as PWM or capacitive touch input.

SPI Pins

  • SCK / A8 / D8 - Hardware SPI clock pin. Also analog/digital GPIO 8. Can act as PWM output.
  • MI / A9 / D9 -  Hardware SPI MISO microcontroller in serial out pin. Also analog/digital GPIO 9. Can act as PWM output.
  • MO / A10 / D10 - Hardware SPI MOSI microcontroller out serial in pin. Also analog/digital GPIO 10. Can act as PWM output.

Onboard Neopixel pins

There is a very tiny NeoPixel that is connected to digital pin 11 for signal. If you would like to turn off the pixel for low power usage, set pin 12 low. By default pin 12 is set high for you by Arduino/CircuitPython

Capacitive touch pins

A0, A1, A2, A3, A6 (TX), A7 (RX) can be capacitive touch pins without the need for a separate driver pin.

Analog output pin

Only A0 can be a true analog output (not PWM!) at 10-bit resolution

Analog input pins

All pins except for SDA/SCL can be analog inputs with 12-bit read resolution

PWM output pins

Only A0 and A1 cannot be PWM output

I2S pins

  • Data pin is RX
  • Bit Clock pin is MOSI
  • Word Select pin is SCK

Only one data pin is available so you cannot have both I2S input and output.

SWD Debug Pins

On the bottom of the board are two pads. On the left is SWCLK and on the right is SWDIO. On the off chance you want to reprogram your QT Py M0 or debug it using a Cortex M0 SWD debug/programmer, you will need to solder/connect to these pads.

Reverse Side SPI FLASH

The QT Py microcontroller has 256KB flash for storage of code and code-embedded files. In Circuitpython you will get a very small (~48KB) disk drive for your Python code storage. But, say you want more! You can solder a chip onto the back of the QT Py to add 2MB of SPI Flash storage. We have a pre-built 'haxpress' version of CircuitPython that supports the GD25Q16 flash chip. If you want to use a different flash chip, you'll need to build your own version of CircuitPython with support for that chip enabled.

Angled shot of a 2MB SPI Flash in 8-Pin SOIC package.
These little chips are like miniature SSD drives for your electronics. When you don't need something with as much storage as a micro SD card, but an EEPROM is too small, SPI (or...
In Stock

Once soldered in, you can access the SPI flash in Arduino on SPI1 and chip select pin 17. In CircuitPython, a 'haxpress' version of the runtime will need to be installed, so it knows to look for the larger filesystem. There is more hardware support in the haxpress CircuitPython build because we can add more code to the internal flash instead of using it for a filesystem

This guide was first published on Sep 30, 2020. It was last updated on Sep 30, 2020.

This page (Pinouts) was last updated on Sep 28, 2020.

Text editor powered by tinymce.