Raspberry Pi Pico — First Look
Raspberry Pi foundation just launch the Raspberry Pi Pico recently.
As we check the trademark registration, it seem they have been planning this for quite sometime, at least 1 year back :)
So What are we expected from Raspberry Pi Foundation this time? Why are they create their own chip and launch a microcontroller where there are tons of microcontroller in the market? Is it any good?
I am here to give my 5 cent on this RP2040 — Raspberry Pi Pico and trying to guess what they are trying to do.
WHAT IS Raspberry Pi Pico?
Pico is a 4 USD development board that feature a RP2040 microcontroller that was designed by Raspberry Pi foundation and it design for education market and maker in mind.
RP2040 is the first custom silicon design and make by Raspberry Pi engineer. Build on 40nm technology and available as a QFN-56 7x7mm package, the RP2040 is unique in the microcontroller world.
The datasheet is 630 page long (link :https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf) and you will find lot of interesting hardware decision the Raspberry Pi engineer make.
Usually, a MCU is design in a way to fit a certain power to performance use case and cost budget, and manufacturer like STM32 will design all wide range of MCU for their customer to choose for. Want a simple MCU that just read read some pin? Here is low cost, low RAM small MCU. Want MCU that do drive high speed data? Here is a FPU and special peripheral IP that only this MCU will offer. And all those MCU only work on proprietary cross compiler and required you to use only the company SDK/IP.
RP2040 is different. It have huge RAM for a low cost M0+ Core. It have Dual Symmetric core, it design to run on QSPI flash and design a programmable IO interface that you can turn into VGA or any high speed interface. More importantly, I am guess RP2040 is build specifically for MicroPython.
Why I think so? Usually, we are a very basic C firmware that optimize for that MCU so it will use less RAM and less program storage space, but MicroPython is a very heavy interpreter and it won’t work with enough RAM and storage space. Right now, most MicroPython compatible MCU are all higher cost MCU line up which offer more RAM and storage space (Cortex M4 etc), and with that many high end feature pack into the MCU, is very hard to get the cost down.
Why MicroPython? Why not just code like all the other MCU does? What so special about MicroPython? I am guessing they wish to get those school kid who learn about Python programming on Raspberry Pi, a low cost MicroPython enabled MCU where they can reuse their Python programming knowledge and continues the learning journey.
Raspberry Pi think now is the time build their own MicroPython board for the future generation rather than hoping some other bigger name company to lower down their cost for their higher end offering.
RP2040 Spec:
- Dual Core ARM Cortex M0+, up to 133 MHz
- 264 kB SRAM
- 30 multifunction GPIO
- Programmable IO
- 4 channel ADC with temperature sensor, 0.5 MSa/s, 12-bit conversion
- USB 1.1 Host/Device
A RP2040 Chip doesn’t do much without a development kit. So here come the 4 USD RPI-Pico.
Raspberry Pi Pico Spec:
- RP2040 microcontroller with 2MByte QSPI Flash
- Micro USB B port for power & data
- 40 pin breadboard friendly through-hole pins with edge castellation
- super flexibility 1.8V-5.5V power supply requirement
- 26 GPIO pin
- 3 ADC (Analog input) pin
- 2 x UART , 2 x SPI, 2 x I2C, 16 x PWM
- Build in Temperature sensor
What so special about Pico?
First, it is fast. Spec to run up to 133MHz (you can overclock over 220MHz but that another story), Pico is around 40 time faster than your typical Arduino ATMega2560. It is also one of the cheapest microcontroller development out there with it 4 USD price tag.
Pico also have 8 programmable IO that support high speed IO such as I2S, VGA and even 2 DVI output(yes over 252Mbps) over such IO (more info: https://github.com/Wren6991/picodvi)
This mean maker around the world will start using Pico to do project that they can’t easily do with low cost Arduino board and we will soon see lot of interesting project popup.
Pico also one of the first board that specifically design to run Micropython from the beginning. This mean that we can use the simple Thonny IDE (https://thonny.org/) to write python code and directly upload and run on the Pico and see the REPL output directly on any computer, including Raspberry Pi.
PICO vs OTHER microcontroller?
Let start with the popular Arduino Uno R3. Running ATmega328P, Uno is a 8 bit AVR so the performance is definitely bare minimal and it only have 2 KB RAM. The Pico have more UART/I2C/SPI port and have a better 12 bit ADC analog input pin.
Maybe the 32 bit Arduino will be a better choice in term RAM and Storage?
Running on SAMD21, the arduino MKRZero using the 32 Bit ARM Cortex M0+ as well although only at single core. However, the Pico still have tons of available RAM space and huge flash size advantage over. Pico however, loss out on the ADC/DAC offering and didn’t come with battery charger function as well. But you can get 6 Pico for the price of 1 MKRZero :D
How about other cheap popular 3rd party board?
Seeeduino Xiao was one of the first below 5 USD SAMD21 board that support MicroPython, featuring similar spec like MKRZero but 1/5 the cost. However, the small size of the board also mean that most GPIO pin is mux together and we only have total 9 pin (+2 under the pad) of GPIO to be able to use at same time compare to Pico 26 pin GPIO. It also didn’t have button input and required a stable 5V or 3.3V input while the Pico only require 1.8V-5.5V to function.
Compare with Micro:bit V2, another education focus development board which widely use in the world, Pico is lacking the BLE 2.4 GHz radio function and onboard sensor like motion sensor, microphone and LED matrix display. However, the Pico does cost cheaper and is much easier to integrate into maker project with it breadboard friendly form factor.
Last but not least, let compare Pico with one of the most powerful development board in the market, the Teensy 4.0 (link : https://www.pjrc.com/store/teensy40.html)
Teensy 4.0 crush the Pico hand down with 912MHz Cortex M7 core and huge memory size. The huge GPIO pin and massive peripheral (7 UART !!) line up is impressive but the real kicker is the full USB 2.0 480Mbps device and host support.
The Teensy 4.0 is still the best development board out there even it cost close to 20 USD compare to Pico 4 USD.
What coming next?
The various community partner also start coming out Raspberry Pi Pico expansion board like below:
Other company also produce their own variant of RP2040 board with most notably the Arduino Nano RP2040 Connect.
Featuring a ESP32 for Wifi+BLE and RP2040, the Arduino Nano RP2040 Connect will be have MEMS sensor and ECC608 crypto chip build in as well to enable secure powerful IOT application.
Both Adafruit and Sparkfun also release a line up of RP2040 in different size and option, most of them have more feature and higher spec than the default Raspberry Pi Pico (4–16MB Flash storage, build in battery charging circuit etc)
Where can I get one?
Raspberry Pi Pico should be broadly available now from Raspberry Pi authorized reseller website and retail location. It also come with the Feb 2021 HackSpace magazine.
For those who in ASEAN country (Malaysia, Singapore, Thailand, Indonesia, Vietnam, Philippines and Brunei) you can get your copy from Cytron.
- Raspberry Pi Pico: https://www.cytron.io/p-rpi-pico-b
- Pico Pre-soldered Headers: https://www.cytron.io/p-rpi-pico-sh,
- Raspberry Pi Pico Basic Kit — with Pico and USB Cable: https://www.cytron.io/p-ck-pico-bs
- Maker Pi Pico (with Pico): https://my.cytron.io/p-maker-pi-pico
We will take a deeper dive into how to use the software (MicroPython SDK) of Raspberry Pi Pico next round.
Stay tuned !!