What’s inside the Raspberry Pi Pico 2’s RP2350?
Specs to “die” for
The new Raspberry Pi Pico 2, released just two weeks ago, has garnered a lot of attention from the maker community. Powered by the RP2350, the Pico 2 comes with two different CPUs in one package. The first is a powerful dual-core Arm Cortex M33, the second is RISC-V based and designed as a personal project by Raspberry Pi engineer Luke Wren.
The RP2350 gets its name as follows:
- RP
- Raspberry Pi
- 2
- Number of cores
- 3
- Type of core (Cortex M33)
- 5
- SRAM Memory capacity (520KB)
- 0
- Internal storage capacity (0 for RP2350A and B, 4 for 2MB onboard found in the RP2354A and B)
RP2350 Block Diagram
The RP2350’s Arm Cortex M33 cores are more powerful than the Arm Cortex M0+ found on the original RP2040 of the Raspberry Pi Pico and the Raspberry Pi Pico W, But the most intriguing feature has to be the dual core RISC-V Hazard3 CPU. This CPU has performance somewhere between the Arm Cortex M0+ of the RP2040 and the Arm Cortex M33 of the RP2350. It is the first Raspberry Pi product to use RISC-V architecture, but it may not be the last. Just don’t go expecting to see it pop up in the successor to the Raspberry Pi 5.
The release of the Raspberry Pi Pico 2 saw the $5 upgrade to the original, and dare we say beloved original Pico. For only an extra dollar we get lots more performance, nut, the RP2350 isn’t the only chip to be released. The RP235X are a series of chips based on the same CPU and RAM configuration, but some have onboard storage and an even greater number of GPIO pins.
RP235X Packages
Product | Package | Size | Internal Flash | GPIO | Analog Inputs | Price (single unit) | Price per 3,400 unit reel |
---|---|---|---|---|---|---|---|
RP2350A | QFN-60 | 7mm^ | None | 30 | 4 | $1.10 | $0.80 |
RP2350B | QFN-80 | 10mm^ | None | 48 | 8 | $1.20 | $0.90 |
RP2354A | QFN-60 | 7mm^ | 2MB | 30 | 4 | $1.30 | $1 |
RP2354B | QFN-80 | 10mm^ | 2MB | 48 | 8 | $1.50 | $1.10 |
The RP2350A, as used in the Raspberry Pi Pico 2 has the following specifications.
SoC | RP2350, Dual Core Arm Cortex M33 or Dual Core RISC-V Hazard3 running at up to 150 Mhz |
SRAM | 520 KB |
Flash Storage | 4MB QSPI |
Security | Arm TrustZone, 8KB OTP, Secure Boot |
Wi-Fi / Bluetooth | None |
Language Support | MicroPython, CircuitPython, C, C++ |
USB Interface | USB 1.1 Device and Host |
GPIO Logic Level | 3.3V |
GPIO | 26 x Digital IO |
4 x 12-bit ADC (Analog pins) | |
2 x UART, 2 x I2C, 2 x SPI, 24 x PWM | |
Programmable IO | 12 PIO State Machines |
Onboard LED | GPIO 25 |
Power | 1.8 to 5.5V via Micro USB or VSYS |
MCU Sleep Mode | <10uA |
Dimensions | 21 x 51mm |
Price | $5 |
If we compare the RP2350A package with the specifications of the Pico 2 we note that the RP2350A (and RP2350B) has no internal storage. Instead the RP2350A and B use external QSPI storage, just like the original Raspberry Pi Pico’s RP2040. But the RP2354A and B offer 2MB of on-chip stacked storage via a Winbond W25Q16JVW connected to the QSPI interface.
We’ve seen plenty of RP2350A and B powered boards, but nothing has emerged about the RP2354 chip, nor any products which are powered by it.
Stay On the Cutting Edge: Get the Tom's Hardware Newsletter
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
The RP2350A and the RP2354A are both 7mm^ QFN-60 packages with 30 GPIO pins broken out around the 7mm^ square chip. The GPIO provides UART, SPI, I2C, 24 PWM and four analog to digital converters, used for analog input. These analog pins are mapped to physical pins 40 to 43 (GPIO 26,27,28 and 29) on the top right of the chip.
The RP2350B and the RP2354B are both 10mm^ QFN-80 packages and the extra area affords the chip more GPIO pins. Boosted from the 30 GPIO pins found in the RP2350A and RP2354A, the RP2350B and RP2354B have 48 GPIO pins. But what are the extra pins? We’ve mapped them out to compare the physical pin references between the QFN60 and QFN80 packages.
Physical Pin Number | RP2350A / RP2354A | RP2350B / RP2354B |
---|---|---|
1 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V | GPIO4 |
2 | GPIO 0 | GPIO5 |
3 | GPIO1 | GPIO6 |
4 | GPIO2 | GPIO7 |
5 | GPIO3 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
6 | DVDD Digital core power supply, nominal voltage 1.1 V | GPIO8 |
7 | GPIO4 | GPIO9 |
8 | GPIO5 | GPIO10 |
9 | GPIO6 | GPIO11 |
10 | GPIO7 | DVDD Digital core power supply, nominal voltage 1.1 V |
11 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V | GPIO12 |
12 | GPIO8 | GPIO13 |
13 | GPIO9 | GPIO14 |
14 | GPIO10 | GPIO15 |
15 | GPIO11 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
16 | GPIO12 | GPIO16 |
17 | GPIO13 | GPIO17 |
18 | GPIO14 | GPIO18 |
19 | GPIO15 | GPIO19 |
20 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V | GPIO20 |
21 | XIN Connect a crystal to RP2350’s crystal oscillator | GPIO21 |
22 | XOUT Connect a crystal to RP2350’s crystal oscillator | GPIO22 |
23 | DVDD Digital core power supply, nominal voltage 1.1 V | GPIO23 |
24 | SWCLK Access to the internal Serial Wire Debug multi-drop bus; provides debug access to both processors | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
25 | SWDIO Access to the internal Serial Wire Debug multi-drop bus; provides debug access to both processors | GPIO24 |
26 | RUN Global asynchronous reset pin | GPIO25 |
27 | GPIO16 | GPIO26 |
28 | GPIO17 | GPIO27 |
29 | GPIO18 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
30 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V | XIN Connect a crystal to RP2350’s crystal oscillator |
31 | GPIO19 | XOUT Connect a crystal to RP2350’s crystal oscillator |
32 | GPIO20 | DVDD Digital core power supply, nominal voltage 1.1 V |
33 | GPIO21 | SWCLK Access to the internal Serial Wire Debug multi-drop bus; provides debug access to both processors |
34 | GPIO22 | SWDIO Access to the internal Serial Wire Debug multi-drop bus; provides debug access to both processors |
35 | GPIO23 | RUN Global asynchronous reset pin |
36 | GPIO24 | GPIO28 |
37 | GPIO25 | GPIO29 |
38 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V | GPIO30 |
39 | DVDD Digital core power supply, nominal voltage 1.1 V | GPIO31 |
40 | GPIO26_ADC0 | GPIO32 |
41 | GPIO27_ADC1 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
42 | GPIO28_ADC2 | GPIO33 |
43 | GPIO29_ADC3 | GPIO34 |
44 | ADC_AVDD Power supply for analogue-to-digital converter, nominal voltage 3.3 V | GPIO35 |
45 | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V | GPIO36 |
46 | VREG_AVDD Internal core voltage regulator | GPIO37 |
47 | VREG_PGND Internal core voltage regulator | GPIO38 |
48 | VREG_LX Internal core voltage regulator | GPIO39 |
49 | VREG_VIN Internal core voltage regulator | GPIO40_ADC0 |
50 | VREG_FB Internal core voltage regulator | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
51 | USB_DM USB controller | DVDD Digital core power supply, nominal voltage 1.1 V |
52 | USB_DP USB controller | GPIO41_ADC1 |
53 | USB_OTP_VDD | GPIO42_ADC2 |
54 | QSPI_IOVDD Provides the IO supply for the chip’s QSPI interface | GPIO43_ADC3 |
55 | QSPI_SD3 | GPIO44_ADC4 |
56 | QSPI_SCLK | GPIO45_ADC5 |
57 | QSPI_SD0 | GPIO46_ADC6 |
58 | QSPI_SD2 | GPIO47_ADC7 |
59 | QSPI_SD1 | ADC_AVDD Power supply for analogue-to-digital converter, nominal voltage 3.3 V |
60 | QSPI_SS | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
61 | Not present | VREG_AVDD Internal core voltage regulator |
62 | Not present | VREG_PGND Internal core voltage regulator |
63 | Not present | VREG_LX Internal core voltage regulator |
64 | Not present | VREG_VIN Internal core voltage regulator |
65 | Not present | VREG_FB Internal core voltage regulator |
66 | Not present | USB_DM USB controller |
67 | Not present | USB_DP USB controller |
68 | Not present | USB_OTP_VDD |
69 | Not present | QSPI_IOVDD Provides the IO supply for the chip’s QSPI interface |
70 | Not present | QSPI_SD3 |
71 | Not present | QSPI_SCLK |
72 | Not present | QSPI_SD0 |
73 | Not present | QSPI_SD2 |
74 | Not present | QSPI_SD1 |
75 | Not present | QSPI_SS |
76 | Not present | IOVDD Power supply for digital GPIOs, nominal voltage 1.8 V to 3.3 V |
77 | Not present | GPIO0 |
78 | Not present | GPIO1 |
79 | Not present | GPIO2 |
80 | Not present | GPIO3 |
Basically, the extra GPIO pins (GPIO 30 to 47) present on the QFN80 package of the RP2350B and RP2354B provide four more analog pins (GPIO 40 to 47) and a bunch more general purpose IO should we need them. One would assume the extra general purpose pins offer PWM, and a quick glance at the datasheet confirms that they do. So now we have even more PWM pins to control servos or other timing critical components.
More RAM?
Every Raspberry Pi Pico 2 ships with 520KB of SRAM, but should a third-party wish, it can add up to an additional 16MB of PSRAM which also uses the QSPI interface (see the block diagram.) Pimoroni were quick off the mark to add 8MB of PSRAM to its Pimoroni Pico Plus 2 board which uses the RP2350B SoC. This board also has 16MB of external QSPI storage squeezed into a board that maintains electrical compatibility with the Raspberry Pi Pico 2.
If you need the RP2350B in a smaller form factor, but with the same 8MB of PSRAM and 16MB of QSPI storage, then Pimoroni’s PGA2350 offers an alternative. Measuring 25.4mm^, the PGA (Pin Grid Array) layout affords access to all 48 of the GPIO pins found on the RP2350B, all that you need to do is design a circuit around it.
An alternative to the PGA2350 comes from Solder Party. Its RP2350 Stamp XL breaks out all 48 GPIO pins of the RP2350B into a 45 x 25mm package. We get 16MB of QSPI flash, but only 520KB of RAM. The RP2350 Stamp XL is designed to be surface mount soldered to a carrier board, or to your own PCB project.
RP235X Availability
At the time of writing, the RP235X series are not in general circulation. There is obviously some quantity of chips available for third parties to design and sell their creations. But the RP235X is not for general sale as yet. It is hoped that the RP2350 will be in general circulation by the end of 2024.
The RP2354 is also mysterious; we’ve yet to come across a device with this chip inside of it. The RP2350 datasheet does provide details on the basic specs, but information such as the thermal characteristics have yet to be determined.
Les Pounder is an associate editor at Tom's Hardware. He is a creative technologist and for seven years has created projects to educate and inspire minds both young and old. He has worked with the Raspberry Pi Foundation to write and deliver their teacher training program "Picademy".
-
mwhannan74 Could someone help me understand how this MCU compare to something like the Teensy 4.0? I have been using Teensy boards for almost a decade and the 4 series comes with a 600 MHz ARM Cortex-M7 that is vastly superior to the pico. The Teensy is clearly a lot more expensive at $20, but it has full integration with the Arduino IDE. What is the benefit, besides cost, of the Pico? ThanksReply -
bit_user
Also, consider power consumption. For certain IoT applications, that might be a big deal.mwhannan74 said:Could someone help me understand how this MCU compare to something like the Teensy 4.0? I have been using Teensy boards for almost a decade and the 4 series comes with a 600 MHz ARM Cortex-M7 that is vastly superior to the pico. The Teensy is clearly a lot more expensive at $20, but it has full integration with the Arduino IDE. What is the benefit, besides cost, of the Pico? Thanks
For many embedded control applications, you don't need a lot of CPU performance. If 600 MHz is fast enough, there's a good chance 2x 150 MHz will be, as well. -
usertests Just don’t go expecting to see it pop up in the successor to the Raspberry Pi 5.
I wouldn't be surprised to see RPT integrate their latest microcontroller chip, also containing these Hazard RISC-V cores, onto a Raspberry Pi 6. Some boards like the Radxa X4/X2L include an RP2040. As far as performance cores go, RPi will stick with ARM until the end of time.
Machine learning might be the next thing Raspberry Pi tries to get into, but they could address that by improving the speed and number of PCIe lanes offered by the board. Then you get a HAT with M.2/PCIe, and connect a third-party AI accelerator. -
kd9pdp mwhannan74 said:Could someone help me understand how this MCU compare to something like the Teensy 4.0? I have been using Teensy boards for almost a decade and the 4 series comes with a 600 MHz ARM Cortex-M7 that is vastly superior to the pico. The Teensy is clearly a lot more expensive at $20, but it has full integration with the Arduino IDE. What is the benefit, besides cost, of the Pico? Thanks
The teensy 4.1 is an NXP MIMXRT1062. It actually only costs $5 at volume (so 5x more expensive). The speed actually isn't that different, the RP2350 is slower, but you won't notice it unless you're doing some complicated edge machine learning.
The rp2350 uses <10 microamps in dormant (RTC) power mode, the teensy's MCU uses 20 microamps. When in low power standby mode, the rp2350 uses <100 microamps, the teensy's MCU uses about 200. So the rp2350 will last 2x longer on battery, but is slower.
Overall, for 5x more cost, the teensy's MCU will probably be 2-3 times faster. It also has more peripherals. The rp2350 is cheaper with 2x longer battery life and comes with PIO to add exotic peripherals.
Each has a place. If you don't need the power, the rp2350 is great. If you also want to play with risc-v, you have that option with the pico as well -
Findecanor This CPU has performance somewhere between the Arm Cortex M0+ of the RP2040 and the Arm Cortex M33 of the RP2350.
CoreMark / MHz scores:
* ARM Cortex-M0 (RP2040): ~2.0
* Hazard3 (RP2350): 3.81
* ARM Cortex-M33 (RP2350): 4.09
So, according to these numbers, combined with a faster clock speed, the Hazard3 cores are twice as fast as the cores in the RP2040, and almost as fast as the ARM cores in the RP2350. -
bit_user
Thanks for the info. I guess the next question would be how they compare on perf/W.Findecanor said:CoreMark / MHz scores:
* ARM Cortex-M0 (RP2040): ~2.0
* Hazard3 (RP2350): 3.81
* ARM Cortex-M33 (RP2350): 4.09
So, according to these numbers, combined with a faster clock speed, the Hazard3 cores are twice as fast as the cores in the RP2040, and almost as fast as the ARM cores in the RP2350.