board dev studio

Verified 2026-10

SparkFun Thing Plus - RP2350

Thing Plus (Feather-footprint) RP2350A board with a Raspberry Pi RM2 radio on the Pico W's SPI pins, 16 MB QSPI flash, 8 MB PSRAM, a microSD slot, Qwiic, a 214 mA LiPo charger with a MAX17048 fuel gauge, and 21 GPIO on the two 0.1in headers - 3.3 V logic throughout.

Place this board on a carrier in the editor →

Logic level3.3 V

Specs

MCURaspberry Pi RP2350A (dual Arm Cortex-M33 or dual Hazard3 RISC-V, user-selectable at boot, 150 MHz, 520 KB SRAM in 10 banks, 8 KB OTP) plus a Raspberry Pi RM2 radio module (2.4 GHz WiFi 4 802.11n, Bluetooth 5.2 LE and Classic)
Clock150 MHz
Flash16 MB
RAM520 KB
I/O21 digital, 3 analog, 24 PWM

SparkFun's own count for the header: 21 GPIO broken out, of which 3 are analog-capable (GPIO26/27/28). The RP2350A silicon has 30 5 V-tolerant GPIO and 4 analog inputs; 24 PWM channels, 2 UART, 2 SPI, 2 I2C and 12 PIO state machines are muxed onto the GPIO, so the header pins are GPIO rather than fixed functions. Eight GPIO numbers are consumed on-board and are not on the header: GPIO2/3/4 (µSD, shared with the exposed SPI), GPIO13 (3.3V_P regulator enable), GPIO14 (WS2812 data in), and the RM2's SPI/control pins.

Pinout

28 pads, as the vendor numbers them.

#NameFunctionSignals
1SDAGPIO6 - I2C data. Also the SDA line of the Qwiic connector; 2.2k to 3.3V through the I2C solder jumper, closed by defaultGPIO6, I2C SDA
2SCLGPIO7 - I2C clock. Also the SCL line of the Qwiic connector; 2.2k to 3.3V through the I2C solder jumper, closed by defaultGPIO7, I2C SCL
322GPIO22, brought out plainGPIO22
421GPIO21, brought out plainGPIO21
520GPIO20, brought out plainGPIO20
619GPIO19, brought out plainGPIO19
718GPIO18, brought out plainGPIO18
817GPIO17, brought out plainGPIO17
916GPIO16, brought out plainGPIO16
10VUV_USB - direct to the USB-C VBUS and the MCP73831 charger input. Do not exceed 5.5 V here5 V supply in, charger input
11ENEnable of the main 3.3 V regulator (U3); the fab file's net is ENregulator enable
12VBV_BATT - direct to the JST battery connector and the charger output, not regulatedbattery in/out
13LEDThe 'FREEBIE' pad: the DATA OUT of the on-board WS2812, for daisy-chaining more LEDs. Not a GPIOWS2812 data out
14TXGPIO0 - UART transmitGPIO0, UART TX
15RXGPIO1 - UART receiveGPIO1, UART RX
16POCIGPIO4 - SPI controller-in/peripheral-out (MISO). Shares the bus with the µSD slotGPIO4, SPI MISO
17PICOGPIO3 - SPI controller-out/peripheral-in (MOSI). Shares the bus with the µSD slotGPIO3, SPI MOSI
18SCKGPIO2 - SPI clock. Shares the bus with the µSD slotGPIO2, SPI SCK
1912GPIO12, brought out plainGPIO12
2011GPIO11, brought out plainGPIO11
215GPIO5, brought out plainGPIO5
22A2/28GPIO28 - also ADC2. Silk prints both the analog name and the MCU pin numberGPIO28, ADC2
23A1/27GPIO27 - also ADC1GPIO27, ADC1
24A0GPIO26 - also ADC0. The one analog pin printed without its MCU numberGPIO26, ADC0
25GGroundground
26VAThe analog reference position on the Feather header. On this board the fab file ties it to the VDDA net, which is the RP2350 ADC_IOVDD supply, so it is a 3.3 V reference tap rather than a pin you driveADC supply / AREF
273V3Regulated 3.3 V out of the main regulator, 500 mA maximum3.3 V out
28RSTRP2350 RUN - active-low reset. R12 pulls it up, and the RESET button shorts it to groundreset, RUN

Buses

BusSignalsPinsVoltageNote
I2C ×1SDA, SCLSDA, SCL3.3 VGPIO6/GPIO7. Shared by header pads 1-2, the Qwiic connector and the MAX17048 fuel gauge. Both lines carry 2.2k pull-ups to 3.3 V through the three-way I2C jumper, which is closed by default.
SPI ×1SCK, PICO, POCISCK, PICO, POCI3.3 VGPIO2/3/4 on header pads 18/17/16, using Raspberry Pi Pico naming (PICO = MOSI, POCI = MISO). The µSD slot hangs off the same three lines plus its own chip select, so an SD card and an SPI peripheral share one bus.
UART ×1TX, RXTX, RX3.3 VGPIO0/GPIO1 on pads 14/15.
USB ×1D+, D-5 VUSB-C, RP2350's USB 1.1 controller, also the bootloader port and the 5 V input.

I²C / bus addresses

AddressBusDeviceNote
0x36I2CMAX17048 fuel gaugeFixed in silicon; the board straps nothing, so it cannot be moved. The datasheet's prose gives the address as 0x6C write / 0x6D read, which is the 8-bit form including the R/W bit; its own address diagram in the same section reads 0110110, i.e. 0x36 as a 7-bit address, which is what a Linux or Arduino scan will report. It sits on the same GPIO6/GPIO7 bus as the header and the Qwiic connector, so a Qwiic device at 0x36 would collide.

Power

InputUSB-C 5 V, or a single-cell LiPo on the 2-pin JST connector, or 5 V straight onto the VU pad
Input range5 V USB (VU must not exceed 5.5 V); battery direct to VB

The MCP73831 charger is rated 214 mA at 3.3 V and is fed from V_USB, so it only charges while 5 V is present on USB or the VU pad. A MAX17048 fuel gauge sits on the I2C bus to report battery state. SparkFun publishes no overall board current draw, so none is recorded here. Two board revisions exist: v10 (DD-27675) has the LiPo JST polarity REVERSED from SparkFun's norm and is incompatible with every single-cell LiPo they sell; v11 (WRL-25134, the SKU queued here) fixes it. Check the silkscreen before plugging a battery into any board of unknown revision.

Outputs

RailRatingNote
3V33.3 V, 500 mA maxMain regulator, 500 mA at 3.3 V per SparkFun
3.3V_P3.3 VSecond RT9080 regulator feeding the Qwiic connector, the µSD slot and the WS2812. On by default via the LP jumper; its enable is GPIO13, so opening the jumper hands that rail to code.

Notes

Pin numbers 1-28 are the fab file's own J1 pad numbers in the THING_PLUS package: 1-12 are one row, 13-28 the other. Rows run in opposite directions - pad 1 (SDA) and pad 13 (LED) are at the same end of the board, and the numbers climb away from that end on both sides. That is NOT the Adafruit Feather order, so do not assume a Thing Plus footprint and a Feather footprint share a pin numbering: the pads land in the same physical places, the numbers do not. Silk labels come from SparkFun's own pinout photo, cross-checked against the fab file's nets: the GPIO pins are printed as bare numbers (22, 21, 20 ... 16, 12, 11, 5), the analog ones as A2/28, A1/27 and A0, and the rest as SDA, SCL, VU, EN, VB, LED, TX, RX, POCI, PICO, SCK, G, VA, 3V3, RST. PICO is MOSI and POCI is MISO (Pico naming, not the usual MOSI/MISO words). The centre row of three pads is a SWD debug header labelled SWDIO / GND / SWCLK - SparkFun prints no pin numbers on it, so it is described here rather than numbered into `pins`. The VA pad is at the Feather AREF position and the schematic symbol even names it AREF/NC, but the board netlist puts it on VDDA, the ADC_IOVDD supply, so it is a reference tap and not a free pin. The WS2812's data IN is GPIO14, which is internal only; the pad labelled LED is its data OUT, so a WS2812 chain is fed from pad 13 and the first LED on the board cannot be addressed separately. Warning from the hookup guide worth repeating: keep the SPI lines LOW while the µSD card is unpowered - driving them high in that state can damage the GPIO. Four solder jumpers: PWR (power LED, closed), I2C (the 2.2k pull-ups, closed), LP (peripheral rail always-on, closed), SHLD (USB shield to ground, closed). Board is 58.42 x 22.86 mm with four 4-40 mounting holes, and the RM2 antenna sits very close to the two holes at the USB end.

Provenance

Every figure on this page was read from the 6 sources below and last checked on Oct 20, 2026.

Related boards