First Impressions with the Raspberry Pi Zero 2 W
blog.alexellis.io
blog.alexellis.io
Are you running Zeros now or other models? What would you run on an RPi Zero 2?
For qty 1 @ $30 you get 2GB and 4 cores, you could put 2 more ethernet ports on the PCIe port for a total of 3. That gets you into the same-ish performance regime.
I am all for aggregates of low end compute, but I think something with more processing power and more PCIe lanes would scale better.
https://www.digikey.com/en/products/detail/raspberry-pi/SC02...
What makes more sense for you will depend on your workload and scaling requirements.
I’m not sure if I feel that but it’s on my mind.
Now with the Zero 2 W, there are three tiers: the Pi 4 for SBCs, Zero 2 W for providing connectivity for things that don't really look like computers as such (but still need Linux for whatever reason?), and then the Pico for microcontroller projects. The difference in capabilities between each tier is large; they cover a wide spectrum of use cases. You can't complain that there are too many tiers.
It's good to know that you can fall back to the older Pis if you have very specific/niche needs that they fulfill better than the new ones, but you'll know it when you need them, and having these extra choices doesn't hurt.
If you don't have very specific requirements, just pick the most appropriate of the three new ones. Easy.
I guess I'm also disregarding the compute module, because I haven't seen particularly compelling reason to look at it. Again I guess if you have very specific needs and can design a carrier board for it, have a go at it. Otherwise, ignore.
The Raspberry Pi isn't competing with a microcontroller. They're on opposite ends of the computing spectrum. If an application can be quickly developed and run on a microcontroller, using a full embedded Linux system would be overkill.
As for Linux work: The Raspberry Pi 4 is plenty fast for most embedded applications. If you're trying to use it as a desktop replacement it's going to feel sluggish relative to an actual desktop, especially if you're only using an SD card instead of a USB3 SSD. However, it's generally not a problem for most non-desktop use cases.
Compiling large projects is the only place where a Pi 4 starts to feel limited, but cross-compilation is available with plenty of guides online.
If you have a situation that requires more power than a Pi 4, you should probably be using a real desktop or VM anyway. These are embedded systems that start at $35, not something competing with a $500 NUC or a $2000 laptop.
The spectrum is wider than that, but if you're comparing Pi and MCUs, today you have 32 bit multi-core ARM microcontrollers that run at hundreds of MHz and make a 486 look wimpy. And for a microprocessor, the first gen Pi is pretty darn wimpy (wikipedia compares it to a 300MHz Pentium II). Yet the performance difference between a first gen Pi and a Pi 4 is absolutely massive.
That's what I mean by the awkward space. Yes it's still faster than a high end microcontroller, but if I need an application running on modern Linux, chances are I don't want to deploy it on Pentium II class hardware except in very niche circumstances. So it's neither a microcontroller, nor is it a decent microprocessor for modern OS. It's about right in the middle of the spectrum where it kinda sucks for any application that can be implemented on a microcontroller and sucks for anything that needs a "real computer".
I need to point out that I actually work as an embedded software developer in this space where we have high end microcontrollers running a custom RTOS and applications that offer largely the same functionality and interfaces that we also implement using low end Linux-capable ARM solutions; what you can implement on a microcontroller is a heck of a lot, but Linux capable chips have gotten cheap and using them sometimes saves development effort on the driver & application stack. There's plenty of overlap, they're totally not opposite ends of the spectrum.
Which happens to be exactly where the pi excels. I'm currently writing an application to record my homebrew information and also capture basic sensor data. A PC + arduino/sensor platform would be overkill and an ESP8266/ESP32 would slow me down.
Pi 2B running PHP? Perfect.
* There's an application that runs on Linux already and you want a cheap way of running it in a small space -- like a shairport-sync audio client feeding a local music system, or a web-connected clock/calendar/tasklist/notification.
* Very low cost, replaceable desktop for a kiosk, a classroom, whatever where it will run either simple office applications or be mostly a web terminal. (If you just want low cost, a used laptop might be a better value -- but if you need to be able to repeat and/or replace it, a Pi is better).
* Friendly target for someone who doesn't really understand embedded systems and will be tinkering for a long time.
I think that's because the Raspberry Pi's might be best used as tiny consumer servers, not desktop (or embedded) computers. They seem perfect for running things that require an OS and a moderate amount of processing power - say, DNS, Syncthing, audio streaming, ssh tunnel point, a VPN, a small personal (static) website, or a NAS that doesn't have particularly high performance requirements.
So, Linux "applications" but not in the sense of Firefox, or other interactive GUI programs.
(this ignores the lower barrier to entry that they have than actual microcontrollers, which is a different kind of use-case)
The competitors seem to be much more common than the Raspberry Pico (i.e. it is much easier to find expansion boards, examples etc. for them). They seem to cost roughly the same too, and the ESPs even include WiFi and in the case of the ESP32 even Bluetooth, which makes interfacing with them so much easier.
I'm kinda surprised they released that. The RPi was awesome because it was the first mass-produced SBC (making it both affordable and well documented/supported). There are many competitors, but none so universal and common. With microcontrollers, I don't see any unique selling point, nothing that could get them to that position.
The Raspberry Pi was developed for teaching, as a low cost board that's easy to work with and that has good community support. It wasn't intended to be the most advanced board for your projects, and you could always find something cheaper if you really wanted and didn't mind the hassle..
The Pico is very similar. You get it for less than 5 eur from official distributors in Europe, you plug it in and it shows up as a USB mass storage device onto which you drop your program and off you go. I can see it being a very popular way to get started with microcontrollers, and just like Arduino, that popularity is not a function of features.
I'm curious to see where they take it though. It's their first in-house chip afaik, and the board is rather bare. I wouldn't be surprised if they release variants with more features.
They don't actually require that, but that's what we usually end up doing. That's a choice though, and there are alternatives, they're just a lot of work.
Instead of have faster computers, I want a faster OS. Or preferably very little in the way of an OS. Something like a DOS, perhaps. Something where you could write blazingly-fast software because the kernel is straightforward. And I want a real-time kernel.
I'm vaguely aware that there's some stuff out there, like RTEMS and a real-time Linux, but I suspect it's all a pain to set up.
I've played around with writing my own "kernel" - but it's more in the style of a "unikernel" - which is a pretty good approach.
The real problem occurs when you want to use the USB. A USB stack is not easy to implement. I also had the SD card working, but I haven't been able to get it working lately.
I would like to see Pis flourish as a way of implementing Operating Systems, but the hardware is too complex.
Maybe some kind of Pico/Pi hybrid might be feasible. That might sound an insane suggestion, but Ebon has mentioned in the past that a combo of a Pi with a microcontroller is a good one. Why not take this idea to its logical conclusion and put both on the same board?
This is very useful for running hard realtime tasks on the microcontroller and "control" / GUI / application-stack intensive tasks on the Linux side, as you suggest.
With that said, all this does for toy OS development is makes it more complicated.
I think what you are looking for for your use cases might really be just an RTOS on a microcontroller with some provided driver blocks. Take a look at ESP32 as well :)
On the table next to me I have a system that's comprised of a SOM running Linux for a UI and an STM32 for real-time control. They talk over a serial port. I didn't realize that ST had combined the two. That's definitely useful information!
The Broadcom CPUs in the RPis have unpredictable pauses to let the GPU refresh the RAM (really). That makes them unsuitable for hard real-time applications where you must service an interrupt within a certain time, or emit a signal on a strict deadline, etc.
They're just fine for soft real-time applications where some jitter is acceptable, but what counts as "soft" real-time versus "not-at-all" real-time is the subject of some debate.
There's also the fact that compared to PCs, ARM boards are kinda special snowflakes. DOS could boot and run on thousands of different machines ("IBM PC compatible") from different manufacturers, in part thanks to BIOS abstracting out some of the core peripherals, in part thanks to (de-facto) standard peripherals. Your custom ARM OS? Well, it won't boot on the next board. UEFI is sort of changing that, but really it pushes the problem to the bootloader (until they start implementing UEFI in firmware).
In a way, I actually prefer not having to rely on BIOS or UEFI, because that protects me from stupid implementations and allows me to customize things. And on the other hand, if you want high performance drivers for modern peripherals, you probably don't want to rely on a firmware abstraction for it (but it'd still be nice to be able to boot and get a shell & some basic I/O going even without hardware specific drivers). But that means you do need drivers in your OS, and as long as chips keep changing as often as they do, it's a never-ending battle to stay on top of driver support.
PCs also gave you a nice escape hatch in that you'd plug in your peripherals to a slot and you could choose parts that you have drivers for. That's not really the case for laptops of course, and ARM SoCs integrate most of the peripherals so if you get a new chip, you get new everything.
The default choice should be the base model Raspberry Pi 4. The other options (compute module, Zero, higher RAM versions) are for specialized needs. Even if you’re using the Zero or Compute Module you probably want the normal Raspberry Pi 4 around for development.
It's different from, say, apple having 10 different types of mac books each for slightly different use cases.
I'd have guessed that there's somewhere a warehouse full of Pi Zero Ws, but I can't buy one right now in Germany. There's a shop in Switzerland, but I'd have to pay import taxes and whatnot to get hold of that.
So, let's try a Model 3 B+ then... Same as before: Official vendors are almost all sold out, one has some but it's 15 to 20 Euro above the recommended price...
Something's broken in the reselling system if you ask me.
Are you discontinuing Zero and Zero W?
No. We seldom discontinue products, even where they have been superseded by more modern product at the same price point. Zero 2 W is $5 more expensive than Zero W, and joins the Zero family as a third member.
Note that Zero and Zero W are currently experiencing supply constraints in the context of the global semiconductor shortage. We hope that this will be resolved in 2022.
An econ student would probably tell you that this is the market adjusting (or trying to) against the official price not matching the supply/demand intersection, so they're only available at the "real" price that unofficial vendors provide. (Of course, it may be more complex than that simplistic reading, hence econ student :])
What you are seeing is probably because the 3B+ is the most sold version, and replenishing anything is slightly harder right now.
For random stuff you do once, if you need a powerful computer (weak-desktop-like) with great IO, you go with 4. If you need great IO on a weak normal computer, you go with the 3. If you need a powerful-desktop-like computer, you go with AMD64, and if you only need great IO and not much of a computer, an Arduino.
The zero goes on things that you will do many times or that have very specific constraints.
Who the hell signs off naming a product 'Zero 2' let alone the 'Zero 2 W' ?
I wonder if the naming mess is intentional for marketing or an accident of not predicting the future well enough? They certainly seem to be trying to keep it simple and it's nowhere near the impossible muddle of, say, Intel and AMD CPUs or Nvidia GPUs yet.
In practice there are 4 RPi's: the Zero (5$ is hard to beat), the Zero 2 W (small, cheap, with WiFi) and the 4 Model B.
Then there is the Pico, but it is a microcontroller, a completely different product, and the CM4, for large scale deployments.
Managing a lot of different little Pis for different server-like things is fun for experimenting with clustering and multi-server management tools, but it gets old fast if you really just want several different VMs or containers.
VMWare ESXi is even available for the Raspberry Pi now: https://www.servethehome.com/getting-started-with-vmware-esx...
Wow, thanks, I'll definitely be checking that out
What kinds of things would you run with yours? Maybe you could use a GitHub action to trigger IoT lights on and off.
That's a long-winded way to say: debugging.
You can deploy one without ever plugging in a keyboard or monitor.
Why don't they add M.2 port?, it would instantly make Pi lot more reliable.
If you buy your SD cards from Amazon or Ebay you can't guarantee quality for these products.
My raspberry pi doesn't do many disk operations so the speed isn't critical and 90 MB/s is plenty. My digital camera, on the other hand, has dual SD card slots, and can record uncompressed(!) 10 bit 4k video @ 60fps but needs 2 x 400 MB/s continuous write, which is... a pretty specific need. And cost accordingly.
pi3/4 can boot straight from USB.
In my case.. I have a couple of old gen1/1.2 Pis, no boot straight from USB, but an SD card with only the FAT32 /boot partition that's got the read lock on card set, and boot config set for a USB stick in the side of it. They're still slow, but not gonna brick the SD card.
1. Use an "endurance" SD card, these are usually advertised for dashcam use.
2. Boot from a USB device instead of SD, now natively supported.
3. Boot from LAN, also natively supported.