Raspberry Pi Pico 2, our new $5 microcontroller board, on sale now
raspberrypi.com
raspberrypi.com
> I can't compare the sizes of the two cores. The final die size would likely have been exactly the same with the Hazard3 removed, as std cell logic is compressible, and there is some rounding on the die dimensions due to constraints on the pad ring design. I can say that we taped out at a very high std cell utilisation and we might have saved a few grey hairs during final layout and STA by deleting the RISC-V cores.
I was hoping that the next iteration would start using USB-C even if it costed a bit more per-board.
https://www.raspberrypi.com/for-industry/powered-by/product-...
I recently bought a dozen RP2040 ProMicros with USB-C and 16MB flash for about $2.70 each, and there's variants with smaller flash for even less.
This store, if you're wondering: https://www.aliexpress.com/item/1005006130019224.html
0. https://www.raspberrypi.com/documentation/microcontrollers/d...
1. https://argon40.com/en-gb/products/argon-one-v3-m-2-nvme-cas...
Thought it might be the cable at first, but it was general. Just couldn’t think of a reason why it wasn’t supported though…
My guess is the RPi foundation has a _ton_ of extra micro USB connectors they want to use up.
In the past, when usb-c just got introduced micro usb ports for significantly cheaper than usb-c, so it made some sense. Today, it makes no sense.
Simple sinks just use two 5.1k resistors for pull-downs, no matter how much power they want to draw - and they always need these resistors (two for receptacles, one for plugs), otherwise they won't work with USB-C sources at all.
1: I still have a ton of micro-USB cables, and a decreasing number of things to use them for. Some are unused, still in unopened packages.
2: Devices like this don't get moved and plugged/unplugged frequently, which is what kills the connector.
> Picossci2 Breakout is a drop-in replacement for Pico 2, with a USB-C connector.
Larger package (60 or 80 pins)
Variant with 2 MB in-package Flash
Secure boot and encrypted boot
Two security execution contexts
Random number generator
SHA-256 accelerator
8 kB of OTP ROM (separate from the 32 kB BOOTROM)
8 channel HSTX high speed serial transmitter
30->48 GPIO (18 more, in the 80 pins)
8->12 PIO state machines
12->16 DMA channels
RISC-V and ARM (selectable at boot, individually per core)
Cortex-M0+->Cortex-M33 (I don't know what that means in practice)
133->150 MHz core clock
https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.p...
I think the 60 pin version is the same size as RP2040.
Not in terms of the product specs (which are also really nice), but in terms of layout and content.
Indeed, that is a well-written technical book that one could read cover-to-cover. It has a clear progression of topics, and all of the text is beautifully written:
"Once secure boot is enabled, the bootrom verifies signatures of images from all supported media: flash, OTP, and images preloaded into SRAM via the UART and USB bootloaders. At this point you lose the ability to run unsigned images; during development you may find it more convenient to leave secure boot disabled. The next section describes the generation of signed images to run on a secure-boot-enabled device."
"The chip-level reset subsystem shares a register address space with other power management subsystems in the always-on domain. The address space is referred to as POWMAN elsewhere in this document. A complete list of POWMAN registers is provided in Section 6.4, “Power Management (POWMAN) Registers”, but information on registers associated with the brownout detector are repeated here."
"The clocks block provides independent clocks to on-chip and external components. It takes inputs from a variety of clock sources, allowing the user to trade off performance against cost, board area and power consumption. From these sources it uses multiple clock generators to provide the required clocks. This architecture allows the user flexibility to start and stop clocks independently and to vary some clock frequencies whilst maintaining others at their optimum frequencies."
I am thoroughly impressed!!
Making a single core with two instruction decoders but a shared register file, caches, prediction logic and ALU would make sense for a very high-end application processor type core, but not for these small devices. You would also need an instruction set license from ARM for that, vs just licensing the M33 netlist.
Supposedly it didn’t require any measurable amount of additional die space, because other things constrained the minimum size of the die (like the I/O pads), according to one of the Raspberry Pi engineers.
An additional ARM core would have required significant changes to the crossbar. Right now, only two cores can be active, not three.
I think this type of pseudo-wasteful design is not unheard of when manufacturer had two markets to deliver to that had substantially different processing, but not I/O, requirements, as well as when some of major features in already manufactured chip didn't work out and ways to offset losses would be nice.
ISTR that some of their ESP32 boards do, though. i.e., charge LiPo through the USB port.
Also, I think some of the Heltec boards do. I have one here with a JST battery connector, but I haven't used it in so long, I'm not sure. I think this is the one I have: https://heltec.org/project/wifi-kit32-v3/
Though I'll also not I'm having some problems getting it to take an upload properly, but I tend to find most of the LILYGO stuff takes a little experimentation to get everything right, then it is reliable once you know what it likes.
You can also get version to fit the Pico, or even a RP2040 based board with integrated battery management.
I found some modules on aliexpress with usbc connector, for example:
- IP2326 https://www.aliexpress.com/item/1005007175222069.html
- CN3302 https://www.aliexpress.com/item/1005006203228418.html
but I haven't tested them yet.
>RP2350 includes a pair of open-hardware Hazard3 RISC-V cores which can be substituted at boot time for the Cortex-M33 cores. Our boot ROM can even auto-detect the architecture for which a second-stage binary has been built and reboot the chip into the appropriate mode
https://www.raspberrypi.com/documentation/microcontrollers/s...
Page 1274 of https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.p....
We’ve seen some amazing demonstrations of that power: from our very own Graham Sanderson’s port of DOOMThe post claims PSRAM is supported.
Either way, that seems like great news.
The amount of different variations of Raspberry Pi's I've been collecting over the years for no good reason, all doing nothing. And I don't even consider myself part of the upper echelon/extremists when it comes to this.
With that said, I wonder when we will get Raspberry Pi Pico 2 W (with wireless/Bluetooth capabilites)
> The unique dual-core, dual-architecture capability of RP2350 provides a pair of industry-standard Arm Cortex-M33 cores, and a pair of open-hardware Hazard3 RISC-V cores, selectable in software or by programming the on-chip OTP memory.
Kind of interesting... Two architectures in one chip? https://www.raspberrypi.com/products/rp2350/
There are bigger things that produce way more waste though. Lots of vehicles (especially boats) have huge fiberglass composite components for example.
Literally everyone in the developed world is guilty of being irresponsible with digital waste/footprint.
If you already have any kids at all (for example), there's nothing you can do to reduce your damage to the earth. Go ahead and as many raspberry pis as will fit in your junk drawer and don't give it a second thought.
If you ever get on a plane for vacation, same story. Raspberry Pi is a rounding error.
If you buy a new phone every few years, again same story.
This is a misanthropic perspective, we should have no kids and die out to reduce ‘damage to the earth’. Best environmentalist is a mass murderer. Worst climate criminal is a sperm donor.
But if you look at the physical world, Earth already had 6 mass extinction events, asteroids, supervolcanoes, etc. they killed basically everything, and life bounces back. There will be more. Our efforts are unimpressive in comparison. In absolute, it doesn’t matter.
From a humanist view, ‘Damage to the earth’ is damage to its ability to support human life. That’s the perspective that makes sense to me.
One of the requirements is that civilisation continues.
And the best contribution is to bring up a well adjusted, kind and capable individual, and for them to do the same.
If lump together environmental impact of children and parents, then if your bloodline continues forever your evrironmental impact is infinite. This creative accounting leads to absurd conclusions
I said if you have kids don't hand wring over your environmental impact. It's like thinking that if you cry at the beach you're making the ocean saltier.
If you have kids you're betting that, "the best contribution is to bring up a well adjusted, kind and capable individual, and for them to do the same."
It's a decent bet for sure.
It would be great if humanity would shrink to 1 or 2 billion. More than enough. Resources wouldn't be as scarce, housing wouldn't be a problem. Much less need for wars as most of those are driven by resource and land scarcity. It would be much easier to reach an equilibrium with nature.
The problem is that a high birth rate is viewed as a virtue due to religious and short-term budget concerns (more people to pay for pensions etc). While it's true that a shrinking humanity would cause temporary issues, it would only be for a while until it stabilises.
I for one am really happy with my decision of not having any kids.
I don't frown on people with 1 or 2 kids but I do on those with huge families. But that's just me, they are free to do so of course.
Datasheets say they’re 21x51mm. Looks like they’re on the order of 5mm deep. So 5.35mL per Pico.
Four million of these would be 5659 gallons of Picos, 756 cubic feet.
So you could take the e-waste of every Pico sold to date, and put it in a single 9.1ft cube in your garage.
I’d argue that this doesn’t qualify as something we shouldn’t spend time worrying about. There’s probably at least one Pico, maybe running a sign at some EPA office, doing more good for the environment than all the waste from all of them together is causing harm.
Did you consider used market? I was stupid enough to not take the opportunity to make some good money when even ancient ones were unobtanium and overpriced everywhere, but recently managed to sell all my older ones at a decent price, so no direct waste was produced.
What concerns me more about this Pico however is the signed boot locking feature that if not reversible could lock a Pico to the original program forever, so an used one couldn't be repurposed for anything else even if a non malicious user wanted to reflash it entirely without reading the original content. I'm not sure about that so I'd welcome more information on the subject: could signed boot locking be reversed with a complete flash erase?
Data sheet [0] section "5.4 Powerchain" shows an external RT6150 buck-boost switcher with an external inductor.
0: https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf
Edit: reading further in that section of the data sheet, "The RP2350 has an on-chip switching regulator that powers the digital core at 1.1V (nominal) from the 3.3V supply, which is not shown in Figure 7."
It has proven difficult enough to find a PDF of the schematic (I don't have Cadence Allegro installed) that I am giving up.
> The maximum frequency for the HSTX clock is 150 MHz, the same as the system clock. With DDR output operation, this is a maximum data rate of 300 Mb/s per pin.
Datasheet section 12.4.1 "Changes from RP2040"
- Removed spikes in differential nonlinearity at codes 0x200, 0x600, 0xa00 and 0xe00, as documented by erratum RP2040-E11, improving the ADC’s precision by around 0.5 ENOB.
- Increased the number of external ADC input channels from 4 to 8 channels, in the QFN-80 package only.
https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.p...
The investment was made nine months ago. Is a hardware design locked in at this point? We will see what happens in the future and whether we will get more RISC-V cores.
Espressif apparently has their own WiFi implementation, which makes sense as they are a major vendor of very cheap tablet and cell phone WiFi radios. This is likely why they can offer that feature so cheaply.
Bluetooth Low Energy is way simpler BTW.
>Before the end of the year, we expect to ship a wireless-enabled Pico 2 W, using the same Infineon 43439 modem as Pico W, and versions of both Pico 2 and Pico 2 W with pre-installed 0.1-inch headers.
Raspberry Pi Foundation released a RP2040 based dev board(Pico W) with an additional external wireless chip, as have others(including boards with an additional ESP32 just do comms).
A CPU just plain can't do this. Even if you want to pretend it's one cycle per pixel the realtime constraints at higher resolutions are way out of the realm of feasible. We struggle to do CPU driven audio in realtime as-is (Audio is measured in Khz of bandwidth rather than Mhz).
You can do this at very low resolutions easily enough (again it's exponential with resolution increase) but then you have a low resolution screen.
I worked with an ST Micro processor and small TFT display. The routine to write to the screen was to save the contents to RAM and then point a graphics renderer to that RAM. Double and triple buffering were required to avoid screen tearing (screen update with partial previous and next screen mixed.)
(And, like the predecessor Pi Pico, a version with wireless will be coming later.)
That, and it's super well documented and easy to get code running on it.
ESP32 is a great complement to it though for projects needing wifi or BLE
The ESP32 is a fine series of MCUs, but it doesn't have PIOs, a choice between ARM and RISC-V (or both!), 5v-tolerant IO -- to name a few things that this new RP2350 provides.
There's a ton of stuff in the world that uses an MCU and doesn't have wireless, and that would not benefit from having wireless.
But if RP2350 features and wireless are both necessary today, then nothing but a few schekels and some space on the board stops anyone from integrating those things. One can have both.
Remember, even the ESP8266 was first seen in English-speaking DIY circles as just a way to add wifi to things like Arduino projects and not so much as a capable, programmable MCU itself.
https://hackaday.com/2014/08/26/new-chip-alert-the-esp8266-w...
You say it’s not the same as the pi’s pios. So I’ll ask. What does the pi do here that the esp doesn’t?
Are people in this thread just misguided in saying the esp doesn’t have Pio or am I missing something?
You're missing something but it's actually easy to get confused about.
GPIO: general purpose input/output. A pin that can be used by the main CPU core(s) to interrogate the outside world.
PIO: programmable input-output. A small, I/O dedicated state-machine that can be custom-programmed in a minimal assembly language to handle I/O tasks/simple protocols/state management, over GPIO/I2C/SPI etc., without taxing the primary CPU.
https://www.raspberrypi.com/news/what-is-pio/
https://tutoduino.fr/en/pio-rp2040-en/
Some microcontrollers have basic features a little similar, but it's something the RP series is taking a lot more seriously than most. The RP2040 has eight of these PIO state machines; the RP2350 has 12.
There are some astonishing examples of what these things can do. But basically think of these as delegated GPIO/SPI/I2C etc. co-processors that can blaze away at high speeds on I/O tasks without needing the main cores until something "high-level" occurs.
The PIOs are state machines that let you develop custom peripherals that run asynchronously, not taking up CPU time. You could probably bitbang some custom peripherals on an ESP32/ESP8266, but that takes up a lot of CPU time and power.
People use PIOs to do all kinds of things.
For instance, here is a method for using RP2040 PIO to produce VGA signals, using nothing but a Pi Pico, some jumper wires, and a few resistors on a breadboard: https://vanhunteradams.com/Pico/VGA/VGA.html
I myself have used RP2040 PIO to get a consistent PWM output in what was a bit of a boondoggle. I was working in Micropython, and the documentation for that said it supported hardware PWM output on this hardware, but that output was affected by the code in my main loop and was glitchy in ways that I found to be unusable. Rather than investigate the apparent issue with Micropython, I instead put together a thing in RP2040 PIO assembler that produced adjustable PWM with absolutely perfect consistency regardless of whatever I was doing in software.
And at least in my own example: The performance hit of doing this was zero since PIO is a dedicated hardware block that handles jobs like this in any way that I can program up.
Now, sure: I'd rather have used hardware PWM because that's simpler for me. And the ESP32 does have hardware PWM. But that PWM block only does PWM -- it can't be adjusted to do other things, whereas the RP-series PIOs can run arbitrary code to handle IO tasks. (So why didn't I pick an ESP, instead? That's easy enough to explain: I already had a Pi Pico in-hand.)
---
Meanwhile, as a general construct: There is absolutely zero reason to fanboy one MCU platform over another. It is absolutely OK that there are multiple competing inexpensive DIY-friendly-ish things in this space. This isn't Highlander. This isn't the fucking Super Bowl or the World Cup. There can be more than one.
That would be everything I need to develop web applications. I wonder if I could use a 3-piece setup to do so:
A keyboard connected to the Pi
The Pi connected to a tablet which acts as a monitor
Not sure how much the Pi weights, probably less than 100g? The Apple Magic Keyboard for example is 230g. And the Lenovo Tab P12 for example is 570g. So together less than 1kg. For a Linux development machine with external keyboard, that would be quite nice.I have built a few prototypes with Raspberry Pi Zeros, which are luxurious web servers -- 512mb of ram, capable of utilizing a 2tb sd card.
https://www.reddit.com/r/cyberDeck/
https://www.reddit.com/r/cyberDeck/comments/1eksn4a/3d_print...
[1]: https://chicagodist.com/products/raspberry-pi-4-model-b-1gb
I use my PIs for basically two reasons - they can be conveniently powered from a USB hub and they can act as USB gadgets.