Adafruit QT Py RP2040
The Adafruit QT Py RP2040 is a tiny development board based on the Raspberry Pi RP2040 microcontroller.
Interfaces
| Interface | Hardware Supported | TinyGo Support |
|---|---|---|
| GPIO | YES | YES |
| UART | YES | YES |
| SPI | YES | YES |
| I2C | YES | YES |
| ADC | YES | YES |
| PWM | YES | YES |
| USBDevice | YES | YES |
Pins
| Pin | Hardware pin | Alternative names | I2C | PWM |
|---|---|---|---|---|
SDA | GPIO24 | I2C0_SDA_PIN, SDA_PIN, SPI1_SDI_PIN | PWM4 (channel A) | |
SCL | GPIO25 | I2C0_SCL_PIN, SCL_PIN, SPI1_CS | PWM4 (channel B) | |
TX | GPIO20 | UART1_TX_PIN | I2C0 (SDA) | PWM2 (channel A) |
MO | GPIO3 | MOSI, SPI0_SDO_PIN | I2C1 (SCL) | PWM1 (channel B) |
MI | GPIO4 | MISO, SPI0_SDI_PIN | I2C0 (SDA) | PWM2 (channel A) |
SCK | GPIO6 | SPI0_SCK_PIN | I2C1 (SDA) | PWM3 (channel A) |
RX | GPIO5 | SPI0_CS, UART1_RX_PIN | I2C0 (SCL) | PWM2 (channel B) |
QT_SCL1 | GPIO23 | I2C1_QT_SCL_PIN | PWM3 (channel B) | |
QT_SDA1 | GPIO22 | I2C1_QT_SDA_PIN | PWM3 (channel A) | |
A0 | GPIO29 | UART0_RX_PIN, UART_RX_PIN, ADC3 | PWM6 (channel B) | |
A1 | GPIO28 | UART0_TX_PIN, UART_TX_PIN, ADC2 | PWM6 (channel A) | |
A2 | GPIO27 | I2C1_SCL_PIN, SPI1_SDO_PIN, ADC1 | I2C1 (SCL) | PWM5 (channel B) |
A3 | GPIO26 | I2C1_SDA_PIN, SPI1_SCK_PIN, ADC0 | I2C1 (SDA) | PWM5 (channel A) |
NEOPIXEL | GPIO12 | WS2812 | I2C0 (SDA) | PWM6 (channel A) |
NEOPIXEL_POWER | GPIO11 | I2C1 (SCL) | PWM5 (channel B) |
Machine Package Docs
Documentation for the machine package for the Adafruit QT Py RP2040
Flashing
UF2
The QT Py RP2040 comes with the UF2 bootloader already installed.
CLI Flashing
-
Flash your TinyGo program to the board using this command:
tinygo flash -target=qtpy-rp2040 [PATH TO YOUR PROGRAM] -
The QT Py RP2040 board should restart and then begin running your program.
Troubleshooting
Any troubleshooting tips go here.
Notes
To use the Qwiic/StemmaQT port on this board with I2C drivers you’ll need to configure the I2C1 device:
i2c := machine.I2C1 i2c.Configure(machine.I2CConfig{ SCL: machine.I2C1_QT_SCL_PIN, SDA: machine.I2C1_QT_SDA_PIN, }) You can use the USB port to the QT Py RP2040 as a serial port.
TinyGo has support for the RP2040’s on-board Programmable Input/Output (PIO) block.
For more informantion, see https://github.com/tinygo-org/pio