At least it's much cheaper than Arduino (like 2-3x compared to Uno). The price of Arduino Uno is not justified by anything when its NRE cost must have been recouped long ago.
At least it's much cheaper than Arduino (like 2-3x compared to Uno). The price of Arduino Uno is not justified by anything when its NRE cost must have been recouped long ago.
The ESP also has hardware floating point, which if you need to use that sure does blast past the pico's core's.
What the pico does shine well at is the PIO controllers and a good documentation user base. The fact that within a year it had early on full support in the ecosystem of microcontrollers is pretty darn amazing, more so given Espressif not exactly known for their doumentation and the whole intergration with IDE's like the ardiuno was dedicated users off their own steam driving it.
Another plus for the PICO is that you can get for a dollar the chip itself and with the advent and ease of doing your own circuits, afforded the ability to roll your own controller board how you want them. Sure can do that with the ESP's but not sure so easily accesable price wise as the PICO chip is and not as cheap.
Yes the whole lack of wifi and BT upon the PICO in todays times with IOT this and other projects, does leave shortfalls, though there are boards that do that, sadly many get WIFI by adding something like an ESP01 chip and the whole ironic aspect of a microcontroller needing another microcontroller for it's wifi when maybe what you wanted to do could be done upon the ESP01 alone, well. Bit of a chuckle.
So for me, were the PICO stands out is the PIO controllers and how they with the USB host option allow many device avenues. Want your own joystick - doable, want to emulate some odd protocol - may well find the PIO can take a lot of strain from that.
But it is a microservices architecture!
Given that you can buy a pico chip in the pro micro form factor, with usb c, for cheaper then an elite c, I'm hoping these end up in a lot more keyboards.
Are you using micropython? This sounds like a treat.
For comparison, Microchip (formerly atmel) SAMD21 (also Cortex-M0+, of Arduino Zero fame) is about 3-4 $, single core, less RAM.
But it has built in flash.
Sure, external flash is still cheaper* (512K for ~$0.2) but it's a major downside having a mandatory extra chip because of how much more physical space it takes up.
* Might not actually be cheaper if you consider pick&place cost of an extra part you're not likely to use anywhere else.
Last time I tried RP2040 SDK (a few months back) many functions you would need to use in these IRQ handlers were not marked as RAM, which means you have to copy&paste them from SDK to your code and add the attribute.
The ESP32 suffers from similar problem, but at least they seem to have been more thoughtful about slapping these RAM attributes here and there.
Having said that, the RP2040 is generally much more pleasant to program than ATSAMD21 or ESP32 and the PIOs are awesome. Also you can easily get it with assembly from JLCPCB at $1.20 or thereabouts.
edit: typo
What's your source for this? The RP2040 datasheet claims 0.18 mA for Dormant state and 0.39 mA for Sleep. As you've got detailed control over what gets clock gated in sleep state suspect you can bring that 0.39 mA down if you've only got one or two wake events to care about.
In that context, 180uA is pretty bad, but again, the datasheet is not very clear.
You've got 2 sets of 4 state machines, that can do a whole lot of stuff at really impressive I/O rates. People have used them to generate VGA or DVI (HDMI) with just some resistors and connectors.
It's almost as good as having an FPGA. I suspect people will be wringing more and more performance out of this chip over the next year or two.
However the PIO state machines set it apart.
My use case is different though, I will be adding an NRF9160 for connectivity so ESP32-based stuff just didn't make sense. It's also for academic customers who want to be able to work using MicroPython should I get hit by a bus.
But I do agree that this feels like the Arduino situation all over again, where many people mistake the sudden popularity and influx of Tweets, YouTube videos, and headlines as an indicator that it’s the premier microcontroller on the market or the only logical choice for new projects.
It has a few unique and cool features, but we should periodically remind everyone that every microcontroller is a set of tradeoffs and compromises that the user should evaluate.
On the other hand, if you’re going for maximum clicks or views, putting “Raspberry Pi” in your headlines is a guaranteed way to bring in more eyeballs. It’s constantly a hot topic.
But yeah, the only reason I'd use an RP2040 is as a USB peripheral, and even then I'd use an ESP32 S2 or something.
I just... don't have much use for non-connected chips as a hobbyist. On a pro project, I get it that there's sometimes demand for non-connected stuff, but it's usually not super exciting.
And the libraries are written mostly by 3rd parties.
The M0 is not much slower than M4 when running at the same clock, and the RP2040 can run quite fast. Of course it's different if you comparing to M4F and need float32.
If you end up putting code in SPI flash and you need predictable latency, you will need to put ISRs and everything they depend on in RAM [0]. However, if you don't need down-to-microsecond latency, then it's just fine.
[0] eg https://github.com/lancaster-university/codal-rp2040/blob/ma...
ADC
DNL
NIH
NRE