Hacker News new | ask | show | jobs
by javchz 48 days ago
Agree. It's clear since COVID that Pi it's barely a company for makers or DIYers anymore, but it's a supply company for small to medium industries to integrate cheap PCs in their manufacturing process and they are good at that role.
1 comments

Huh. I had a work project a decade ago where we were evaluating SBCs as drivers for kiosks. At that time, the prevailing wisdom was that the Pi was specifically not for industry, as its main advantage was the strong community to provide support for DIYers. Competitors like PINE64 and Orange Pi were the same/better specs at half the price.
When people talk about whether something like a Pi is aimed at industrial customers, that is largely not a statement about the cost vs specs, nor about the level of engagement with the DIY community. It's usually about having a suitable supply chain and long-term support and stable BOM and a mature software platform for customers to start building on.
Our logic at the time was that the relatively fixed cost of figuring out the hardware and developing device-specific software was less than the variable cost-per-board delta of like $20.
The Raspberry Pi and Arduino platforms weren't meant to power commercial-grade products, nor be cost effective at scale compared to raw/custom ARM and AVR devices. However, they've become ubiquitous in education, which I imagine has impacted industry. Similar to how software companies give out free student licenses so that upcoming engineers become familiar with their software for when they start working, an entire generation of embedded systems engineers were taught on official (or compatible) Arduino and Raspberry Pi devices. While these platforms aren't meant for commercial products, I imagine engineers in industry might use these platforms to prototype or work with subcomponents, before they integrate it with a raw/custom AVR or ARM platform. After all, when prototyping, it's easier and faster to get up and running when you have a massive collection of libraries and tutorials online to use, which RPi and Arduino offer, versus doing it all yourself with raw AVR and ARM.
Raspberry Compute Module (basically a normal raspberry without built-in I/O) is widely used in the industry at large. What they are not meant to be is the lowest cost per CPU/GPU flops so they are mostly used in high-value-add / low-volume / gen-1 products.

https://www.raspberrypi.com/products/compute-module-5/?varia...

I personally worked on a system with raspberry compute modules 3 and 4, the total system cost was in the ~million dollar range. This was definitely a commercial product with dozens of engineers doing R&D, not a hobby project.

We were looking into smaller systems with lower profit margins (~20k USD) and for those we were considering moving away from raspberry CMs because of cost.

The main advantage of the raspberry CM ecosystem is just how widely popular it is and how cheap and available "dev boards" are (just grab a non-CM raspberry and it is almost the same thing). Most of these types of systems don't really have the I/O that makes testing and developing a lot easier.

Being popular is quite important because firmware issues are notoriously expensive to troubleshoot and fix often requiring the manufacturer help. Said manufacturer does not give a damn if you are a low-volume customer. More popular systems have more information available online and are less likely to have bugs (or at least the bugs are known).

I remember one of our other systems bluetooth module had a weird edgecase bug that caused the module to shutdown after several days of it being powered on. It took multiple engineers >1month of work to basically go "yep nothing we can do about this and manufacturer is not helping"

I know they are being used in Ukranian drones and some police-car systems in some cities (although this was hearsay from a coworker and I don't remember the city). But those are just the examples I heard of.

As an example, I believe the tear-down of one of the now-defunct electric scooter rental company’s units revealed it contained a RPi. IIRC, the commentary lambasted them for using it, because it’s not really rated for that kind of job. But a significant portion of the peanut gallery understood and rationalized the decision. I expect fewer folks would question this choice these days.
I've seen this sentiment a bit and while I don't dispute that you can get a better SBC for cheaper, there are still a lot of issues and it tends to be around software support primarily that allows it to occupy a very sweet spot. It's a significant factor in deciding to use them. There are a lot of embedded use cases that can be solved by hooking up to an ESP32 but there are a bunch that need a little bit more than that. If you want to run a web server for example, you do have options on the ESP32 but also writing C/C++ for a web backend is both a little fraught and kinda miserable compared to Python or Go or something. I mean it's certainly doable, but it certainly isn't the first language I'd reach for. If you want to work a little bit with streaming video, same deal

So this is the embedded Linux usecase. And... the embedded Linux ecosystem seems kinda... hacked together? You a lot of the times get Yocto Linux which is its own can of worms because you tend to invariably get meta-vendor packages that patch everything from U-Boot to the kernel to random userspace utilities. There are better cases and it depends on how much the vendor works upstream. Sometimes the vendor doesn't even bother with maintaining the meta layer and it ends up getting into a "maintained mostly by one guy in Nebraska" scenario

Some other vendors seem to take U-Boot and a copy of the Ubuntu LTS sources from 10 years ago and hacked it until it was possible to get a root shell without the thing going into a kernel panic then put the resulting image on a Google Drive or FTP server somewhere but didn't go much further than that

What ends up being is that there is like a U-Boot and Linux kernel variant for either each different SBC (or sometimes vendor thereof) duck taped together. Support, even for the peripherals included, can be spotty at best, and there are many times where you have to patch the kernel or userspace to get it to work right. I've seen boards which run the weirdest stuff, ones whose kernel patches run into the megabytes with poor (if any) documentation, boards which apparently don't want to run anything but Android, etc. There are certainly vendors that work well and upstream and make everything nice and easy but they tend to be rarer and/or more expensive

Compared that with the Pis and the difference is night and day enough that the raw specs matter less. Yes RasPi has their own kernel fork, but iirc they do work a bit upstream and the versions maintained are like 6.12 and not like 5 (which I've seen). They are also relatively easy to procure where more specialized vendors tend to be... less so. Flashing them is pretty simple and if you want to create your own image you can do that as well easily without Yocto or whatever. The HAT ecosystem is a nice way to add extensibility, the headers basically allow you to do a lot of ESPy type things as well (since Linux has native specific userspace support for GPIO, I2C, SPI, PWM, LED, hwmon, etc). And so on and so forth. And it all just kinda works

This in of itself, makes it a pretty decent option for industry, especially if it's like either n <= 1000 units or a relatively small part of the BOM itself. It often is very much the economically sensible option to stick a Pi in it rather than put many man hours into fixing problems that really shouldn't require me to open up menuconfig or apply a kernel patch again.

People like Geerling tend to come at it from the hobbyist or maker side of things but it does apply to the industrial side too. Yes in many cases knowing part XYZ will still be manufactured in 30 years is more important than the dev experience or some other factor is at play (power draw being another) but in a lot of cases its not (e.g. more portable code, stuff not requiring recertification) and the Pis also do have a relatively reasonable time guarantee too. It shouldn't be a bad experience to develop on these boards! But regardless, there are a lot of times that it is, and that's why I think the RasPi continues to do as well as it does.

This is also why I think, despite the price, it continues to do well in the hobbyist community. I can hook it up using the headers to anything SPI, I2C, etc, and start making it do things with very little software trouble and regardless if I want to do it in C or if I want to do it in Python