SparkFun Thing Plus - RP2040

Added to your shopping cart

The SparkFun Thing Plus - RP2040 is a low-cost, high performance board with flexible digital interfaces featuring the Raspberry Pi Foundation's RP2040 microcontroller. Besides the Thing Plus or Feather footprint (with 18 GPIO pins), the board also includes an SD card slot, 16MB (128Mbit) flash memory, a JST single cell battery connector (with a charging circuit and fuel gauge sensor), an addressable WS2812 RGB LED, JTAG PTH pins, four (4-40 screw) mounting holes, and our signature Qwiic connector.

The RP2040 contains two ARM Cortex-M0+ processors (up to 133MHz) and features:

  • 264kB of embedded SRAM in six banks
  • 6 dedicated IO for SPI Flash (supporting XIP)
  • 30 multifunction GPIO:
    • Dedicated hardware for commonly used peripherals
    • Programmable IO for extended peripheral support
    • Four 12-bit ADC channels with internal temperature sensor (up to 0.5 MSa/s)
  • USB 1.1 Host/Device functionality

The RP2040 is supported with both C/C++ and MicroPython cross-platform development environments, including easy access to runtime debugging. It has UF2 boot and floating-point routines baked into the chip. While the chip has a large amount of internal RAM, the board includes an additional 16MB of external QSPI flash memory to store program code.

The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.

SparkFun Thing Plus - RP2040 Features

  • Raspberry Pi Foundation's RP2040 microcontroller
    • 18[1] Multifunctional GPIO Pins[2]
      • Four available 12-bit ADC channels with internal temperature sensor (500kSa/s)
      • Up to eight 2-channel PWM
      • Up to two UARTs
      • Up to two I2C buses
      • Up to two SPI buses
  • Thing Plus (or Feather) Form-Factor:
    • Dimensions: 2.3" x 0.9"
    • Four Mounting Holes:
      • 4-40 screw compatible
    • 28 PTH Pins
    • USB-C Connector:
      • USB 1.1 Host/Device functionality
    • 2-pin JST Connector for a LiPo Battery (not included):
      • 500mA charging circuit
    • 4-pin Qwiic Connector
  • LEDs:
    • PWR - Red 3.3V power indicator
    • CHG - Yellow battery charging indicator
    • 25 - Blue status/test LED (GPIO 25)
    • WS2812 - Addressable RGB LED (GPIO 08)
  • Buttons:
    • Boot
    • Reset
  • JTAG PTH Pins
  • 16MB QSPI Flash Memory
  • µSD Card Slot

RP2040 General Features:

  • Dual Cortex M0+ processors, up to 133 MHz
  • 264 kB of embedded SRAM in 6 banks
  • 6 dedicated IO for QSPI flash, supporting execute in place (XIP)
  • 30 programmable IO for extended peripheral support
  • SWD interface
  • Timer with 4 alarms
  • Real time counter (RTC)
  • USB 1.1 Host/Device functionality
  • Supported programming languages
    • MicroPython
    • C/C++

1. Note: GPIO 08 is not included in this count, as it passes through the WS2812 addressable RGB LED first. GPIO 07 and GPIO 23 are counted as a single GPIO because they are tied together.

2. Note: The GPIO pins are programmable so you can reconfigure the pins! Check out the RP2040 datasheet for more information on the GPIO functionality.

SparkFun Thing Plus - RP2040 Product Help and Resources

RP2040 Thing Plus Hookup Guide

January 21, 2021

Want to take a stab at advancing your programming skills? Check out the Thing Plus - RP2040, with the first microcontroller from the Raspberry Pi Foundation. This guide will get you started working with the RP2040 and programming in MicroPython and C/C++.

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • alpierce / about a year ago / 1

    I use Circuitpython with this board and it works like a charm. I’m not a fan of the two missing pins, can’t see why that was done considering there is another pin that is shared between two exclusive functions. I think calling this Feather compatible is taking a bit of license. If those issues were fixed on the next spin I’d give the hardware five stars. I do think SparkFun has a weak spot when it comes to documentation though. A blink sketch in Arduino doesn’t cut it with a board this complex. I’m an engineer with decades of experience using microcontrollers and I know where to look to figure things out, but how someone new to this or only experience with Arduino would fare, well not so well I think.

  • What? / about a year ago / 1

    Does anyone know how to get the SD Card to work on the Thing Plus RP2040? A simple example program would be great! Apparently it uses non-standard Pins, but it's not clear what I should use.

  • Jamo / about a year ago / 1

    I got some of these through work and am generally happy with them, except for the truly baffling choice to leave two of the GPIO (5 and 13) on the micro unconnected, and for two of the pins in the feather layout (pins 9 and 10 on the long side) to be NC.

  • What? / about 2 years ago / 1

    The Upload Process is BROKEN! It works like once in about 5 tries or so.

    What are the Default I2C Pins for the SparkFun Thing Plus - RP2040?

    Has anyone gotten I2C to work on this thing?

    I want my money back; when you get all the bugs worked out, let me know...

    • sorry to hear that you are running into issues with the product. Feel free to initiate a return ticket if you wish to return the device and we can get you taken care of:

  • Member #1549502 / about 3 years ago / 1

    The specs say this supports acting as a USB host. But are there any example programs demonstrating the use of this functionality?

    • santaimpersonator / about 2 years ago / 1

      There are examples built into the Arduino IDE, but I haven't tested them with this board. That said, it is only a specification for the RP2040 microcontroller; double check with the datasheet that the compatible pins are broken out for that functionality.

Customer Reviews

3.5 out of 5

Based on 4 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

It will be great with more software support

As RP2040 support in MicroPython improves there will be more devices supported. Hopefully CircuitPython will be running on it soon also. That will instantly improve the driver availability for scores of devices.

1 of 1 found this helpful:

RP2040 Thing

Nice board with 16MB of flash makes it easy to get experiments done. Qwiic connector (4 pin 1mm JST) makes peripherals easy to add. Low current draw as well.

1 of 1 found this helpful:

Thing Plus - RP2040

The board python setup was a simple and quick. Getting C/C++ was not that easy. Over all well worth it.

0 of 2 found this helpful:

The Upload Process is BROKEN! It works like once in about 5 tries or so.

The Upload Process is BROKEN! It works like once in about 5 tries or so.

Has anyone gotten I2C to work on this thing?

Are you using the reset button?

i2c should also work fine; you may have a defective unit if it isn't appearing - run i2cdetect (or similar) and see?