Hacker News new | ask | show | jobs
by nieksand 1846 days ago
I have been playing with the Pico for a couple of weeks now, though I haven't incorporated it into any big projects yet.

The quality of the documentation is phenomenal. Very competent people clearly put serious effort into making it great.

Another stand out is the Programmable I/O feature. Basically, you have eight separate, programmable state machines that can manipulate I/O pins and do DMA. This lets you offload bit banging from the main cores. Details are in Chapter 3 of the C API docs: https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-...

I'm a total amateur when it comes to embedded development, so I have no idea how the RP2040 sits in the competitive landscape.

2 comments

The documentation is excellent, and the Programmable I/O (PIO) is a unique feature. Still, the lack of WiFi and Bluetooth makes the RP2040 uninteresting for me compared to the ESP32 in a DIY project. With the ESP32, I can quickly throw in a web interface and use Over-The-Air updates. I think they missed the opportunity to position them against the ESP32.
Totally agree. Their release seems to make it seem that dual core with multiple hundred K of RAM is unique. The elephant in the room is while it has nice GPIO interfaces for sensors, you want onboard wireless for backhaul. Espressif have had this space for a couple of years now.
I can think of many application with no need for wireless backhaul, or where wireless becomes a liability. It boils down to cost, power, noise, security, frequency used, and complexity. LoRa or similar is probably better than Wifi for many applications. I like that it isn't opinionated about the wireless stack.

I'm guessing that lots of Picos will see use as enhanced GPIOs for Pi "motherships," which provide backhaul to multiple wired-in Picos.

In fact I have a project which could use a decidedly non-wireless USB GPIO, for use on an airplane imaging system.

What you say is true, however, $1 is a killer feature.

It can replace many IC and will make a very good addition to ESP32 which lacks pins for many projects. And, sometimes you want external chip so output is not affected by ESP32 reboots or freezes.

For secure applications, on-board wireless makes your life hell. I'm actually pretty happy they didn't.
Depending on application and how you define "secure", you might find that having an easily sniffable SPI/SDIO/UART connection between main MCU and wifi chip can be a weakness.
I believe the point is "no wifi whatsoever".

If you need wifi, by all means, go integrated. But not everybody does.

The problem with onboard wireless is that this adds a boatload of complexity regarding certification in various regulatory domains, trademark compliance, ...
...not to mention massive code size increase, for wifi/bt driver. And that driver is likely to come as an inscrutable binary blob.
If you do want bluetooth/WiFI, agreed, it's annoying to not have it, true. I rarely need either capability, so I don't mind too much. (And it's remarkable that ESP32's are so cheap that I find myself using them even if I don't use those features).

On the other hand I often find myself missing USB-related features on the ESP32, such as being able to act as HID device or even a USB host. The ESP32-S2 fixes that, although software support for that is still relatively immature.

There are some other solutions based on the RP2040 that will include wifi and bluetooth. So you'll just have to pickup one of those if you want them. I suspect they will be more expensive but probably not prohibitively so.

For instance: https://launch.arduino.cc/nano-rp2040

yes! I found these on sale at digikey. Search for "arduino nano rp2040". They cost about $28.
The PIO is a very neat feature, allowing (limited) hard real time programming (even when using MicroPython) and while perhaps uncommon, it's not exactly unique: TI Sitara MCU (as used e,g, in Beagle Bone Black etc.) offers more capable Programmable Realtime Units (limited functionality co-processors). The Raspberry Pico board is however much cheaper (not sure about the price of the MCUs).
I agree what would have been really interesting for me is if the pico board had had wifi and support for pi camera… then you’d have a board to compete nicely with the Esp32 cam
Pair it with ESP32-SOLO or nRF5. That’s what ESP8266 was originally meant for, a wireless modem chip. Remember back when ESP-01 came with AT command firmware?
It's very competitive for applications that can make good use of the programmable IO feature. Other chips with similar capabilities are substantially more expensive.

It's also clearly going to have a great developer community building up around it, which has great value in itself.

It's also great value as a "easy to integrate cheap module" which is what they initially pitched it as.

Of course these days many applications need a wireless interface (wifi/BLE) and you can get competitive parts at similar prices to the RP2040 (ESP32 or a BLE MCU).

I guess they could have added the RPi WiFi chip for about USD 1.5 in BOM cost (assuming common industry prices based on distributor price/quantity matrix)
It would probably make more sense to add an ESP32 rather than a BCM4335 like on the RPi since that chip is intended to run with a full host OS and needs a large binary driver blob (yes the ESP32 also has a binary blob).

Either way it's no longer cost effective.