The Raspberry Pi RP2040 is fuelling a microcontroller revolution, giving rise to a new generation of platforms like the Raspberry Pi Pico, Arduino Nano RP2040 Connect, Wio RP2040, and more! There’s just so much going on, but don’t worry if you’re getting a little confused – this ultimate RP2040 guide will tell you all you need to know about the RP2040, including projects, products and accessories!
The RP2040 Chip
February this year, the brand new RP2040 microcontroller chip was announced alongside the Raspberry Pi Pico. The RP2040 features a dual-core Arm Cortex-M0+ processor clocked at 133MHz with 264KB internal SRAM and 2MB internal flash storage, and can be programmed in both C/C++ and the beginner friendly MicroPython.
With powerful hardware capable of running even machine learning frameworks like TensorFlow Lite, and building on the success of the Raspberry Pi Foundation’s immensely popular Raspberry Pi single board computers, RP2040 boards like the Raspberry Pi Pico have been deservedly given a warm welcome by the global maker community and have grown in popularity in the recent months.
The RP2040 from Raspberry Pi carries their signature values of high performance, ease of use, and low cost. Apart from impressive technical specifications featuring large on-chip memory, a dual-core processor and rich peripherals, the RP2040 can be programmed with both the beginner-friendly MicroPython and professionally-preferred C++.
Manufactured on a modern 40nm process node, the RP2040 delivers high performance while maintaining low power consumption and low leakage. It also carries a variety of low-power modes to support extended battery-operated durations. This makes the RP2040 a strong contender for many embedded applications that require robustness and longevity in both hobbyist and industrial use cases alike.
One of the headline features of the RP2040 which you may commonly come across is its unique Programmable I/O (PIO) subsystem, which provides additional computing power and flexibility to advanced users. PIO can be understood as the use of simple state machines that supplement the computing capabilities of the main CPU. Since CPUs can only run one computing task at any given time, PIO allows us to delegate simple but resource-intensive tasks away to these state machines, thus freeing up valuable resources on the main computer. I strongly encourage you to read my previous blog on specifics of PIO on the Raspberry Pi Pico.
Below, you can find the complete specifications of the RP2040.
- Dual ARM Cortex-M0+ @ 133MHz
- 264kB on-chip SRAM in six independent banks
- Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
- DMA controller & Fully-connected AHB crossbar
- Interpolator and integer divider peripherals
- On-chip programmable LDO to generate core voltage
- 2 on-chip PLLs to generate USB and core clocks
- 30 GPIO pins, 4 of which can be used as analogue inputs
- Peripherals: 2 UARTs, 2 SPI Controllers, 2 I2C Controllers, 16 PWM, USB 1.1 Controller and PHY (Host & Device), 8 PIO State Machines
The RP2040 was first available on the Raspberry Pi Pico, which is the Raspberry Pi Foundation’s microcontroller board based on the RP2040. Thus, the Raspberry Pi Pico has very much become the face of the RP2040 revolution.
The Raspberry Pi Pico carries all the core functionality of the RP2040 while adding the essential peripherals for interfacing with it, such as the 26 castellated pads for accessing its multi-function GPIO pins. In addition, the board carries an on-chip clock, timer, LED, temperature sensor and most importantly a micro-USB port for easy programming over USB. Quite simply, the Raspberry Pi Pico is perfect for the beginner’s foray into the world of RP2040 electronics and programming.
You can pick up your very own Raspberry Pi Pico on the Seeed Online Store today!
What can the RP2040 on Raspberry Pi Pico do?
As with any electronics product, the true reason for the RP2040’s popularity amongst the community lies in none other than the possibilities that it enables! Suitable for beginners and experts alike, the RP2040 on Raspberry Pi Pico is both capable and flexible!
Learn Electronics for Beginners
The RP2040 is programmable with MicroPython with native support in the Thonny Python IDE. Based on the powerful and flexible Python language, MicroPython brings the same intuitive and easy to use syntax to microcontroller programming, offering an extremely suitable entry for beginners who are just starting out.
Furthermore, the Raspberry Pi Pico comes with an extensive suite of documentation and step-by-step guides to get started. Coupled with great support from the Raspberry Pi’s established community, and now with official compatibility with the Arduino IDE, you can now also leverage thousands upon thousands of past projects and experiences to develop your electronics and programming skills!
Here at Seeed, we’ve even developed an extensive course for beginners to learn programming with MicroPython right on the Raspberry Pi Pico. Take advantage of step-by-step lessons that take you from the absolute basics, all the way to conceptualising and realising your very own project! And yes – this is all available for free! Click here to access the course with codes & libraries now!
Maker or Hobbyist Projects
Building your home security system, or just want to tinker around with some interesting projects? While the Raspberry Pi Pico is great for beginners, it also holds its own in meeting the needs of advanced users. With many peripheral and I/O options to choose from, as well as outstanding performance and power efficiency, the Pico with the RP2040 is suitable for any kind of projects that even the electronics expert might have in mind! In fact, we’ve already compiled a list of projects that we think will work great with the RPi Pico!
The RP2040 is also an extremely versatile candidate for machine learning. Machine learning is based on the principle that a computer can autonomously improve its own performance on a given task by learning from data, and is today used to accomplish complex tasks like image or audio classification, forecasting and anomaly detection. In fact, tons of community members have already begun using frameworks like Tensorflow Lite and Edge Impulse with the Pi Pico, such as this example by Dmitry Maslov.
The use of microcontrollers like the Raspberry Pi Pico for machine learning is today classified under a field known as TinyML, short for Tiny Machine Learning. By optimising conventionally resource-intensive machine learning models to run on low-power, low-footprint and most importantly affordable microcontrollers, TinyML allows us to make any and every device smarter and more capable!
Read more about TinyML in my previous edge artificial intelligence article.
What about Wireless Connectivity?
Some of you might have noticed that the RP2040 and Raspberry Pi Pico, while flexible and great for many uses, lack wireless connectivity! Wireless capabilities like WiFi and Bluetooth can be said to be indispensable to some modern applications in IoT (Internet of Things), for example. Thus, as great as the RP2040 is, it unfortunately may not be a viable option for users who require wireless connectivity.
But fret not – the Raspberry Pi Pico is not the only microcontroller that runs on the RP2040. With third-parties like Arduino creating their own RP2040 boards with additional features, there are now an abundance of options for RP2040 in IoT or even machine learning!
Alternatively, to see all of the RP2040 products and accessories available at Seeed, kindly visit our RP2040 page!
The Nano RP2040 Connect from Arduino is integrated with an additional suite of connectivity and sensor peripherals that allow you to take better advantage of the RP2040’s already-versatile capabilities!
It comes in the popular compact Nano form factor with castellated pads, and is equipped with a microphone for voice-enabled projects. In addition, it carries an AI-enabled 6-axis IMU that can be incredibly versatile for applications requiring motion sensing, such as pedometry, free fall detection, tap detection, 6D orientation and more! You can also easily integrate the Nano RP2040 Connect in IoT projects, thanks to the onboard u-blox NINA-W102 radio module that gives both WiFi and BLE connectivity!
Additional features include:
- 13 Built-in LEDs, 20 Digital I/O Pins, 8 Analog Input Pins, 20 PWM Pins, 20 External Interrupts
- 5V Board Power Supply, 3.3V Circuit Operating Voltage
- Support for UART, I2C, SPI communication protocols
- Secure encryption with ATECC608A-MAHDA-T Crypto IC
- Free OpenMV License for Machine Vision Projects
Pick one up from the Seeed Online Store today!
The Wio RP2040 Mini Dev Board integrates the Wio RP2040 module with additional hardware peripherals to ease your prototyping experience. The Wio RP2040 Module features integrated WiFi capabilities with the RP2040 to provide stable and reliable wireless transmission. Just like the RP2040, the module is fully compatible with RP2040 development tools, such as MicroPython with Thonny. With just a few simple lines of code, you can now easily transform your projects with IoT-capabilities!
You’ll also be most excited to know that the Wio RP2040 comes with a Seeedstudio Wio RP2040 MicroPython UF2 bootloader file, which gives your Wio RP2040 module wireless drivers, network, usocket, MQTT support right out of the box – getting you right to development!
- Dual-Core Arm Cortex-M0+ Processor clocked at 133MHz
- 264KB Internal SRAM, 2MB Flash
- Rich Peripherals: 2 UART, 4 ADC, 2 SPI, 2 I2C, and 1 USB
- Easy Interfacing: Boot & Reset Buttons, USB-C Interface
- WiFi Connectivity, 2.4-2.4835 GHz with AP & Station Mode
- C/C++, MicroPython Support with Seeed’s Wio RP2040 MicroPython bootloader
Visit the Seeed Online Store to learn more today!
If you’re looking to adopt RP2040-based wireless connectivity in mass development, you can also purchase the Wio RP2040 Module separately. For a limited time only, you can also stand to win 5 Wio RP2040 Modules free when you have your Wio RP2040 design made with Seeed Fusion PCBA. Click here to find out more!
Raspberry Pi Pico Accessories
If you still feel more at home with the Raspberry Pi Pico and the official support from the Raspberry Pi Foundation, you may instead wish to consider getting some accessories to help make the development process easier!
Here at Seeed, we are committed to improving the making experience for the global community. As the Raspberry Pi Pico comes with castellated holes, interfacing with breadboards or solder can be challenging for the beginner. That’s exactly why we’ve developed the Grove Shield for use with the Raspberry Pi Pico!
Grove is a standardised and modular prototyping system that allows you to build your electronics projects easily! With Grove, beginners and experts alike can get started on projects without all the complications of soldering and wiring. You will also be able to rely on our extensive Grove Seeed Wiki, that provides in-depth information and tutorials for each Grove module.
The Grove Shield for the Raspberry Pi Pico adds plug-and-play support for various Grove connectors, including I2C, UART, digital, analog, SPI and SWD interfaces. This means that any Grove sensor, actuator or communications module that uses these connections will now be plug-and-play compatible with your Raspberry Pi Pico!
Now, you can conveniently pick up both the Raspberry Pi Pico and its Grove Shield with our new Grove Starter Kit for Raspberry Pi Pico. The kit also includes 13 Grove modules, comprising sensors, actuators, LEDs and an LCD display to kickstart your making journey. Don’t miss out – be sure to visit the Seeed Online store today!
The Quad GPIO Expander for the Raspberry Pi Pico adds four sets of male headers to allow you to connect more expansion modules, and can be powered by an external USB power input to ensure sufficient power for demanding projects & applications.
- Standard Raspberry Pi Pico female header for directly attaching Raspberry Pi Pico (if male header soldered), or through jumper wires
- Four sets of 2×20 male headers to connect more Raspberry Pi Pico expansion modules
- USB power input connector to ensure sufficient power supply for multiple expansion modules
- Clear pinout labels on the front side for ease of use
- Manufactured with an Immersion gold process for a beautiful and sleek aesthetic
The Maker Pi Pico Base incorporates the most wanted Reset button for use with the Raspberry Pi Pico, and can be programmed with CircuitPython, MicroPython & C/C++. Compact yet feature-packed, this board is designed to sit at the heart of your STEM & robotics projects with its rich peripherals including 6 Grove ports!
- Work out-of-the-box. No soldering!
- Access to all Raspberry Pi Pico’s pins on two 20 ways pin headers
- LED indicators on all GPIO pins
- 3x programmable push button (GP20-22)
- 1x RGB LED – NeoPixel (GP28)
- 1x Piezo buzzer (GP18)
- 1x 3.5mm stereo audio jack (GP18-19)
- 1x Micro SD card slot (GP10-15)
- 1x ESP-01 socket (GP16-17)
- 6x Grove ports for Interfacing with 300+ Grove Modules
This LCD Display Module was designed for use with the Raspberry Pi Pico in a sleek and compact form factor. With 65K RGB Colors on a 240×135 IPS display on an SPI interface, the module converts your Raspberry Pi Pico into a reliable and flexible mini display device that even comes with 4 user buttons for easy interactivity!
- 240×135 resolution, IPS screen with 65K RGB colors for a clear and vibrant display
- Uses an SPI interface requiring minimal IO pins
- 4x user buttons for easy interactivity
- Comes with development resources and manual (Raspberry Pi Pico C/C++ and MicroPython examples)
In addition to the 10 Raspberry Pi Pico Project Ideas that I’ve shared earlier in this article, it’s also extremely interesting and insightful to take a look at what the community is doing. The best part? No matter which RP2040 board you end up using, you’ll be able to cross reference other projects and code in the same environment thanks to the common foundation provided by the RP2040!
In this section, let’s take a look at some of the community projects done with the RP2040 and the Raspberry Pi Pico so far!
Pico Pong – Nick Bild
Pico Pong is a project built and shared by Nick Bild, which has transformed the Raspberry Pi Pico into a game of gesture-controlled pong. Using two pairs of infrared LED and phototransistors, Nick has essentially built two contactless buttons to serve as the inputs for the game!
Read more about the full details in his post on Hackster!
Home security projects are extremely popular in the maker community, so it’s natural that the same would be tried and tested with the Pico. This interesting project by Naveen incorporates TinyML in a TensorFlow Lite Model to detect intruders in the dark with a low resolution thermal camera, and even comes with step-by-step documentation and explanations!
Read more about the full details in their post on Hackster!
In this project, MJRoBot explores the functionality of the Raspberry Pi Pico before applying machine learning using the onboard RP2040 chip to detect various motions! Developed with the help of the Edge Impulse platform, this project can detect left-right, up-down and circular motions! In his post, MJRoBot also briefly discusses further TinyML applications with the Pico for anomaly detection!
Read more about the full details in their post on Hackster!
More Resources & Tutorials
Since the Raspberry Pi Pico was released in February, countless tutorials and information has been released about both it and the RP2040, allowing different makers to quickly share their experiences with the Raspberry Pi Foundation’s new silicon. As time goes by, it’s almost for certain that we’ll be seeing more innovative moves like this in the microcontroller space, which should make for an exciting road ahead!
Still overwhelmed? Visit our dedicated RP2040 page for a visual guide! To end off, also be sure to check out the collection of resources and articles below that should help you further along your RP2040 journey. Have fun!
Getting Started Tutorials
- Getting Started with RP2040 – Raspberry Pi
- Getting Started with Raspberry Pi Pico – Raspberry Pi
- How to Set Up and Program Raspberry Pi Pico – Tom’s Hardware
News, Knowledge & Other Resources
- Programmable I/O with Raspberry Pi Pico
- Adding Ethernet to Raspberry Pi Pico – It’s easier than you think!
- Arduino Core mbed 2.0 Released by Arduino Supports RP2040 Boards!
- Rust, RT-Thread OS & FreeRTOS come to the Raspberry Pi Pico