Raspberry Pi Pico 2 - RP2350 adds more PIO, RISC-V cores

Pico 2 Logo

The $5 Raspberry Pi Pico 2 was announced today, with a new chip, the RP2350. This silicon improves on almost every aspect of the RP2040:

  • 3 PIOs instead of 2
  • 150 MHz instead of 133 MHz base clock
  • Faster Arm Cortex M33 cores and RISC-V Hazard3 cores

I've had access to pre-release hardware and good news: even though the new chip is faster and has more features, it actually uses less power than RP2040, meaning if you run one of these things off a battery, it'll last longer.

I'll talk more about power later, but first, here's the specs.

Pico 2 and Pico side by side comparison

The layout is nearly identical. It has the same castellated edges, so you can solder the board down onto your project. The top has the same BOOTSEL button, micro USB port, and LED. And the chip is the same size and pinout. The bottom is identical except there's one extra test pad in the middle of the board. So the Pico 2 is a drop-in replacement, and the RP2350 chip on top is almost a drop-in replacement for the RP2040 (it has 4 more pins, and a slightly adjusted pinout).

But now we'll get to the differences:

  • This chip has a faster base clock, 150 MHz, and I haven't tested overclocking it yet, but it should be easy to do that.
  • PIO, or Programmable I/O, lets you build your own communication interfaces using GPIO pins, and the RP2350 adds an extra PIO interface—so now there are 3 PIOs with 12 state machines.
  • The Pico had 2 Arm Cortex M0+ cores, and the Pico 2 upgrades to 2 Cortex-M33. And it adds on two Hazard3 RISC-V cores. (More on how that works, later.)
  • The Pico 2 doubles the original Pico's SRAM from 264 to 520 kiB.
  • The Pico consumed around 100 mW at idle, the Pico 2 only about 80.
  • The RP2040 came in one package size, with 4 ADCs and 30 total GPIO pins. The RP2350 comes in two package sizes, and the bigger one has 48 GPIO pins.
  • The RP2350 includes 8 kiB of OTP (One-Time Programmable) storage
  • The RP2350 ships in variants including built-in flash (saving on your BoM if you're building a custom project integrating the RP2350).
  • The Pico 2 is $1 more expensive than the original Pico ($5 vs $4), and I'm guessing other variants will adjust their pricing similarly.

There's a lot more in the datasheet I can't cover here, but the fact is, Raspberry Pi's improved every aspect of their first chip, which is still very popular, and they solved some of the most annoying problems people had with it.

Raspberry Pi RP2350A0A2

Maintaining the same Pico form factor and base RP2040 footprint means you can quickly upgrade your projects to the newer hardware, assuming you adjust your software.

Pico Projects

And that's a wise decision, as it allows the huge ecosystem of RP2040-based projects to carry on in the Pi ecosystem with minimal disruption.

PicoBoy V2

There are thousands of projects out there that already made good use of RP2040. Like the PicoBoy V2—as chance would have it, I was contacted by HalloSpaceBoy5 last week, asking if I'd like to take a look at it.

It's a custom handheld console built on the RP2040, with Python ports of classic games like Breakout, Pac Man, Space Invaders, and Flappy Bird. Okay, well that last one isn't quite a classic...

But this is just one of the many projects that caught my eye over the past year:

There's a mod chip for the Nintendo Switch called the PicoFly, Pimoroni makes their own gamepad called the PicoSystem, and of course, the Pico runs DOOM... on a LEGO brick!.

But games are one thing, someone built a Logic Analyzer, a portable serial terminal, and even a full SDR receiver called PiccoloSDR!

There's even a rackmount monitor for homelabs and businesses called Axe Effect, made by YouTuber Craft Computing—I've yet to test the beta unit Jeff sent me (sorry about that!).

Retro enthusiasts are all over the RP2040, I've seen it used to build custom N64 flash carts, emulate a full classic Macintosh, and almost everyone with one of these old Macs has a BlueSCSI v2 to emulate hard drives and CD-ROMs.

Then there's the ISA Blaster, and the ZX Spectrum emulator...

And that's before we get into places where you might never notice there's an RP2040 unless you look closely. Like the MNT reform I tested early this year, the trackball is run on a 2040. And the Radxa X4 marries an RP2040 to an Intel N100 for the first SBC with Intel + Arm microcontroller for GPIO. I've been testing the X4 and will post more on it later.

Raspberry Pi knocked the RP2040 and the original Pico out of the park. I don't think anyone could've predicted how popular it would become. It introduced the world of microcontrollers to a lot of people who never got into them before, myself included.

But it wasn't without its flaws: one of the main ones was power consumption.

Power

Pico 2 Power measurements

RP2040 doesn't really do a deep sleep down to the µA range—the best I could find is around 1 mA. My own tests with MicroPython shows the Pi going down to 2 mA.

The RP2040's way better than a full Pi running Linux, of course, but in microcontroller-land, milliamps aren't impressive. Like this ESP32 can get down to 5 µA in deep sleep. That means battery life could be measured in months instead of days or weeks. Is the Pico 2 better than the Pico?

Here are my informal test results:

State Pico Pico 2
Idle, base clock 20 mA (100 mW) 16 mA (80 mW)
MicroPython lightsleep state 2 mA (10 mW) 4 mA (20 mW)*
MicroPython deepsleep state N/A DNF

The sleep states... well, let's just say I'm still a noob at C (so I couldn't get the hello_sleep.c code ported to Pico 2 in time for this post), and the MicroPython build I had seemed to flake out when messing with sleep states.

So I'll post a follow-up when I can get more power testing in. For MicroPython, I've opened up one issue for machine.lightsleep(), and another for machine.deepsleep(). For now, I'll refer you to the RP2350 datasheet, which states:

Extended low-power sleep states with optional SRAM retention: as low as 10 μA DVDD

Realistically, my guess is we'll see somewhere between 10-100 μA, but looking at the SDK, it seems like it won't take as much effort to get the RP2350 into a dormant state (and to wake it back up, e.g. for periodic sensors—without an external trigger).

Pi goes RISC-V

Screenshot of Hazard3 RISC-V core layout from bitlog.it's RISC-V CPU Core ASIC roundup:

RISC-V Hazard3 core rendering

The other headline feature is the inclusion of two Hazard3 RISC-V cores. What does that mean? Well the Arm cores are proprietary.

Raspberry Pi pays Arm some money, Arm sends them the designs, and Raspberry Pi can use the Arm cores in their chip.

The RISC-V cores aren't really 'owned'. They're open source, meaning Raspberry Pi can just clone this git repository, use the designs, and that's it. No licensing, no proprietary specs. That doesn't mean the Hazard3 cores are faster or more efficient, just that they're open.

Including both sets of cores allows you to choose between Arm and RISC-V, and you can even build a 'universal binary' that works on either set of cores at runtime.

There are a couple caveats:

  1. You can't run all four cores at the same time, it's either-or.
  2. There's a lot less code out there that works low-level with RISC-V, so for most people, especially casual programmers just running MicroPython, you'll probably stick to the Arm cores.

But the way Raspberry Pi's doing this, I have to wonder: is it a signal that people should start transitioning their code to RISC-V? We'll see. EspressIf's had RISC-V versions of their ESP32s one out for a while. It's nice to see Raspberry Pi joining the party.

Conclusion

That's the Pico 2 and everything that's changed. A Pico 2 W will be arriving later this year. But bottom line, the RP2350 and its bigger B variant are going to be appearing in a ton of new devices.

Watch the video that goes along with this blog post:

Comments

An interesting tidbit from The Register:

As for leaping into the world of RISC-V, Upton explained how the cores would work: "They're selectable at boot time: Each port into the bus fabric can be connected either to an M33 or a Hazard3 via a mux. You can even, if you're feeling obtuse, run with one of each."

If you're feeding it 5V, as your power consumption table implies, you are using the onboard voltage regulator. If you bypass the VR and feed it 3v3 directly, you're more likely to get uA currents. The VR consumes current even at idle.

Interesting, I'll have to test both voltages then. I was seeing slightly lower power consumption feeding 5.000V than 3.300V but that was only when it was going full bore. Haven't tested in sleep modes yet because I've had trouble getting that going.

I looked through the RP2350 datasheet but could not find where it says that deep sleep can use as little as 10uA. Do you have a section number?

It looks like it's not on the datasheet now—the pre-launch datasheet I was provided had a line in there saying that, but now I don't see it mentioned. Asking the Pi engineers, it sounds like real-world current can go down "under 100 uA" and it'll be good to know how far under... 10->100 is a significant difference!

It's in "Chapter 1. Introduction":
> Extended low-power sleep states with optional SRAM retention: as low as 10 μA DVDD

At least in the version I downloaded two days ago:
> build-date: 2024-08-08
> build-version: a64df9a-clean

I wonder if there are two versions floating around, haha. I'm guessing they had a final pre-release version they sent me, they posted one that was slightly different, then maybe updated it again after launch? Not sure!

I noticed the comments here and had check. There are. I just compared the datasheet i downloaded immediately after they announced the Pico 2 to the one i just downloaded and indeed the 10µA claim is gone and several other small changes were made. None of the changes are mentioned in the changelog at the end. That's quite suspicious to me.

Hey Jeff! If you're doing things with the Pico, you should make a video or two on the Arduino micro controller. It is more than $5, but an overview video might be interesting.

Hi Jeff! A Fan of your Channel here! I have to tell you the scientific community REALLY appreciates your content! Keep going! A question I have regarding Pico 2 vs Pico 1 is about the USB speed. The Pico 1 claimed it can reach USB speeds of 12Mbits/s, but it doesn't even get close to this. Does the Pico 2 finally reach this value? That is a game-changer for Microcontrollers! Especially when it comes to exploiting the integrated ADCs @500kSps. If you use the 3 of them at max speed, and then you want to send them to a more robust processor, the USB is a bottleneck... in case nothing changes, I should start thinking of a dedicated SPI to USB chip for this type of application (maybe an FTDI one).

Hi Jeff, thanks for the post. Your blog posts summary page has become required daily reading for me. Thank you!
I wonder when a wifi version will be released for the Pico 2? I love my Pico W's.

Jeff, your write-ups are always an incredible learning experience. Thank you! In this case you may need to revisit the statement that teh Pico 2 is a drop-in replacement for the Pico. There has been quite a bit of discussion on GPIO latch-up issues that may not allow the Pico 2 to perform as a drop-in for the Pico without additional external resistors being required. See the "Corrected Version Availability?" thread on the Pi forum at https://forums.raspberrypi.com/viewtopic.php?t=375862

The issue is being looked at, but for those users who have projects utilizing GPIO and are expecting to be able to use the PIco 2 as a drop-in replacement for the Pico, they may run into the GPIO latch-up issue and be left scratching their heads a bit.

Keep up the great work! I always learn a lot when I drop by.