The Raspberry Pi Pico is the first microcontroller developed by the Raspberry Pi Foundation. It’s powered by the RP2040 chip, an all-new design created in-house by Raspberry Pi (their first foray into custom silicon), which features a dual-core 133MHz Arm Cortex-M0+ processor with 264KB of RAM and supports up to 16MB of off-chip flash memory. The design goal for the RP2040 was to create a high-performing chip with flexible I/O at a low cost, and it appears that the Raspberry Pi Foundation has pushed that to the test.
Priced at just $4, the Pico is one of the cheapest Cortex-M0+ boards, with a clock speed that leaves similarly priced boards in the dust. In addition, the Pi Pico includes 30 GPIO pins, I2C, SPI, UART, DMA controller, and Programmable I/O (PIO) state machines for custom peripheral support.
Not only are the specs impressive, but the Pico touts an emphasis on creating comprehensive library support and documentation to boot. The Pico also has a MicroPython and a C/C++ SDK, enabling beginners and more advanced users to exploit the board’s hardware. I particularly loved the amount of documentation available for the C/C++ SDK; this textbook-long guide provides definitions and examples for every library and their functions.
Documentation and libraries can make or break a development board. Regardless of how shiny the specs are, a microcontroller with poor documentation and library support often turns into another fancy paperweight on one’s desk. A benefit of being part of the Raspberry Pi ecosystem is that they care about making their products accessible to everyone. There is ample support from the Raspberry Pi Foundation and its community if you ever hit a road bump in your project.
Aside from the great support, let’s talk about a novel feature that the Pico provides that other boards don’t: the Programmable I/O (PIO) state machines. The Pico contains eight PIO state machines programmed in an assembly-type language. These state machines allow programmers to create hardware interfaces for unsupported devices or additional peripherals despite limited pinouts without any bit-banging involved. The Pico’s PIOs are a game changer because they free up the processor to perform other tasks, allowing even more to be squeezed out of a $4 board. While the nitty-gritty aspects of the PIO are beyond the scope of this review; I highly recommend watching the Raspberry Pi Foundation’s short video on the subject and reading more in the official RP2040 datasheet.
The Raspberry Pi has come a long way since its launch, with a strong community and some of the best library support and documentation I’ve seen yet. The RP2040, and subsequently the Pico, is by far the most ambitious release they’ve had yet.
- 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
- Operating temperature -20°C to +85°C
- Castellated module allows soldering direct to carrier boards
- Drag-and-drop programming using mass storage over USB
- Low-power sleep and dormant modes
- Accurate on-chip clock
- Temperature sensor
- Accelerated integer and floating-point libraries on-chip