The Raspberry Pi Foundation has taken the electronics world by storm yet again. Known for their low-cost single board computer that can fit in your hand. Now they're changing things up again, this time for microcontrollers. The new release is called Pico and features a powerful chip RP2040 as well as all of the tools you need to get started on any embedded projects at an affordable price!
This product is as minimalistic and simple as it looks. It comes equipped with a single green LED, boot select button, power supply converter to make sure you don't fry your board at the wrong voltage for too long of time!
You also have two 20-pin loose 0.1" headers that are perfect if you want to use this on a breadboard or even potentially add components onto its slim profile in order to get more out of it than just having one idle mode light up when turned on (not counting the other great features)! We also offer the Pico with the headers here.
In contrast to other processors that have specific hardware built-in for serial data and SDIO peripherals, the RP2040 uses PIO state machines as a unique way of creating custom logic blocks. For example, NeoPixels often need timing-specific protocols for bitbanging on software; in this processor we run them off of their own object which does perfect accuracy without taking up any CPU time.
Inside the RP2040 is a 'permanent ROM' USB UF2 bootloader. This means that when you want to program new firmware, instead of plugging it into your computer like any other USB drive, hold down the BOOT SEL button while plugging in and turn on power from either an external power supply or battery pack (or pulling down RUN/Reset pin to ground).
You can then drag-and-drop firmware files onto this device for programming! However, unlike most devices which take double clicks during reset time before entering into their own respective operating systems; there's no need.
The Pico measures at 0.825" x 2" perfect for attaching to a breadboard or perfboard, and has headers that can be soldered in place so you don't need any tools directly onto a PCB with the castellated pads! There are 40 pads in total with 20 pads on each side. It has groups of general purpose input-and-output (GPIO) pins incorporated with plenty of ground pins.
The GPIO pins for the Raspberry Pi are not 5V-safe so stick to 3.3V! You get a total of 25 GPIO pins (technically there are 26 but IO #15 has a special purpose and should not be used by projects), 3 of those can be analog inputs, and 4 ADC which monitor your power supply). There is no true AD output pin on this chip either.
The RP2040 might not have built-in flash memory, but it comes with an external QSPI chip that has 2MB. When using either MicroPython or CircuitPython the whole of that space is shared between program and any file storage used by a user. For those who use C/C++ they get access to all of the board's available 256KB RAM as well as its Flash Memory (2 MB) which can be accessed through SPI0 pins for programming in Python; while users will only get 1 MB left on their own when running code written in Python programs like Pygame or Blinky Lite
Raspberry Pi Pico is a low-cost, high-performance microcontroller board with flexible digital interfaces. Key features include:
- RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom
- Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz
- 264KB of SRAM, and 2MB of on-board Flash memory
- Castellated module allows soldering direct to carrier boards
- USB 1.1 with device and host support
- Low-power sleep and dormant modes
- Drag-and-drop programming using mass storage over USB
- 26 × multi-function GPIO pins
- 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, 16 × controllable PWM channels
- Accurate clock and timer on-chip
- Temperature sensor
- Accelerated floating-point libraries on-chip
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
Raspberry Pi Pico and RP2040 FAQ
Should I buy a Raspberry Pi Pico or a Raspberry Pi Zero?
Raspberry Pi Zero is more of a multifunctional device, whereas Raspberry Pi Pico plugs into one task. A microcontroller can be plugged in for specific tasks or as the controller on an embedded system; while microcomputers are meant to run your operating systems and applications like Windows 10/Linux Mint. The two devices have different purposes - but what's interesting about them isn't just their capabilities, it's how they perform those functions at very different levels of power consumption: with less than half the energy usage!
What OS does it run?
The chip doesn't run an OS by default, but it does come with a rich library of functions to help you use the hardware/features. You can write “bare metal” C or C++ applications easily using its SDK and higher-level functionality like that found in an operating system is available too - MicroPython for beginners who want something simpler!
Can I buy the RP2040 chip?
Not yet, but it may be on general sale in the near future. Keep your eyes peeled for an announcement!
Is it open-source?
The Raspberry Pi Pico board is a circuit board with the latest microcontroller technology to put your unique ideas into action. The design files are open-source, along with all the provided software and documentation so you can start programming right away!. The internal design of the RP2040 microcontroller itself is not open-source.
Does it support Arduino/Blockly/other programming environments?
No, however third parties most likely have ported their own systems
Is RP2040 5V tolerant?
No. RP2040 microcontrollers use 3.3V for GPIO.
I've accidentally connected +5V to my Raspberry Pi Pico or other RP2040-based microcontroller. Is the pin dead?
It depends; often RP2040 will survive, but it is not recommended, and can reduce the life of the microcontroller.
What low-power modes are there?
To reduce power consumption, you can do a number of things. For example, slowing down the system clock and powering some memories off will help to extend battery life.
There are two specific modes for turning off parts of the device when not being used:
SLEEP mode is when processors are in wfi/wfe and DMA is inactive, so you can shut off most system clocks, including things like bus fabric.
DORMANT mode is when you shut down all oscillators, and so is lower power still, but then you have fewer options for waking.
I’m using VSCode. How do I set a breakpoint on the second core?
At the moment you need to use the command window in VSCode to set a gdb breakpoint.
GCC 10.2 is available. Why aren’t you using it by default?
Development work has been using the more common versions of GCC as supplied with various distributions. Builds using major gcc versions from 6.3.1 to 10.2 have been checked, so all of those should work.
What is the maximum flash size for the RP2040 chip?
the RP2040 chip has 16 MiB of flash (2^24 bytes).
Can I overclock it?
The maximum clk_sys clock speed is 133MHz at normal core voltage (1.1V ±10%), but it can be overclocked by increasing the power and supplying a higher core voltage to your device, which may shorten its life expectancy. No warranties are given when running outside of the limits specified in the datasheet.