Who Needs a Raspberry Pi Microcontroller Chip? Maybe You
eejournal.comPlug: we have designed a range of RP2040 based dev boards for different tasks which make prototyping/evaluating the platform a breeze - and it's an exciting platform with what it offers for the price. The PIO especially is an extremely interesting feature.
- Tiny2040 - a super small USB-C dev board with up to 8MB flash: https://shop.pimoroni.com/products/tiny-2040
- PicoSystem - a handheld gaming console with 240x240 colour IPS display, audio, and classic controls: https://shop.pimoroni.com/products/picosystem
- Keybow2040 - a 16 key macro keypad with per-key RGB lighting: https://shop.pimoroni.com/products/keybow-2040
- Plasma2040 - designed for driving WS2812/APA102 LED strips: https://shop.pimoroni.com/products/plasma-2040
- Interstate 75 - for driving LED matrices like those used in giant outdoor screens: https://shop.pimoroni.com/products/interstate-75
We also have a heap of accessories for the official Raspberry Pi Pico development board: https://shop.pimoroni.com/collections/pico
I already love a lot of things at Pimoroni, but that Tiny2040 looks great for experimenting with! The wireless pack also seems interesting, might experiment with that concept on a custom board.
I haven’t come across an RP2040 I couldn’t overclock to 250+ MHz. Couple that with DMA into the PIO state machines and it smashes through stuff like the weird WS281X timings, HUB75 matrix scanning and even DVI and usually has a whole spare CPU core to actually do something with whatever device you’re driving.
It feels like it sits nicely between regular MCUs and the quirky every-peripheral-is-emulated-in-a-core awesomeness of the Parallax Propeller and - though I’m probably biased by experience and necessity - I love it.
I honestly loving using it as well, hence the post. I have not always had the best time with the Parallax Propeller (was going to use it for a work project last week but ended up going a different route) but when I have played with it the experience was awesome.
The RP2040 usually just works for me, and the PIO is awesome. I've had a few cool automation projects at home that the RP2040 was the easiest thing to just get up and running with. In the past I would've gone with something in the STM family, but I'm very happy and impressed with the RP2040/Pi Pico.
I am an embedded developer and have used a lot of different microcontrollers in the past and present. The RP2xxx series is a very exciting microcontroller series. Currently only the RP2040 exists, but I expect to see other versions with more ram, integrated flash, maybe a M4 instead of M0+ core.
The truely exciting things about the RP2040 are:
- Market availability
- Low price
- 2 x Cortex M0+ cores
- Possibility to overclock
- Flexible PIO Programmable State Machines with FIFOs
- High GPIO count
- Excellent documentation (!)
- Lots of examples
I think the RP2040 is even totally overpowered / underutilized for most of the tasks I see in most projects.
What I would love to see in the future, is a version with integrated flash (with possibility to expand with external QSPI flash), a cortex M4 core with FPU and the ability to attach PSRAM to expand the usable memory (and map it into the memory map of the RP2xxx).
I've been toying with porting a tiny subset of Unix to the Raspberry Pico ever since I bought a pair of these cute little buggers. But memory at 264KB remains an issue. How easy is it to wire up SPI to some external RAM chips maybe on a breadboard?
There’s no support for mapping external memory but you can apparently get creative: https://github.com/yocto-8/yocto-8/blob/main/doc/extmem.md
Yeah you won't even be able to decompress the kernel, you'll need at least a few MB of RAM (and even that would be heroic). Google SPI SRAM, pretty easy to use.
I think it's totally possible if it's all run from the flash and only used the SRAM for housekeeping. Should be fun !