What is the reason the Raspberry Pi is not open at a lower level? Is it because the Raspberry Pi foundation is shipping a premade chip package, or do they run their own software and have their own reasons for keeping it closed?
Also, what does this closed-off lower level hinder or prevent?
I can't speak specifically to the raspberry pi, but generally SOCs like it uses do work like that. Most customers are concerned with the chip's high-level capabilities and actively don't want to touch the lower-level stuff, as it's irrelevant to what they're making.
A side note to developers who fork Github projects to continue developing them: it's extremely helpful if you document the fact that your fork is a fork in the README, as well as the most significant changes, and remove any old information. You should also link to a complete list of changes (if possible) and say something about your future plans (i.e. if you are hoping to upstream your changes, whether you're planning to maintain this software long term, etc).
Otherwise you're bound to get quite a bit of confusion from people who stumble across your work.
There is work being done on the RPi4, for example the SHA1 HMAC protecting the boot on the RPi4 had to be cracked (and was easily), I hear future versions have RSA signing support, so the proprietary firmware might become mandatory at some point.
The RPI is pretty sad from a software freedoms point. The entire thing is backdoored with proprietary firmware and filled with DRM. Even the camera module uses DRM to communicate.
However it does not come "bundled" with an OS. It is more versatile than many development boards in the sense of running different OS "out of the box". Granted the boot process is not ideal, but the design does give users a degree of freedom of choice in OS that many other SBCs do not. Most dev boards (certainly ones pre-RPi) are targeted at a single OS "out of the box": Linux. How many run Plan9.
I read this complaint about the RPi firmware so often on HN but I have never read how it actually is being used to stop RPi owners from doing what they want with their RPi. It is theoretically a problem but in practice what has actually happened. There has been an enormous amount of tinkering with RPis, people are using them for all sorts of things, and are able to build on the work of others. DRM is important but viewing copyrighted works is not the only use for a computer.
There is no perfect computer but the RPi for its OS-versatilty is arguably better than many others who fail miserably on that point.
There are certainly better dev boards from a spec standpoint, but if it cannot boot off external media and is only intended to run a single OS, I think it is missing some "freedoms" that the RPi provides.
I tend to agree with you that pragmatism wins the day where the Rpi is concerned.
However, the lack of open hardware for the Rpi means that it is not possible to replicate one at all. You basically can't make a Rpi-compatible board to suit your own needs.
It isn't the fault of the Rpi fundation, it's the sorry lack of openness in electronics hardware that is to blame. Chip manufacturers license lots of IP from each other and I doubt we'll ever see a truly open microprocessor/controller that would have all its features accessible without restriction.
We can hope that one day a RISC V implementation could be open, but then the GPU, controllers, etc would also need to be unencumbered.
Of course, it would be possible for chip manufacturers to allow this licensing -maybe to the detriment of the cost of the chip- but it would need to really be profitable for them to go through the 'hassle'.
After all, the die doesn't need to be open, we only need open access to all the functionalities of the chip.
> It's happened to the company I work with, they were marketing a cheap copy of our consumer electronics device under our brand name and even our customer service phone #.
the DRM in the camera, is to ensure only an authentic camera can function work the firmware based drivers, where all the support is offered
any un-supported camera must be driven from linux, and doesnt get full support from RPF, it must instead be supported by the community
That's quite interesting -- I didn't know that the camera module was DRM'd. Do you have a reference for that statement? And is the "core" DRM just related to Widevine?
The bigger problem is that the pi is a solution waiting for a problem, and until it sees more purchase outside everyones desk drawer there is very little impetus to clean up the ARM/Microsoft dumpster fire that virtualizes a guest OS on the device. The only people pedaling it are FAANG, war-drumming furiously for kids to learn to code for the love of god so they can stop paying programmers a reasonable wage.
everything the pi is touted to do, you can either accomplish with existing general computing or something like an arduino (and as a benefit, learn some electrical theory as well.)
>clean up the ARM/Microsoft dumpster fire that virtualizes a guest
The VPU does not operate as a hypervisor for the OS running on the ARM cores. Its role is equivalent to a hybrid of platform management (like Intel ME/AMD PSP/POWER SBE) and video processing.
The dumpster fire here is entirely Broadcom's responsibility. Microsoft is only indirectly involved in the VPU firmware by way of acquiring ThreadX many years after the RPi project started. Had Microsoft actually been involved in the project, the RPi would likely meet the ARM SBSA and boot via standard UEFI+ACPI than its Broadcom weirdness.
You say this, but the Pi 1 was released, what, nine years ago? And sales have apparently been good enough for them to also build the Pi 2, 3, 4, compute modules, Zero, and Zero W, as well as a standalone keyboard, and now a microcontroller. It's spawned an entire ecosystem of add-on boards, as well as other entire lines of SBCs built by other companies.
I really don't think you can drive nearly a decade of all that just from people buying one and tossing it in a desk drawer. I think maybe your perception of the Pi's popularity and real-world usage doesn't reflect reality.
I like and use my new PI400 every day.
Still have several older versions mostly sat in a desk drawer.
The pace of innovation in the PI product line has been rapid;
I have no reason to use earlier slower less reliable versions.
And they don't have great resale value.
None of them went straight into the drawer; they all had their time to run and occasionally get involved in a project.
Is it? At $work we deploy thousands of pis each year across multiple use cases. They are truly great devices to get compute in hard to reach places as well as to throw Chrome on a display. The harder part of this is the orchestration and management of every device and making it simple to deploy.
Since January 1 we have deployed around 600 new devices.
My network isn't nearly that large. I've got them all to phone home over wireguard so we can manage. Pi is a great way to ship a managed software solution.
This is exactly what we use it for, it comes as a simple to setup device that almost anyone could set up in <5 min with no technical knowledge needed.
It's all about getting them deployed effortlessly for us, and treating them as first class citizens in terms of management. Most of the devices like this you can pivot to another hardware platform if you wanted or needed.
It gets much more complicated when you start doing video (especially if you try to containerize your application, but it is possible to do while remaining performant.)
I think about 60% of our use cases boil down to "put chromium on the screen" though.
What OS are they running that you can reliably remotely manage them and not end up with a bunch of failures? I've had too many Pis corrupt themselves with dist-upgrade churn.
If you're shipping commercial products based on Pis and running dist-upgrade you're likely doing it wrong. Using something like [Balena](https://www.balena.io) you can ship full update images so that devices are always in a known good state, rather than potentially having some proportion of the OS in a half-upgraded state. The key thing is to support atomic updates - the device is either updated, or it isn't.
There's then a bunch of other stuff you want to do like turning down log levels, and only logging super important stuff to the SD card, which will drastically improve the lifetime of your storage.
Agreed. My use case is personal, but wanting to setup things and have them continue to just keep working, rather than having to tinker when they break. Last Raspbian failure was the files missing from /boot (old ones removed, new ones not put in place). Couldn't figure out the root cause.
I'm thinking of going to NixOS. The filesystem will still be mutating, but in a much more atomic way. And if a host does die, I can easily rebuild an image from another host and pave over its whole sd card.
The most robust way would be the embedded approach of two static flash partitions (update each one alternately), a separate partition for config, and another for mutable state. Alas that's more development work than I want to do for personal projects.
> The most robust way would be the embedded approach of two static flash partitions (update each one alternately), a separate partition for config, and another for mutable state. Alas that's more development work than I want to do for personal projects.
Just to let you know, this is the approach that balenaOS takes. Applications are containerized and deployed using Docker. The OS uses read-only system partitions to store the engine, kernel, firmware, etc, and has an A/B partition layout for resiliency and atomic updates. Applications are downloaded and stored on a separate data partition, and mutable configs are stored on another. The partition layout and a lot of how the OS functions is also well documented and public. [0]
Additionally, the first ten devices are free and fully featured, and the same people that help create the product, including (but not limited to) engineers, monitor the forums to help users. I'm one of those engineers. :)
There are a subset of use cases for the pi we work on that always seem to have posts on the Balena forums discussing, and the support that you all provide there is absolutely amazing. I don't know that I've encountered any official support that even comes close to what I see posted there. Thank you all for being awesome!
> the first ten devices are free and fully featured
Neat project, but this implies some sort of ongoing third party dependency/control that the devices would have, making it a non-starter for my use. The main reason I am using RPis as security cameras (for one use) is to avoid these type of security vulnerabilities.
There's OpenBalena for hosting your own device deployment and management server. https://www.balena.io/open/
It's self-hosted, which is a double-edged sword. You have to setup and maintain your own infrastructure, but you don't depend on a third party. For personal projects, it's probably the way to go.
Additionally, devices can be moved between servers easily. If you decide to use the cloud hosted platform in the future, or move devices from cloud hosted to self-hosted, it's easy to do.
Nothing special, just Ubuntu. We have a few devices that run into issues every few weeks or months. Typically devices that live in horrible environments that are staying undervolted and losing power during upgrades.
> The only people pedaling it are FAANG, war-drumming furiously for kids to learn to code for the love of god so they can stop paying programmers a reasonable wage.
Really? Maybe FAANG do peddle it for that reason, but I think it's an entirely reasonable class of device for those who want to give their kids a learning environment. As a 90s kid from a household who definitely could not afford computer(s) for me to just fuck up, I'm forever grateful to my dad for bringing home obsolete computer equipment from work for me to screw around with. While I'm not a professional programmer, that exposure is for sure the reason for my overall interest in technology, and the reason I consider myself a competent programmer. To me, this is priceless. If I ever have children, I'd want to give them that opportunity too. And while maybe I can affort more of a luxury in this department, I want everyone to have this access. The Pi and similar devices provide that! Fantastic!
While the Pi has a lot of problems with a lack of openness, its existence spawned a whole market for disposable computers that kids can run wild with. I think that's wonderful. It brought back the playful early days! If that means that FAANG will have an easier access to programmers in the future, so be it. It also helps equip people deal with the modern world. Great!
> everything the pi is touted to do, you can either accomplish with existing general computing
Yes you can. But not for the price of a few cups of coffee, and in a form factor that can be easily stowed away when not needed.
> or something like an arduino (and as a benefit, learn some electrical theory as well.)
That barrier is far higher. You know that. And how great isn't it that we have both? The low-barrier-to-entry Pi (and similar, more open, devices), and the somewhat higher barrier Arduino? The more, the merrier!
The IS the solution to UK's school program, that kids go back to the BBC in classes instead of dragging pictures on Powerpoint.
That the rest of the world decided it was better to buy PIs instead of BeagleBoards, that is another matter.
Personally I am found of boards with bare metal language runtimes like Arduino, or alternative OSes like the ESP32, so whatever happens to Raspeberry is irrelevant.
One of my collaborator profs works at a small university with not a lot of research funding. He needed some compute power for the mathematical physics problems he was solving.
So, he started buying one Rpi every month or so (I think with his own money). And got one of his undergrad students to spend a summer putting them together into a cluster.
Which is exactly one of the points of Rpi. Cheap compute power.
I don't fully agree, sure you could repurpose things like old routers to get a cheap headless linux board but you were often left with limited ram and flash (even for the time), limited IO and you had to jump though hoops to even get things like DD-WRT/OpenWRT on a router (The easier to flash routers with more flash/ram/io often demanded a premuim). The martket was ripe for a cheap linux SMB which the hardest part of flashing the OS for your avg Windows user being having to use Win32DiskImager.
When the Pi was first released us geeks were not its target market either. They were aiming to improve the accessability of affordable computers kids could program on. The founders had grew up in a world where every home computer started into a programming language interpreter (such as the BASIC prompt you got when powering up your Spectrum) and they were running in to college kids(16-18 year old education) wanting to do programming but had little to no programming experience. So they wanted to create something cheap so it was not the end of the world if the kid killed it, Something they could plug into their bedroom TV's and start to code.
From the Gen History of the RPI on elinux wiki (there is a full write up of the history some where on the RPI site, but searching their archives suck :-P) - https://elinux.org/RPi_General_History
> From a situation in the 1990s where most of the kids applying were coming to interview as experienced hobbyist programmers, the landscape in the 2000s was very different; a typical applicant might only have done a little web design.
> Something had changed the way kids were interacting with computers. A number of problems were identified: the colonisation of the ICT curriculum with lessons on using Word and Excel, or writing webpages; the end of the dot-com boom; and the rise of the home PC and games console to replace the Amigas, BBC Micros, Spectrum ZX and Commodore 64 machines that people of an earlier generation learned to program on.
I can back up the ICT curriculum claim. When I was in secondary school most people in my higher ICT class GCSE coursework was based around using spreadsheets (and the vast number of computers in the school were Acorn Achimedes so they were not even using Excel, I was the outsider who wanted to program something). Thankfully the ICT curriculum has improved since.
It wasn't until the Pi was announced, we saw it and thought Dam, a cheap linux SBC and we eat up their inital production run.
> everything the pi is touted to do, you can either accomplish with existing general computing or something like an arduino.
At the time of the Pi's launch having a networked arduino was a pain in the ass and expensive (I know because I was using them) and existing general computing was either too expensive, hard to get started with and as I said above often offered limited IO/Flash/Ram (I know the first Pi only had 256/512meg of ram, but compared to the other inexpensive options of the time that was a fuck ton).
The Pi launched at a $35 price point (Ok you needed a display/keyboard/mouse but SD Card/keyboard/mouse were also cheap and many kids already had a TV compatible with the Pi (or another computer) which did bump the inital setup cost a bit) where an offical arduino Uno/Original was also around the $35 price point back then, heck the offical Uno is still selling for €20 today. So for only a little more you could get something that would be able to program on the device you were wanting to program and you were not tying up the family computer (The lockdown has shown that many kids in a household are having to share computers to do remote learning).
Sure us geeks might have a few Pi's lying around in our desks as toys but they are still used for meaningful projects. I these them for Octoprint, Home Assisant, a departure board (https://ukdepartureboards.co.uk/) and a systems display monitor. I also keep one around for basically for usbprog alone without the need of having to use usb as I can use the onboard IO.
So while you see the Pi as a solution waiting for a problem, I saw it more as a solution for problems we didn't realise we had until the solution became affordable to the point it was considered throwaway / a solution that lowered the cost of entry to fixing problems that we didn't want to throw more expensive hardware onto.
Hmm, I can see your point, but only so far - 'existing general computing' like an old x86 laptop gathering dust doesn't have GPIO, for example. Personally I avoid Arduino because even though it's sizzling fast compared to a $15 RPi Zero W I'd much rather be able to use Python or Ruby, and have handy things like networking for api calls, ntp, etc.
Depends what kind of speed you are talking about. The Arduino boards are real time while the rpi is not. The rpi can do a larger number of calculations in total but it can not flip the gpio pin timed to a fraction of a millisecond like the arduino can because there is a kernel and scheduler in the way.
You can do bare-metal on the RPi also, you don't have to use a (non-realtime) OS like Linux which is where your latency issues come from.
You can treat the RPi as a microcontroller and program it via JTAG, etc if you like. Latency issues come from the OS, not the hardware.
yeah, you can either do baremetal arm under the official firmware (quad-core arm, up to 1.8ghz depending on the model)
or you can do baremetal VPU and skip the firmware entirely
500mhz dual-core VPU
128kb of L2 cache for both code and data
if you want dram, you need the ram drivers (only present for the VC4 line, pi0-pi3)
you could optionally rely on 1 closed stage to bring ram up, and do baremetal VPU from the start(4).elf to avoid the dram init sequence
and if you build upon rpi-open-firmware, you could get all 6 cores baremetal, running custom code
Upvoted because while your comment is provocative, it's at least interestingly so.
> everything the pi is touted to do, you can either accomplish with existing general computing or something like an arduino (and as a benefit, learn some electrical theory as well.)
This may be true, but was it true when the Pi was released?
For me, the Pi sits in an uncomfortable position where it's not really the best at anything it does. It's promoted at being for education, but arguably there are better solutions, and almost certainly the overwhelming majority of Pis purchased are by individuals and businesses, so this is a kind of misleading advertising.
They included a chip for media decoding (including 4K HEVC), which is a dead giveaway that much of the draw isn't the education market, but it's shockingly limited. For instance, despite support for HDR being advertised with the release of the Pi 4, as far as I know it still doesn't work at all. High bitrate media often fails to decode in real time. So if it's a HTPC type use, you'd be much better served by an Nvidia Shield or something like that.
The emphasis on netboot support suggests that they envision enterprise use cases, but it took them forever after the Pi was released to have this working fully.
They include hardware design files that suggest it's designed for the hobbyist hardware market, but yet it's not truly open hardware at all, and in fact they've been drifting further away from that ideal over time.
If anything, the niche is probably tinkering with hardware (given the number of add-on products), without having to jump in all the way with an arduino, but how many people who buy a Pi actually end up doing any of that? In the end, I suspect a lot of people bought them for the novelty of a $35 Linux computer.
I say all that, but naturally I own 3 of them myself. :-)
> and in fact they've been drifting further away from that ideal over time.
Can you provide a source where "open hardware" was touted as an ideal for the Raspberry Pi Foundation.
It's a cheap education platform built on Broadcom hardware. I don't think there was ever much chance the Broadcom h/w was going to be open. And that's maybe sad for some people but it won't stop the Foundation achieving its actual goals. Open hardware enthusiasts can vote with their wallet, for all the impact it'll have. It must be one of the best selling novelty products of all time.
> It must be one of the best selling novelty products of all time.
Indeed it is. As I mentioned in my comment, I own three of these novelty products. My post wasn't really intended as a knock of the RPI foundation, despite the fact that it's been read that way.
> Can you provide a source where "open hardware" was touted as an ideal for the Raspberry Pi Foundation.
I never presented it as an ideal for the RPI foundation. It's the ideal for hardware tinkerers, and the fact that RPI isn't really friendly to that market undermines the idea that hardware tinkering is the Pi's niche. That's the overall point of my comment: the Raspberry Pi doesn't really have a niche.
That said, they did brag on their blog back in 2012 that "the BCM2835 used in the Raspberry Pi is the first ARM-based multimedia SoC with fully-functional, vendor-provided (as opposed to partial, reverse engineered) fully open-source drivers, and that Broadcom is the first vendor to open their mobile GPU drivers up in this way." I think it's fair to say that this seemed like more of a priority in the past, and many of the geeky people who initially jumped on the Raspberry train were hoping to see it move more in that direction. (I was one of them: I was spamming the refresh button when the Pi was released to try to get one.)
There's also, I suspect, a bit of frustration from the open source hardware community towards RPI for capitalizing / cannibalizing that market. For example, this Ars article [1] refers to "the open source nature of Raspberry Pi (even the schematics are online!)", which we all know is untrue, of course.
Anyway, I guess I was just airing a few frustrations here. The Raspberry Pi is fun to play with, and the community is great (if you stay far away from the official forums). It's just that it's a bit of a jack of all trades, and isn't really ideal for any of the purposes I'd think to use it for.
That's interesting about the old blog post, I think we forget what a state things were back then that this was such a big deal. I was there refreshing with you but not for hope of open hardware. For me it's a cheap board with fantastic support that can do loads of tasks. Albeit not perfectly and there's quite a price jump to get something better, but that's just a testament to the awesome price point they keep hitting. I'm not convinced open hardware enthusiasts have much to grumble about, the offerings before rpi were poor and the market/community jumped forward tremendously on the back of rpi success.
Also, what does this closed-off lower level hinder or prevent?