What’s wrong with the Raspberry Pi

The Raspberry Pi is an incredibly popular device that has a well deserved fame for its affordability, versatility, possibilities and vibrant community. It is easy to find fan projects and publications praising it, but most people are not aware of its weak points until they suffer them and come across the information on the forums.

I will try to explain some of the personal problems that I have with the Pi, as well as some of the issues people have all the time, most often without realizing it, and finally why I do not recommend it for some applications, specifically NAS kind of services such as NextCloudPi and Open Media Vault. Hopefully this will save me time in order to avoid repeating myself all over the forums.

I have had many Raspberry Pis and I have been using them for many years. When the first model came up in 2012, it was a huge milestone for the hobbyist SBC market. Even though there were already some nice boards around, such as the Beagleboard and the Odroid, these were quite pricey and only hardcore hobbyists could understand what they could offer and justify the investment.

The Pi though, came with a very affordable price tag. It was not that powerful compared to what we already had, but it was so cheap that it exploded in popularity. Blogs, shields and extensions, people sharing their projects, tons of libraries… the Raspberry Pi was the first one to achieve all that and to this day a thriving community is the biggest reason why I would understand people getting a Pi over other boards.

But this is 2019 now, so we can have another look around. In my opinion there is better quality and more open alternatives for the same price. I will try to explain.


The Raspberry managed to be that affordable by cutting some corners. The result is a board that is underpowered for some tasks compared to its competition. In particular, it performs poorly in terms of both network and USB functionality.

The device uses a SMSC LAN9514 chip that connects to the SoC via a single USB channel, acting as a USB-to-Ethernet adaptor and USB hub at the same time. This implies that Ethernet and USB are shared and are competing with each other, which ruins the typical NAS use case of uploading something over the network and storing it to a USB drive, let alone adding RAID to the mix.

For this same reason, even when last year they finally provided a model with Gigabit Ethernet, the real network performance of the device is nowhere close to real Gigabit performance, but around 40MB/s maximum in sheer networking speed, 20MB/s maximum if we are transfering to a USB device. There have been affordable boards with real Gigabit Ethernet and USB3 for a while.

Actually Wi-Fi doesn’t go through the SMSC, but is connected to the BCM4343 chip through SDIO instead, so this bottleneck could somehow be avoided by using Wi-Fi. In any the wireless chip is not great either and would have to compete with other interfering devices in the surroundings for airtime anyway so it’s not a great alternative.

For the reasons stated above I would not recommend the pi to be used in a NAS kind of scenario, be it Open Media Vault or Nextcloud.

The real brain of the Pi is not open source

If you have been around software freedom discussions, the number one concern in our Linux systems is the presence of closed source binary blobs. I won’t go into details here but the concern is that those parts of your system can’t be audited and have access to everything that is going on in our devices. This has led to great efforts by the community, such as the Android Replicant to free our systems from any binary blobs, which is a painful, tedious and slow process.

We are in a similar situation with the Raspberry Pi. The CPU and the GPU are embedded in the same BCM2837B0 chip. The CPU is a 1400 MHz 64-bit quad core ARM A53 (in the Pi3B), and the GPU is a dual core 32-bit VideoCore IV running at 400MHz. This is common in the mobile device SoC world as saves cost and power and everything is embedded in the same chip. NXP iMX and Allwinner are competitors using a similar approach.

So we have six cores in the latest Pi, but only four of them are ARM. Linux runs on that ARM CPU, we know that, but we might be surprised to learn that Linux on this device is only a second class citizen. The GPU cores run a real time operating system called ThreadX. This operating system is closed source and rules the system without the open source Linux Kernel being aware of it.

When the Raspberry Pi starts booting the CPU is completely disconnected (technically in reset state) and the GPU is the one that starts the system. You can have a look at the /boot folder and you will see some of the binary blobs used by the GPU to both start the CPU and run its own ThreadX OS (bootcode.bin and start.elf). You can learn more details about the boot process here.

It is the GPU who mounts the SDcard, gets those blobs and reads the configuration from that config.txt text file that we have to edit to configure video settings or overclocking the GPU. Linux is not involved in any of that.

After the GPU has the CPU load the Linux Kernel, it doesn’t just stay there waiting to act as a graphics-processing-unit. The GPU is still in charge. Have you ever thought about who is printing those logos when the Pi boots connected to HDMI? or those lightning or temperature symbols when there is throttling going on? Exactly, it is ThreadX on the GPU doing that. Linux is just not aware of this.

We cannot know everything the GPU is doing, but we do know some things that it is in charge of. The most relevant one for this discussion is that ThreadX monitors for undervoltage, which is a widespread issue as we will see next, and will underclock the CPU to prevent instructions failing and the CPU to hang, which results in people’s devices running at 600MHz instead of 1400MHz in the best case. This throttling starts happening at 4.65V and can also be triggered by temperature. Linux and its frequency governor still thinks that is happily running at full speed.

This is only what we can see. Because the main OS is closed source we have not way of knowing what else it is doing or is capable of doing which will always be a concern for privacy aware individuals.

There is at least one patent included in the closed source blob that will prevent it from being released until at least 2025, but we don’t know if there is any intention of doing so even then. There have been attempts at reverse engineering the VideoCore IV and generating open source firmware for the VideoCore IV, but unfortunately the project died before getting to produce anything useful. Just like with Android blobs, this is incredibly hard work.

Powering issues

This is not a technical fault of the Raspberry Pi, but more of a very typical user mistake.

The first model barely used 80 mA, but each new generation is more powerful than the previous one, and for that reason also more power hungry. On top of that, many users connect USB devices that also draw power, unless they come with their own power supply.

The microUSB connector was only originally designed to provide 1.8A, and even though that is an old standard and you can find chargers that perform just fine at more than that, so many people try to reuse old phone 1A chargers or buy cheap adaptors online to power their Raspberry Pis. The Pi is a computer, it requires a good quality, stable power supply that provides a stable 5V at the input and is capable of providing 2.5A. Not only the transformer needs to be decent, but also the connection needs to be good (or there will be a voltage drop) but more importantly, the cable needs to be good, or there will be a big drop along it. Bad cables are even more typical to find than unstable voltage supplies, so please, use a good cable, maybe a 20AWG or similar, or just get the official power supply. The take away is that not any USB charger is going to work properly, even if it is 2.5A 5V.

Add this to was we saw in the last section and we can begin to see the big picture. Most users are running their devices undervolted, and the GPU is hiding this from them, so they are actually running underclocked at 600MHz, almost as bad as the original ARMv6 pi.

In many cases not even the GPU efforts are enough and the system randomly fails or just hangs, possibly corrupting data or damaging the SD card. This mostly happens under load which is when the transistors require the most power. Then, the user goes to the forums and complaints: my power supply is just fine, I just ran this and that and it didn’t fail. Of course this is not true, but often they won’t believe it.

In my opinion this is what the Japanese would call Poka Yoke, in other words, we should design our systems in order to prevent the user to shoot itself in the foot, by design. Again, the official power supply is very good quality for the price and I highly recommend it.

I don’t like that they throttle the board silently outside of my control. I would rather have the system hang so I can realize what is going on and replace the PSU than to fool users and have them complaint in frustration all over the internet. It is hard to imagine a reason why the developers of the Pi would do this if it is not to hide the Poka Yoke issue.

Checking for power issues

It took too long, but we finally have this logged in the Linux Kernel. If you see in your system logs

, then you are suffering from undervoltage. It is nice that at least Linux logs this information now, but if we want to get more information, we have to access the GPU directly.

The vcgencmd command is able to communicate with the ThreadX firmware to get information about the system, or to change settings.

We can use the vcgencmd measure_clock arm and vcgencmd measure_volts commands to read the real frequency and voltage. This is an example output from a moritoring script by tkaiser.


I really think that the Raspberry Pi has been a very important event in the history of SBCs but today it falls behind in terms quality, performance and transparency. There are other affordable alternatives out there where developers have given more consideration to those issues.

Despite all this, I am using the Raspberry Pi as a means to reach my goal of helping people self host their personal cloud services, and given how popular this board is, it still makes sense for me to support it as long as it is useful towards that purpose.

Author: nachoparker

Humbly sharing things that I find useful [ github dockerhub ]

60 Comments on “What’s wrong with the Raspberry Pi

  1. One thing I was waiting to come out in this blog was a short part about what other options there are and what are your preferences

    1. So in my experience you can avoid these pitfalls via a few different approaches. You can modify the script in /boot/config.txt to manually overclock the cpu, the GPU, sdram, core freq, even the SD reader. Be careful as every board is unique and no two boards respond the same exact way. It may take trial, error, testing, and monitoring to achieve peak performance.

      You can also circumvent traditional booting protocol by performing a network driven PXE (pronounced ‘pixie’) boot or boot via USB channel and remove the SD card from the equation that way.

      Then theres the “buy a better board” option. I’ve been toying with Pis since its genesis years ago. I have at least one of every model ever made. I’ve also explored outside the fold for better options. First off no SBC has the support, community, or options that the Pi has. You may get better hardware but firmware, software, peripherals, support, forums/community will be lacking in comparrison. But if you want to get your hands on something different I have a few reccomendations. The Odroid XU4, HC1, and HC2 outperform the Pi across the board for NAS/personal cloud purposes.

  2. Please publish a review on alternatives and what hard and soft and IPR compromises they bring. I solve to make informed choices.

  3. Agree with Akseli. Otherwise an excellent and informative article. The section about a closed source OS in the GPU is scary. Is this an issue with the other boards?

  4. Very nice article, I have exactly same options after using RasPi since the beginning. Moreover I will add that you can’t safely use any Raspberry PI for product or industrial environnement because the design and the board are very ‘amateur’.
    I am still happy to use raspberry pi for for testing and developing and also for educational but for a real product to be sold I use since 2-3 years a much better solutions.

    1. Hi, i agree. We are in final evaluation stage based on pi0 & pi3. We are now looking for an industrial sbc to use in our final product, any recommendations from your experience? Id be very happy with an onboard flash memory (rather then SD card). Thanks!

  5. You left out the most important information!! — What’re the alternative boards available that are as cheap and versatile as the PI?

  6. the other thing would be: not only naming other options that would do a better job than the rpi AAAAAnnd: would ncp run on them as well?

    but thanks anyway for your critical remarks on the rpi. i really appreciate it

    1. Hi Jimmy, good to find you here

      I tried not to make this a publicity post, but to explain once and for all things that I find repeating myself over and over on the forums.

      It’s easy to go to nextcloudpi.com and find some supported alternatives πŸ˜‰

  7. Excellent article, thank you for your time on this.

    This explains some of my frustrations, and now I have answers.

    Do you think some of the above is to keeping costs down?

    1. I am glad the article helped you.

      No doubt this was to keep costs down, and then also to keep backwards compatibility. To be fair the hardware engineering into the Pi is hard work, not trying to talk badly about it but to make people aware of the limitations.


  8. I think its mostly fun for students, programming schools often demands students buy one.
    In reality though in IOT things have to be done on PLC (if there are strong regulations), if not then its Arduino.
    And if it hast to be a computer, then in commercial IOT one buys a bit more decent industrial PC.
    The Rasberi Pi doesnt get out of hobby culture, where Arduino did got out, you’ll find arduino’s in printers, faxes 3d printers etc. The nice thing about Arduino i think once you upload the code into it, its relative save there, sinec it has no disc there is no easy ways to copy your code, that allows it for cheap semi industrial applications. with a Pi your at risk of reverse engineering.

  9. What are people exspecing for $35?

    Other boards are double the performance for three times the price and lack community support.

    1.4ghz, 1gb of RAM and 300Mbit eathernet it’s fine for almost any hobbyist job. It’s better than the first few PCs I owned in the 90s.

    If you want to emulate Dreamcast games, Host a website or mine bitcoin better off with a PC.

    1. That is not true. There are better boards for the same price. I tried hard not to mention any alternative, but if you do a little research you will see for yourself πŸ˜‰

      1. It’s very expensive to buy board that are buggy and has no support.

        Pi is not perfect and there isn’t one that you could even recommend without reservation.

        While you points is valid pi is still the recommended SBC for everything that the others SBC are not.

        1. I have many blog posts and forum posts and if you investigate you will see what my preferences are. I just didn’t want to make this a publicity post, but just focus on things people should know about the pi, basically because I spend a lot of time repeating this when I am helping people online.

          Just do a little research, there are cheap boards that are good and have good support πŸ˜‰


    2. The AtomicPi is the same price and seems to be much better. It is a Kickstarter, yes. But they committed to ship via 1/31/19 and they sent me the shipping confirmation number the same day. Arrival estimate is 2/4/19.

    3. Most of the alternatives, either have poor os support, or run old kernels (2.6), the pi I belive has the widest range of modern os support.

  10. I was waiting for you to talk about the possible SD card corruption if power is removed before shutting down. To me this is one of the biggest issues and certainly goes against the Poka Yoke principal.

    1. Thank you for the suggestion,

      I thought about that, but that is really solely the user’s fault. In this case, the RPi devs are not trying to hide this fact from the user. This is cheap hardware after all. I don’t think that this will be different with any other board.


  11. This is exactly why I have tried so many boards for making a NAS and finally, have found the Rock64.
    Rock64 in terms of performances (Real Ethernet, USB 3.0, eMMC, RAM, etc.), compatibility with NextcloudPi, and above all, Meltdown/Spectre resistant, is why I have choosen it. The only cons I have found so far :

    1- no possibility to use real-time document editing (Collabora Online) because of arm architecture
    2- I think its Rockchip RK3328 contains blob too (not sure), I don’t think such true open-source CPU exists today, which is too bad.

    Otherwise, this Rock64 is the best compromise, and I am really happy with it.

    1. Watch the space for completely open cource RISC-V architecture!
      SiFive is a company with some of the cores already available.

    2. Hi.

      Some questions about the Rock64 : how does it handle pictures thumbnail creation in NextcloudPi web page ?
      On my RasperyPi 3, with htop command, all 4 cores are at 100% when generating thumbnails. (Aren’t they generated once and stored on the server ?? if not so, this is dumb…)

      And what about slideshow ? I find going from one picture to another (manually) very slow to display the next one (shouldn’t be so CPU consuming to display picture at screen size…)

      One last question : did you migrate your setup (prefs files, database…) from the Pi to the Rock64 or did you start from scratch ?

      Thanks for your answers, I’m about to jump to the Rock64.

  12. Raspberrypi is not good for machine learning as well as deep learning projects………
    It will stuck or take longer time for processing ( you can’t imagine)

  13. Hi! Very good article! I have been playing with RPis since the model one and never gave a thought about the power problems, taking aside how frequently the board hang and the SD card became corrupt. I bought the last two boards with 2.5A power supply and that really helped. About this, very insightful the comment about bypassing the connector; I will give it a try some day.
    Thank you!

  14. We actually use hundreds of pis in a production environment, as a replacement for thin clients in order to free up resources on the terminal servers. The software installed is bare bones, just raspbian lite, xorg, openbox, fbpanel, and chromium. Overall it works but even on the latest pis there is still too much lag. Sometimes you click a button on a website and the pi just sits and thinks for a couple minutes.

    Personally I think the ARM processor is complete garbage, but I was told “this is the amount of money we are willing to spend, make it work…”

    However, come this Monday, I will be testing a Zotac box. I think the difference will be night and day.

    1. Are you using a smart phone? πŸ˜‰ They all use ARM..

      Did you trace where the wait was coming from? Wireshark is a good tool to start with, as it made it easy to find the timeline of exchanges with the web server. You don’t really know how much improvement you will get if you don’t know what the issue is.

      Which Zotac box? An Intel N3* CPU is not very fast either, other Zotac machines at 10 & plus times expensive.

      Overall I find the raspberry pi a nice board for it’s price: versatile and a rich ecosystem. It is very good at doing many satellite projects: I use it as Kodi box, water sprinkler controller, garage WiFi extender. I do not use it as a file server. For NAS, I would use the HC2 (the HC1 is reported to have power issues as well).

      I do have an old refurbished Zotac as file server: it has an esata interface. It is a low end AMD E1800 CPU, but is good enough. I found it for cheap an I had leftover RAM and 2.5 HDD from upgrades..

  15. A barrel connector like some chinese boards use and a updated SoC (internal eth MAC and perhaps usb3) would go a long way of making rpi a very usable machine.

    1. I agree, I am running into all sorts of devices failing due to the micro USB connector (Phones, tablets, mp3 players, etc). I’m not sure if it’s due to people connecting devices to cheap cables or a durability issue. Barrel Jacks have been around much longer and other than the occasional repair from people tripping over cords or using the wrong size plug, I have not had any where near as many issues with them. The fact that devices may also be acting flakey due to under voltage is all the more reason we need to have the standard changed or improved for micro USB connectors.

  16. Another problem that many new users run into is the micro SD. Apparently, the RasPi doesn’t like some of the Kingston cards.. These are quite often provided with the starter kits. I solved a lot of weird problems after I replaced mine. The one in my kit wasn’t on the list of recommended cards.

  17. I agree with some of this article, although as an owner of some 14 Pi’s of varying models I’m a bit biased. I set them up for a variety of useful tasks, and even now, my low-traffic web sure is happily running on a Pi 3B. The main issue seems to be that people want to use them as normal, but cheap servers, and realistically it ain’t gonna work. Accept the inbuilt limitations and you can have a *lot* of fun and save a *lot* of money on power bills too.

    Corrupt SDHC cards? Don’t be cheap – seriously, buy decent ones and above all get a decent power supply. I use an Anker 6-way that allegedly puts out 5 amps continuous current and I believe this has been instrumental in running my Pi stack for over 3 years now.

    The power requirement thing is a *major* bugbear though and the alleged 3.5 amp requirement makes powering a Pi stack effectively a big problem, I also have an Odroid XU4 that apparently needs 4amps so a creative solution is required.

    1. Hi Pete, thanks for dropping by

      My point is that you don’t need to accept the limitations just because it’s cheap… because you have similarly cheap boards without those limitations.

      I agree with the SD card issue. To me it looks like it’s the user fault… and it’s also related to the powering issue. A flaky power supply will likely corrupt your SD card.

  18. High speed interfacing is, in general, not really supported. Whether its USB, ethernet, or the IO port, you hit a wall when things get serious.
    For NAS, you need at least 2 SATA ports and preferably 4 [or more]. If you need a cluster of Pi nodes, the speed they can talk to each other is critical. We’re talking multi-gigabit data rates, and a 40 pin DIP header isn’t going to cut it.
    FPGAs use FMC [FPGA Mezzanine Connector]. PCs use PCI Express. The Pi needs something similar, in order to compete.

  19. To call it garbage is to much. It costs 30$ all together. That said In my opinion it works fine. If I need performance I get somthing else.

  20. It is slow doing NAS, correct but it is cheap and thats the cause number one for home-based storages.
    20# wires dirrctly soldered to my pi pcb, then after 10 cm it turns 10# for 1.5meter. Power supply is chinese industrial 40Amperes. Excellent work.

  21. > Freescale IMX and Allwinner are competitors using a similar approach

    FYI Freescale no longer exists and term NXP iMX would be correct.

  22. My main concern about any other board is support. Somehow I think that the Raspberry is the lowest risk of running into problems with either nextcloudpi no longer supporting a SBC or the SBC’s supplier not updating their software stack, shutting down their company respectively.

Leave a Reply

Your email address will not be published. Required fields are marked *