I have never much like the raspberry Pi boards. It is all because of Broadcom. The big Pi boards use Broadcom chips, and my big complaint is poor documentation. Broadcom considers technical details part of their valuable intellectual property and is very careful to limit what you (the general public anyway) get in the form of technical documentation. Hence I just go elsewhere as there are many other alternatives with very good documentation -- such as the STM32 parts.
The game is all very different with the Pico boards. These are little controllers like the F411 "black pill" and so far I have seen very complete and excellent documentation. I can find no reason not to work with these. They are quite inexpensive also. Best of all, from the angle of working with USB, there is nice source code available. Maybe I made a mistake by working with the STM32 parts rather than these? I don't think so. Either choice would have been equally good, and I already had a good start with the blue and black pill, so it made sense to continue.
I was reminded about Pico chips when I started thinking about Olimex boards. Olimex is a nice company in Bulgaria, and I have always found their boards to be well designed with extra features other boards with the same chip leave out. They just came out with a couple of boards that use the Pi Pico chips!
These use the RP2350B chip. They show prices for the XXL at 9 euros and 5 euros for the XL. The trick is finding where to buy them (they were only released 2 months ago in January of 2025). Olimex also has boards with the older RP2040, namely their PICO30 that exposes all 30 gpio pins.I have some boards with the RP2040 (the standard "pico" made by Raspberry Pi). The price for them was only $3 and they would do just fine for USB experiments. Interestingly, the way you download code into one of them is that the Pico acts like a flash drive when you plug it in, you just copy the file with your code into the flash drive directory and then you can run it!
The RP2350B is dual core. They did something stupid though and made one core ARM and the other core RISC-V. I can't imagine any advantage from this and it makes developing code for one of these a pain. For some reason, people who don't think much admire the RISC-V because it is open source. But this doesn't do anything for the end user -- it only benefits the chip maker. Ignoring that, there is nothing wrong with RISC-V compared to ARM, but there is nothing better. It is just different. If you want to get an FPGA and play with RISC-V that could make the open source aspect of it attractive, but in a product like the RP2350, there is no benefit. I could go on with my frustration about this, but enough has been said for now.
It gets weirder, and maybe my complaints are ill founded. Consider this:
150 MHz dual ARM Cortex-M33 (ARMv8-M) and dual Hazard3 RISC-V (RV32IMAC+) cores (only two active at a time)That's right. There are actually four cores, but you only get to use two at a time. They run at 150 Mhz, which certainly beats the 96 Mhz for the F411 chip. If I can run the two ARM cores and ignore the RISC-V cores, this chip is a total winner for me. It has a single FS (full speed) USB. I read:
Each of CPU0 and CPU1 can be independently selected to be an Arm or RISC-V processor at boot time.This is a truly strange decision. Surely better use of silicon could be made other than two cores that never run. Maybe the Pi people recognize the misplaced enthusiasm for RISC-V and want to somehow leverage it. But they must still pay royalties to ARM. Just weird, but it suits my purposes.
The RP2040 (which I have on hand) are dual core (somewhat to my surprise), and ARM only.
Dual ARM Cortex-M0+ cores (ARMv6-M), Originally run at 133 MHz,[3] but later certified at 200 MHz [16]I'm not sure what the "later certified at 200 Mhz" means. Can I run my parts at 200 Mhz? Or does that mean that they later began "binning" select chips that were 200 Mhz capable? It seems that all chips are capable of this, but the regulator voltage needs to be bumped to 1.15 volts. This change was managed by the Pi Pico SDK.
So, whether I use my RP2040 or get my hands on the RP2350, I get a dual core ARM that can run at least 150 Mhz. And I get a well documented USB subsystem with decent code included in the SDK. This is certainly worth looking at someday.
The Olimex boards seem impossible to obtain, but RP2040 and RP2350 boards by the usual makers are readily available. Take Adafruit for example. They have a long list of options. You can get the standard Pico2 with the RP2350 for $5 (in stock) or get their big RP2350 "Metro" for $25 (a big board, what does it offer). And they have a variety of other offerings with the RP2350, not to mention the RP2040.
Tom's Computer Info / tom@mmto.org