What’s Wrong with the Raspberry Pi
ownyourbits.com
ownyourbits.com
If anyone remembers why the rpi started life: it was to get cheap affordable hackable “computers” in front of kids and hobbyists for programming purposes.
The affordability and ease of use has become a bar that everything else is measured by “that’s x times more expensive than a pi” is a common response when better solutions for your use-case exist.
The raspberry pi has made many compromises to be at the price it is. No dedicated Ethernet controller, no SATA bridge, no eMMC-
It’s literally the definition of suffering from success because now it seems people don’t judge it on what it was meant to do; just on what it’s possible to do with it.
It’s worth remembering that it is not meant as a one size fits all general purpose computer. It’s a hobbyist programming board.
Though they come with a different set of tradeoffs the devkit is reasonably priced.
However if I have a specific long term purpose in mind I will look elsewhere.
I still use my 512mb pi1 for Kodi. That is, mostly watching clips/photos from my camera or occasionally sending it a YouTube link from my android tablet. The ui is a bit sluggish today but if you browse your library via an external app it doesn't even matter. I'm really curious how long it will last for that purpose.
The only problems I ever had with the dozen or so units after 2 years was a few sd card failures. I believe these were all rpi 2.
Yes to a point, but then these conversations always end up recommending $100+ Nucs. If some one asks for a cheap run about, a Ferrari isn't the answer. Although I will admit people ask for cheap run abouts that do 200mph with v8 engines.
"people don’t judge it on what it was meant to do; just on what it’s possible to do with it"
Doesn't this go both ways? Its possible to use it as a desktop, which it may not be very good for. Its equally possible to use it for many 100s of things that weren't intended.
I suppose at minimum you expect it to do what it was designed to do. But it succeeds because of what its possible to do with it?
For example, something like a kodi would run _great_ on an orangepi winplus, since that board has a dedicated gigabit ethernet controller (so the full CPU is left available for actual decoding) and hardware accelerators for x265[0] and it costs about $40 depending on where you buy it of course. That's not "ferrari prices"
For micro-NAS appliances there's things that have existed for _years_ like the cubietruck which has an open source design, gigabit ethernet (dedicated controller) and SATA headers. Even has on-board eMMC.[1] and can still be purchased for around $80
This is what I know of off the top of my head, I'm sure if you look around you can find a _lot_ of boards that have your own particular needs. Not every problem fits in raspberry shaped holes.
But those import fees are not going into the production of the board. It's a very cheap board to manufacture and the recommended retail price was (and continues to be) one of the core principles behind the products design.
There _is_ a $5 computer (i think the zero still costs that in microcenters). But that was never the original plan
And what really intrigues me is how much time people will spend trying to get this SBC to do something in a one-off project when an extra $75-$150 will get them a system that can do much much more out of the box.
I suppose that could be a significant factor for some (but not all).
The real answer is: "yes, but".
Yes, there's a strong ecosystem elsewhere, the raspbian project deserves _major_ kudos for supporting so many boards and so well, anything listed on their site is basically plug and play, sometimes linux has to be coaxed into doing SPI, but that's Linux itself.
"But" you should have learned how SBC's are working already. Pi's are not the first and last word in SBCs and it's wrong to hold them to that standard.
If you use RPI for it's intended purpose there's no reason you'd be in this position now; learning how GPIO pins work is one of the only things that will differ strongly on a PI vs something else.
Unless you're talking about third-party hardware being built for the platform?
And regarding shields, a lot of other SBCs have keyed into the Arduino and/or RPi shield setup. I'm working with a Broadcom EVK right now that's not meant for hobbyists, and even that board has an RPi shield header on it. Pick up any recent Kinetis-based board and it's got Arduino shields on it.
But let's think about the complaints the OP presented. He's bitching about the on-board ethernet PHY and whatnot. External add-ons aren't even the topic here.
Yes, the SD card sucks massive balls, PSU issues are less of a problem now that most people have decent fastcharge USB lying about now.
The support that the PI is worth _every_ tradeoff. It is not a server, You can use it as one, but you have to spend some money, and do some work.
Yes, I'd love a pi with emmc and proper ethernet. But, I don't want to have to support it myself. Virtually all the other pi clones require significant engineering time from me, _or_ are in a black hole of support, stuck on a hacked version of ubuntu 14/16.
For a real datastore, you need a proper atx board with more than one sata port. That means paying > £200(PSU, case, ram, motherboard). I have one of these, and I don't use it for anything other than storing data(no I don't use own/next cloud. I like my stuff reasonably secure.)
The pi is great for what it is. You're trying to make it do something its not designed to do, and its fighting back.
The criticism of the article is not about the Pi being hard or something.
Why is nextcloud insecure? Could you provide more information please? (I am about to set up a server for personal use)
The first screw-up was that they misread the data sheet for the USB hub and Ethernet chip they used and backpowered the entire 3.3V bus from its regulator, causing it to overheat and fall over. Since this caused every method of communicating with the Pi to fail the only solution was to reboot. (Not all boards were affected, it only happened if the voltage of the internal regulator was higher than the external one and every chip had a slightly different voltage.)
The second screw-up was a USB driver bug which caused it to send commands to the USB hub at invalid times if a full-speed or low-speed USB device was connected. Basically every USB keyboard and mouse on the planet is either a full-speed or low-speed device. This caused input issues and even complete hub lockups which were blamed on the keyboards and mice drawing too much power or users connecting an underpowered PSU. In reality, the Pi as originally released was incapable of reliably supporting pretty much any USB input device.
They're slowly getting pulled in kicking [1] and screaming [2]. I just installed the mainline arm64 version of Archlinux onto an Orange Pi Zero Plus, and I was pleasantly surprised that I only had to compile one out-of-tree driver (rtl8189fs for WiFi).
I'd recommend Armbian, a nice distro for ARM SBC's: https://www.armbian.com/
Of course, as with everything in ARM-linux land, GPU drivers are still a WIP. For headless use, it works well though.
And there were issues with the spring-loaded slots although I've never had issues with that either.
Some SD cards are unreliable because they are removable storage and some vendors therefore think they can get away with sketchy quality. As soon as you solder on the storage (aka eMMC), reliability requirements shoot up through the roof and vendors tend to do a good job of ensuring quality and reliability.
However my suggestion is to just use an external SSD which are dirt cheap compared to SD cards (128GB for 26€).
You effectively can't even do anything with the compute module without buying another motherboard to slot it into. It literally has no IO ports beyond a DDR2 SODIMM conector.
https://www.mouser.com/new/Swissbit/swissbit-industrial-SD-m...
I do.
> Do you have link to any data?
I spent a month plus at work tracking down SD card issues on a high availability project.
> Why do you think it will improve reliability?
They're made with not bottom of the barrel, failed everything else flash, do stuff like treat MLC as SLC by only putting 00 or 11 into a cell, have controller firmware that's playing significantly fewer games with your data, etc.
If you're shipping a product, some of the other things they do like exposing lot codes that mean something, taking bug reports even though you didn't a million units, and exposing internal status counters are really nice.
And yes, the pricing on a microSD is different than an SSD, the SSD is 100 times the weight.
I have 6 of RPi's and running at home without issues, no sd corruption running 24h for weeks now.
But I had a project where we used RPi as kiosk close to 10kv electric motor that was turning on and off periodically. Best power supply dedicated for RPi was not helping there because that was network fluctuation. I got loads of corrupted sd cards at that time.
It's going strong and for updates I just issue a quick remount and I can change what I need.
I started looking into layered filesystems for that purpose. Treat the main disk as read-only and have a writable layer in RAM that you can periodically commit to disk when desired.
But it seemed to be quite cumbersome to setup.
Edit: This is pretty close to what I've done with mine: https://petr.io/en/blog/2015/11/09/read-only-raspberry-pi-wi...
When I need to update I just run the remount command (IMPORTANT: on both /boot and /), make your changes, perform your updates, clean up the apt cache, then remount read-only or just reboot.
Any decent safety solution needs to be multi-tiered;
I backup my configs to Git, make a backup of the now read-only filesystem after you've set this up and put it somewhere safe, and when the worst happens, restore to a new card, or build from the backup configs.
I don't keep anything critical on Pi SD cards, that's why losing so many cards has been little more than an inconvenience.
For read-only filesystems, a simple copy of the card in multiple locations, on and off-site is good, for read-write, backups configs to Git, RAID arrays and off-site.
If the system is time-critical, first, I would suggest not running it on a Pi, use something more reliable (I moved my home automation to a NUC because it's more reliable than the Pis were), or, use multiple Pi's in redundancy, even half a dozen Pis is cheaper than a NUC if your use-case supports distributing the load.
The issue with that is the cards fail read-only and I won't send back cards with private data on.
I asked them if I can destroy the card first and they said no, because they have to test it in order to honour the warranty.
I moved the critical box (my home automation) to a NUC, the other Pi's are still doing fine.
I own several Raspberry Pi’s. One of them is taking time lapse photos of a skyscraper going up two blocks away from my office. It had trouble uploading the photos every morning around 7am. It tended to catch back up at night. The problem went away once I replaced my 2amp power supply with a 2.5amp model. Day photos produce larger image files than night photos. My theory is the Raspberry pi had trouble processing and uploading the larger image files while running under voltage.
I had always used Pi's in headless mode with first boot enabling SSH and connecting to my network so I had never seen the power/temp notifications to question anything.
Now I'm wondering the best way to validate the Power supplies and USB cords powering all my other Pi projects scattered around the house. I'm less concerned about the power supplies and more concerned about the cables.
I've always bought Aukey power supplies and battery banks and been very happy with them, however I bought a batch of USB cables once that were rubbish and won't ever buy cables from them again.
I have a docker swarm cluster consisting of two Pis and two ODroids[1].
What HardKernel has done is quite interesting - taking the idea further. They continue to support the same pin io. However you can get boards with stronger processors, more memory and Gb lan. I would like to the the folks at to consider exploring models with different specs. I would love to see an octocore with 4GB memory and GB lan able to read MMC at +100MBps.
Still no POE hat though.
> There are other affordable alternatives out there where developers have given more consideration to those issues.
Like what?
Could some of them still have similar issues? Possible, but the issues he describes have been there for a while on different Raspberry models.
The only decent thing to come out of the Raspberry project after the original model was the Zero.
This is just such a massively dumb comment.
The stuff coming from the group is all pretty good and relatively well priced. This includes the various upgrades and different form factors. It has some shortcomings as described; literally every other SBC also has some shortcomings too. Like the Orange Pi you mention, which might as well be alien technology given the quality of the documentation and code required to get it running.
Also, with "relatively well priced" do you mean "overpriced"? And with documentation you mean the stuff the users wrote on the forum (ok, they did at least try, but the real useful stuff is from the forum)?
Come on, while I realize that other SBCs have a lot of issues too, let's not forget that every iteration of the Raspberry had its issues, some of them being the usual issues found in boards from other vendors too.
If you need an example of a well built board, well documented and with amazing price, check out the CHIP from the now defunct NextThing Co. Best SBC I've ever had, for a fraction of the cost of a Raspberry.
And if you need something that you can still buy, look into the Asus Tinkerboard. Yep, it costs more but it feels like alien technology that works compared to the raspberry 3F+ (... or was it the 3D-? Hard to tell, when they are a rehash of the same stuff, even worse than the Arduino).
If heard good things about the Beaglebones, but never used them myself.
I‘m not a fan of the Odroid board, because they require custom Linux or Android and at some point those are not updated any more.
I know its all trade offs, but for its price, there isn't really anything to beat the pi.
As I said, trade offs
Yes it's just 2 users but I also shared folders with people who up- and download stuff.
The web interface is responsive enough and the weak end when downloading stuff from it is my internet connection (upload sucks).
I agree that it's a good idea though ;-) I've ordered a successor with some serious power and SSD for the Pi (https://blog.codinghorror.com/the-scooter-computer) to get more users to work with it and also try the NextCloud Talk feature.
Also heard good things about the beaglebones.
I hope your storage is not an SD Card though, because if that's the case you are tempting fate ;-)
Thank you very much for the "Scooter Computer" link! I had seen those off-brand x86 boxes on Alibaba and I wanted to get a couple for a project but didn't know where to start from, that article by Atwood is a good start.
It's more than a double price of RPi. It's definetly not afforable for education purpose.
> Beaglebone
I love this SBC but it is seriously underpowered than RPi in 2019. It focus more on real-time embedded system performance and rapid hardware prototyping.
> It's more than a double price of RPi. It's definetly not afforable for education purpose.
It's definitely more affordable than those ipads units bought by some schools.
The RPi has it's own specialties, especially the price. For 40USD (give or take) you get a system: - which might be running proprietary FW but still has it documented and allows you to run any OS you can imagine; - is (partly) manufactured in Europe!; - has an actual company/community behind which is caring for the product/itself way more than the "let's make some-money from the rich DIY-guys in EU/US"-* droid-company
But then thats a pretty weak argument against any board. the raspberry pi foundation are a charity, they spend virtually all their profits on education.
The Pi camera communicates with the GPU through a standard MIPI connector, but it is equipped with a DRM chip and will reportedly refuse to work with boards that are not equipped accordingly, with the proper secrets.
https://hackaday.io/project/19480-raspberry-pi-camera-v21-re...
There are a lot of boards with stronger hardware which are maybe great for general use, but they very often lack good drivers, for example many support I2S out but very few support I2S in.
Also the community support for the Rbpi is great.
Are there similar projects with good high quality enclosures, dedicated power supplies? Are there any that support some kind of atx-like shutdown signals (requires quite a bit of hacking to do that for an R-pi)
Do I need to go to a “real computer” such as a NUC to get this, or is there something in between? I like the simplicity of single board with everything on board including the possibility to run of a memory card - but I’d like something I can trust will run for years without a failing power supply preferably without having to spend a grand.
The other I was hoping to put Kodi on to sit behind my TV, but Kodi on Linux refused to start up telling me there was no hardware accelerated graphics available.
https://bia.is/2019/02/02/raspberry-pi-check-your-power-supp...
’wget -O - https://gist.githubusercontent.com/maxme/d5f000c84a4313aa531... | bash’
First I used Samsung cards, it eat a bunch of those for breakfast, then I switched to SanDisk, which did the same.
They all failed the same way; permanent read-only state.
The problem is that some did so silently, for weeks the pi was writing things to it, but none of the data was lost until a reboot, where the FS instantly travelled back in time.
Sadly the open source alternative is lacking the human resource to replace it. https://github.com/christinaa/rpi-open-firmware
Pi wasn’t meant to be a DIY NAS, so use something else. No HN post required about this really.
When people say it is "lacking" something it should really be interpreted as them saying that it is not a good match for their project.
[0] https://picamera.readthedocs.io/en/release-1.13/api_array.ht...
The points the author addresses are absolutely a thing but you get to know those after a few projects. I don't really see an upside of switching out the SBC every year (or whatever the actionable advice is meant to be here) since that's quite literally never a point I want to spend time thinking about and the Pi is good enough (tm) for my use cases. It's not like the common use case for these hobby boards is in critical infrastructure.
Except for the C2 but is that really stuck on "Ubuntu 16.04 and Android 5.1 Lollipop based on Kernel 3.14 Lts"??! Or just an outdated website? Oh and no WiFi/BLE anyway so that's out.
C2 stuck on 16.04? I have no idea where you found that. It runs 18.04 currently since last year: https://wiki.odroid.com/odroid-c2/os_images/ubuntu/v3.0
And the C2 is not the right one to buy right now. You should rather consider the XU4
That xu4 link states it runs 16.04 but maybe that's also out of date info. The cpu performance sounds good but I think we'll have to disregard the pi3 comparison they provide as per the throttling the OP describes. Usb and network performance improvements would certainly be worth it for a NAS system, but then you don't get any sata ports.
Gpio wise you've got a non-standard 2mm pitch header and 1.8V. What a pain.
For me, the lack audio output and WiFi is a bit annoying. A media centre with a only hdmi1.4 would be a problem for some (you'd also maybe have to go for the slower one without a fan).
Also remembering we are comparing a £42 device (I've included the official pi PSU) with a £70 device (+ if we want wifi). So maybe it's better compared against an atom board for those who want to spend a bit more. But an atom gives you sata so if that price comparison is fair (edit: had a quick look, it's not fair), the xu4 isn't that great.
Maybe it is the use as a desktop system where the xu4 shines.
I'm not convinced it's an obvious choice.
https://forum.odroid.com/viewtopic.php?t=30888
And this you can find with a 30 seconds search online.
> https://www.odroid.co.uk/ is the first result from duckduckgo.
Why would you want to go to a Distributor website to find software/hardware information? It's like looking for a manual on amazon, it's just the wrong place.
But I'm going to focus on the actual issue, even their official site gets this wrong and you have to look in the forums. This is a great example of one of problems you get with these other boards.
Cheapness? Most ARM boards are in the range 50 to 60 USD and I don't know in what world that is not "cheap". Plus, at such prices you can get stuff you just can't buy with a Raspberry Pi anyway (specs wise), so it's not like they are a little more expensive for no reason.
Community support, Odroid is good enough there, while I would not recommend things like the BananaPi.
Trying to follow tutorials for the Raspberry Pi on a different platform will more often than not be a nightmare and demotivate anyone first approaching the device. There's a network effect at play, making the most popular platform also the most desirable for diving in.
As for price, 60USD is almost double the price than a Raspberry Pi 3 (and 10 times a Pi Zero), so it would be double the effort for someone with limited economical resources in those countries.
arduino is certainly a popular open source platform that uses a microcontroller, but it is increasingly distant from the practice of actual embedded work.
in the unlikely event anyone is interested, i see embedded projects developed every day. STM32 parts with STM32CubeMX-generated projects using the HAL is quick, largely painless, and ships real projects on a regular basis. get a nucleo board. they're subsidized by ST so they're both more powerful than any arduino, and also cheaper.
They've got a record for delivering as they've also made the Netduino a .Net version of the Arduino - https://www.wildernesslabs.co/netduino