Pimoroni Tufty 2350
The Pimoroni Tufty 2350 is a development board based on the Raspberry Pi RP2350B microcontroller. It also includes an onboard Infineon CYW43439 wireless chip.
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 |
| WiFi | YES | YES |
| Bluetooth | YES | YES |
Pins
| Pin | Hardware pin | Alternative names | I2C | PWM |
|---|---|---|---|---|
CL0 |
GPIO0 |
LED, UART0_TX_PIN, UART_TX_PIN |
I2C0 (SDA) |
PWM0 (channel A) |
CL1 |
GPIO1 |
UART0_RX_PIN, UART_RX_PIN |
I2C0 (SCL) |
PWM0 (channel B) |
CL2 |
GPIO2 |
I2C1 (SDA) |
PWM1 (channel A) |
|
CL3 |
GPIO3 |
I2C1 (SCL) |
PWM1 (channel B) |
|
BUTTON_DOWN |
GPIO6 |
I2C1 (SDA) |
PWM3 (channel A) |
|
BUTTON_A |
GPIO7 |
I2C1 (SCL) |
PWM3 (channel B) |
|
BUTTON_B |
GPIO9 |
I2C0 (SCL) |
PWM4 (channel B) |
|
BUTTON_C |
GPIO10 |
I2C1 (SDA) |
PWM5 (channel A) |
|
BUTTON_UP |
GPIO11 |
I2C1 (SCL) |
PWM5 (channel B) |
|
BUTTON_HOME |
GPIO22 |
PWM3 (channel A) |
||
BUTTON_RESET |
GPIO14 |
I2C1 (SDA) |
PWM7 (channel A) |
|
BUTTON_INT |
GPIO15 |
I2C1 (SCL) |
PWM7 (channel B) |
|
VBUS_DETECT |
GPIO12 |
I2C0 (SDA) |
PWM6 (channel A) |
|
RTC_ALARM |
GPIO13 |
I2C0 (SCL) |
PWM6 (channel B) |
|
LCD_BACKLIGHT |
GPIO26 |
I2C1 (SDA) |
PWM5 (channel A) |
|
LCD_CS |
GPIO27 |
I2C1 (SCL) |
PWM5 (channel B) |
|
LCD_DC |
GPIO28 |
PWM6 (channel A) |
||
LCD_WR |
GPIO30 |
I2C1 (SDA) |
PWM7 (channel A) |
|
LCD_RD |
GPIO31 |
I2C1 (SCL) |
PWM7 (channel B) |
|
LCD_DB0 |
GPIO32 |
I2C0 (SDA) |
PWM8 (channel A) |
|
LCD_DB1 |
GPIO33 |
I2C0 (SCL) |
PWM8 (channel B) |
|
LCD_DB2 |
GPIO34 |
I2C1 (SDA) |
PWM9 (channel A) |
|
LCD_DB3 |
GPIO35 |
I2C1 (SCL) |
PWM9 (channel B) |
|
LCD_DB4 |
GPIO36 |
I2C0 (SDA) |
PWM10 (channel A) |
|
LCD_DB5 |
GPIO37 |
I2C0 (SCL) |
PWM10 (channel B) |
|
LCD_DB6 |
GPIO38 |
I2C1 (SDA) |
PWM11 (channel A) |
|
LCD_DB7 |
GPIO39 |
I2C1 (SCL) |
PWM11 (channel B) |
|
VBAT_SENSE |
GPIO40 |
ADC0 |
I2C0 (SDA) |
PWM8 (channel A) |
POWER_EN |
GPIO41 |
ADC1 |
I2C0 (SCL) |
PWM8 (channel B) |
SENSE_1V1 |
GPIO42 |
ADC2 |
I2C1 (SDA) |
PWM9 (channel A) |
LIGHT_SENSE |
GPIO43 |
ADC3 |
I2C1 (SCL) |
PWM9 (channel B) |
WL_REG_ON |
GPIO23 |
PWM3 (channel B) |
||
WL_DATA |
GPIO24 |
PWM4 (channel A) |
||
WL_CLOCK |
GPIO29 |
PWM6 (channel B) |
||
WL_CS |
GPIO25 |
PWM4 (channel B) |
||
I2C0_SDA_PIN |
GPIO4 |
I2C0 (SDA) |
PWM2 (channel A) |
|
I2C0_SCL_PIN |
GPIO5 |
I2C0 (SCL) |
PWM2 (channel B) |
|
ADC4 |
GPIO44 |
I2C0 (SDA) |
PWM10 (channel A) |
|
ADC5 |
GPIO45 |
I2C0 (SCL) |
PWM10 (channel B) |
|
ADC6 |
GPIO46 |
I2C1 (SDA) |
PWM11 (channel A) |
|
ADC7 |
GPIO47 |
I2C1 (SCL) |
PWM11 (channel B) |
Machine Package Docs
Documentation for the machine package for the Pimoroni Tufty 2350
Flashing
UF2
The Pimoroni Tufty 2350 comes with the UF2 bootloader already installed.
CLI Flashing
-
Flash your TinyGo program to the board using this command:
tinygo flash -target=tufty2350 [PATH TO YOUR PROGRAM] -
The Pimoroni Tufty 2350 board should restart and then begin running your program.
Notes
You can use the USB port to the Pimoroni Tufty 2350 as a serial port.
TinyGo has support for the RP2350’s on-board Programmable Input/Output (PIO) block.
For more information, see https://github.com/tinygo-org/pio
WiFi
You can use the onboard wireless chip for WiFi using the CYW43439 package.
For more information, see https://github.com/soypat/cyw43439
Bluetooth
You can also use the onboard wireless chip for Bluetooth Low Energy using the TinyGo Bluetooth package.
For more information, see https://github.com/tinygo-org/bluetooth