The Raspberry Pi Foundation has launched its first microcontroller-class product, the Raspberry Pi Pico. Priced at just $4, it is built on RP2040, a brand-new chip developed by the Foundation. Whether you’re looking for a standalone board for deep-embedded development or a companion to your Raspberry Pi computer, or you’re taking your first steps with a microcontroller, this is the board for you.
Many projects, from cucumber sorters to high-altitude balloons, connect Raspberry Pi to the physical world: software running on the Raspberry Pi reads sensors, performs computations, talks to the network, and drives actuators. This ability to bridge the worlds of software and hardware has contributed to the enduring popularity of Raspberry Pi computers, with over 37 million units sold to date.
But there are limits: even in its lowest power mode, a Raspberry Pi Zero will consume in the order of 100 mW; Raspberry Pi on its own does not support analog input; and while it is possible to run ‘bare metal’ software on a Raspberry Pi, software running under a general-purpose operating system like Linux is not well suited to low-latency control of individual I/O pins.
Many hobbyist and industrial applications pair a Raspberry Pi with a microcontroller. The Raspberry Pi takes care of heavyweight computation, network access, and storage, while the microcontroller handles analog input and low-latency I/O and, sometimes, provides a very low-power standby mode.
Until now, the Raspberry Pi Foundation had not been able to figure out a way to make a compelling microcontroller-class product of its own. To make the product it really wanted to make, first it had to learn to make its own chips.
It seems like every fruit company is making its own silicon these days, and the Foundation is no exception. The RP2040 builds on the lessons learned from using other microcontrollers in Raspberry Pi products, from the Sense HAT to Raspberry Pi 400. It’s the result of many years of hard work by the Foundation’s in-house chip team.
“We had three principal design goals for RP2040: high performance, particularly for integer workloads; flexible I/O, to allow us to talk to almost any external device; and of course, low cost, to eliminate barriers to entry,” says the Foundation’s James Adams. “We ended up with an incredibly powerful little chip, cramming all this into a 7 x 7 mm QFN-56 package containing just two square millimetres of 40 nm silicon.
The RP2040 has:
• Dual-core Arm Cortex-M0+ running at 133 MHz.
• 264 KB of on-chip RAM.
• Support for up to 16 MB of off-chip Flash memory via dedicated QSPI bus.
• DMA controller.
• Interpolator and integer divider peripherals.
• 30 GPIO pins, 4 of which can be used as analog inputs.
• 2 UARTs, 2 SPI controllers, and 2 I2C controllers.
• 16 PWM channels.
• 1 USB 1.1 controller and PHY, with host and device support.
• 8 Raspberry Pi Programmable I/O (PIO) state machines.
• USB mass-storage boot mode with UF2 support, for drag-and-drop programming.
And this isn’t just a powerful chip: it’s designed to help you bring every last drop of that power to bear. With six independent banks of RAM, and a fully connected switch at the heart of its bus fabric, you can easily arrange for the cores and DMA engines to run in parallel without contention.
For power users, a complete C SDK is provided, as well as a GCC-based toolchain, and Visual Studio code integration.
“As Cortex-M0+ lacks a floating-point unit, we have commissioned optimised floating-point functions from Mark Owen, author of the popular Qfplib libraries; these are substantially faster than their GCC library equivalents, and are licensed for use on any RP2040-based product.
“With two fast cores and a large amount of on-chip RAM, the RP2040 is a great platform for machine learning applications. You can find Pete Warden’s port of Google’s TensorFlow Lite framework at https://github.com/raspberrypi/pico-tflmicro. Look out for more machine learning content over the coming months.
“For beginners, and other users who prefer high-level languages, we’ve worked with Damien George, creator of MicroPython, to build a polished port for RP2040; it exposes all of the chip’s hardware features, including our innovative PIO subsystem. And our friend Aivar Annamaa has added RP2040 MicroPython support to the popular Thonny IDE,” Adams continues.
Raspberry Pi Pico
Raspberry Pi Pico is designed as a low-cost breakout board for the RP2040. It pairs the RP2040 with 2 MB of Flash memory, and a power supply chip supporting input voltages from 1,8 to 5,5 V. This allows you to power your Pico from a wide variety of sources, including two or three AA cells in series, or a single lithium-ion cell.
Pico provides a single push-button, which can be used to enter USB mass-storage mode at boot time and also as a general input, and a single LED. It exposes 26 of the 30 GPIO pins on RP2040, including three of the four analog inputs, to 0,1-inch-pitch pads; you can solder headers to these pads or take advantage of their castellated edges to solder Pico directly to a carrier board. Volume customers will be able to buy pre-reeled Pico units.
“The Pico PCB layout was co-designed with the RP2040 silicon and package, and we’re really pleased with how it turned out: a two-layer PCB with a solid ground plane and a GPIO breakout that ‘just works’,” Adams concludes.
Check for availability at an authorised South African distributor of Raspberry Pi: www.ebg.co.za/brand-suppliers.aspx?agacc=5617
© Technews Publishing (Pty) Ltd | All Rights Reserved