RPi4: Now Overclocked, Net-Booted, And Power-Sipping

It has now been a few months since the launch of the Raspberry Pi 4, and it would only be fair to describe the launch as “rocky”. While significantly faster than the Pi 3 on paper, its propensity for overheating would end up throttling down the CPU clock even with the plethora of aftermarket heatsinks and fans. The Raspberry Pi folks have been working on solutions to these teething troubles, and they have now released a bunch of updates in the form of a new bootloader, that lets the Pi 4 live up to its promise. (UPDATE: Here’s the download page and release notes)

The real meat of the update comes in an implementation of a low power mode for the USB hub. It turns out that the main source of heat on the SoC wasn’t the CPU, but the USB. Fixing the USB power consumption means that you can run the processor cool at stock speeds, and it can even be overclocked now.

There is also a new tool for updating the Pi bootloader, rpi-eeprom, that allows automatic updates for Pi 4 owners. The big change is that booting the Pi 4 over the network or an attached USB device is now a possibility, which is a must if you’re installing the Pi permanently. There are some fixes that caused problems with certain HATs, in which the Pi 4’s 3.3 V line was cycled during a reboot.

With a device as complex as a Raspberry Pi it comes as no surprise that it might ship with a few teething troubles. We’ve already covered some surrounding the USB-C power, for example. And the overheating. Where the Pi people consistently deliver though is in terms of support, both official and from the community, and we’re very pleased to see them come through in this case too.

55 thoughts on “RPi4: Now Overclocked, Net-Booted, And Power-Sipping

  1. anyone got further info on the usb boot? I currently use the /boot on an SD card trick but would be nice to ditch the card altogether. Cannot find any documentation on this, my google-foo fails me.

    1. The developers in the raspberry pi forums have been pretty hostile to any questions about this, pretty much going so far as to say they don’t give much of a damn about booting from USB since booting from the SD card is “good enough” for most users.

      You could try contacting the developers, but they’d probably just call you whiny and entitled.

      1. Keep in mind that the Raspberry Pi wasn’t made for us. It’s stated goal was always “to give underpriviledged Brittish kids who can’t afford a computer* a chance to learn to program”. That it’s usefulness to and popularity in the hacker/maker crowd was unintended and a surprise to the Pi team.

        If the devs are giving this kind of feedback then maybe it’s a sign that it is time for someone to design, manufacture and market a board with this community actually in mind. Perhaps this is a great opportunity for somebody here reading this today.

        * – Why is this even a thing today when it seems like every closet has an old but usable computer, probably Core2 or better sitting and doing nothing?

        1. Where did you get that “stated goal” from? Did you make it up or what? Here is what the web site says:

          “Our mission is to put the power of computing and digital making into the hands of people all over the world.”

          If you accept this as the actual stated goal (and you realize the presence and function of the compute module) then it is obvious that hackers, makers etc are full-on marketing targets. Please tell me what underprivileged British kids are going to do with the compute module?

        2. I would venture a guess that if you want to give underpriviliged British kids access to low cost computers via a foundation, having that low cost computer become one of the staples of the maker community would be an incredible, if unexpected, boon when it comes to feedback, funding, and marketing.

          I am in no way suggesting that the developers and designers in the Raspberry Pi Foundation should satisfy every whim of the maker community, but I’m having a real hard time seeing how this could be considered a “one way street”, so to say; Both parties benefit from the Foundation listening to the maker community.

        3. “Keep in mind that the Raspberry Pi wasn’t made for us. It’s stated goal was always “to give underpriviledged Brittish kids who can’t afford a computer* a chance to learn to program”. That it’s usefulness to and popularity in the hacker/maker crowd was unintended and a surprise to the Pi team.”

          And that is bullshit.

          The truth is, that probably less than 1% of all sold Pi’s are used for the poor kids – the remaining part is used by hackers, and for professional purposes.

          But Broadcom have found at smart way to discover their ugly face, using open source software and voluntary work, to sell their product: we are doing it for the kids.

          Bahhh, if not the 99+% non school users were buying the Pi’s (as there is a huge community making the required software), there would not be any computers for the poor kids.

          1. Is that really a problem?

            It is true that the original mission statement had more of a focus on students specifically; but the Pi is arguably a fairly poor fit for low-cost CS education purposes; but has done wonders in blowing open the market for actually-cheap single board computers; where previously it was mostly painfully expensive dev kits intended to be expensed by engineers using them to develop products and a selection of consumer products that turned out to be amenable to repurposing(WRT-54g, the good old NSLU2/’slug’, etc.)

            If you want to program on one, an rPi gets more expensive(and frankly kind of clunky) fast: need to tack on a monitor and some peripherals and you still get a rather pokey computer with not much RAM and slow storage. Compared to either just installing your choice of programming tools on computers you/schools quite possibly already own; or even low end junk PCs(something like the HP Stream 11, purely by way of example, gets you 4GB of RAM, 32GB eMMC, some trash Celeron, MicroSD and USB expansion, HDMI out; plus a monitor, keyboard, pointing device; and battery because it’s a laptop. Sticker price $200, often found for less. Not good for close-to-the-metal; but as a financially accessible dev box?)

            On the SBC side, though, the Pi gave the market’s sense of what a sensible price was a massive shove in the right direction; and, while the Videocore blob continues to be of concern, overall continues to enjoy excellent software support(if for no other reason than the fact that it would be eaten alive by the cheaper and/or faster; but atrociously supported, Allwinner-and-pals versions if its BSP situation wasn’t better).

            If kids are using them to learn CS by building robots and stuff in school, great, glad to hear it; but the fact that most rPi sales are to hobbyists seems like less of a betrayal and more of a device finding the niche it actually fits well.

    1. It is a boot loader not a full OS. It is meant to be doing *bare minimal* mount of set up before a proper OS is loaded. The OS drivers should be initializing all the peripherals. There is only so much the bootloader could and should do.

      1. The VideoCore VPU runs the ThreadX RTOS. It is responsible for initialising the memory controller and a whole load of other things. It isn’t just a basic bootloader that is only used at startup.

      2. Could say the same about a init system, but then SystemD happened…

        So the perceived paranoia and fearmongering probably is a result of people with influence and power in the software world who’s taking bad practices and uses them like they’re actually good practices.

    1. Regardless what was said, what this bootloader gives is network booting, not usb booting.
      Only one specific chip may run cooler, depending how you use it. The USB controller will get hot based on its usage now, instead of get hot always. If you use it to its fullest it will get just as hot, but if you don’t use it much or at all, it will be cooler.

      1. See my more detailed comment elsewhere on this article, but the bootloader (and associated firmware) actually reduce the power consumption of both the USB controller and core SoC, with the USB controller accounting for about half the power saving.

        Even the most USB-heavy use cases see some benefit from ASPM.

      1. No. You’re confusing two different issues.

        The PMIC dying from shorting the 5V rail to 3.3V rail was a problem with the 3B+ which is fixed now on the Pi 4 according to RPi engineers.

        The 3.3V cycling issue that Jenny mentions is a different issue where the Pi 4 used to default to turning off the PMIC entirely if you shutdown. The PMIC is setup so that it won’t power up unless it can guarantee proper power supply sequencing which means it checks each rail to ensure it starts off at 0V. Some HATs were feeding 3.3V back into Pi via the GPIO header which caused the Pi 4 not to boot. They’ve changed the default now so it acts like previous Pi boards where it doesn’t fully shutdown the SoC and leaves the PMIC running. It is an option you can adjust yourself if you prefer the other way.

        1. When you short the 3.3V to 5V, the PMIC feedback loop will cut out the chip and float the output. Now if the PMIC cannot handle more than 3.3V on the output, the chip will blow. However, in power electronics it is odd to use a process that can only handle 3.3V and not say 5.5V. On the other hand, a complex chip like that might have “processing” that runs off 3.3V…

          Anyway… once you short the 5V to the 3.3V, the 3.3V line can’t do much but to go to 5V. There are a bunch of things on there that have a 3.6V max, and those are likely to blow up.

          1. Not exactly sure what people think is supposed to happen if you short 3.3v to 5. Most devices aren’t going to like that…

            It would be nice if it was standard practice for regulators to act like shunts when you get above 110% of the target, but it seems that isn’t at all popular.

  2. The low power mode firmware works by enabling PCIe ASPM power management on the USB controller. The original firmware didn’t have any power management features turned on so the PCIe controller in the SoC was always running even if the link was idle. It does affect maximum throughput somewhat though due to the additional latency of using ASPM.

    1. PCIe ASPM savings actually account for about half of the idle power savings realised so far. Throughput loss to mass storage due to ASPM appears to be in the ~2% range.

      The rest is made up of SDRAM PHY optimisation, clocking improvements, changes to the load-step response of the PMIC (allowing us to reduce load-step margin on the core voltage). We also have a DVFS scheme which makes the first (1GHz) frequency back-off much more energy efficient than it was at launch.

      More to come, but a good start, and a nice return on four months of engineering.

      1. I just performed the recommended steps to add the new bootloader (apt update && apt install rpi-eeprom), power cycled my RPi 4 4GB, and the system is still running as hot as it did before the update. The system is in a Flirc case. Idle temperature is 46C and it will move up to between 50C and 55C if it’s tasked (such as a compile of gcc 9.2.0 using all four cores).

        If it means anything I very early on (June time frame) installed the VL805 firmware, and it’s still at 0137a8.

          1. Also, it now appears that one other annoying behavior is gone, and that’s how the mouse arrow will stop moving across the desktop, or move in a stuttering stop-then-go manner when moved across the desktop. I use a wireless trackball mouse (Logi MX Ergo) and it would begin to randomly stutter-move across the desktop until I turned the mouse off, then back on again. That cleared the problem for a while. Now, the problem appears to be gone.

            Also, using the following extremely simple USB 3 data throughput test:

            sudo dd if=/dev/zero of=/ssd/pi/test1.img bs=1G count=1 oflag=dsync

            I’m getting around 140 MB/s write on average. This is to a Crucial MX500 500GB SSD. Before the latest firmware update, it was averaging around 148 MB/s write on average. All of this across USB 3.

            It would appear there is a slight slowdown in write throughput, but nothing to loose any sleep over.

    1. There’s isn’t one, the article is wrong (not the only place in the article that is incorrect). USB boot is still in development (and yes, we DO give a damn , contrary to some posts above)

      1. Thanks, James. And – Thanks Jenny for writing the article. Errors aside, I wouldn’t have been aware of these developments without it, and it’s lead to some further useful information being shared in the comments.

        Though, how long before people start badgering you guys over NVMe boot support? ;)

  3. Can someone measure how much current it draws in the lowest power state? CPU idle, lowest freq, any peripherals that can be disabled are disabled. I assume there is still no low power sleep mode?

    1. What glaring error? The USB-C really minor, hardly ever seen by anyone at all, one? Seriously, that should not be putting you off. Just get the really cheap official PS, forget about using massively expensive laptop PS’s that are complete overkill.

      1. When you wanna mess around but have to buy a extra thing because of standard breaking is quite a buzzkill.
        Even some modern tablet chargers would’ve been suitable.
        USB-C is a bit of a mess though, but those resistor screwups are still a colossal embarrassment to put it mildly

  4. Call me old school, but breathing down the necks of developers is counterproductive. Give the gang time to cross the T’s and dot the I’s. You’ll get better results.

  5. I just performed the recommended steps to add the new bootloader (apt update && apt install rpi-eeprom), power cycled my RPi 4 4GB, and the system is still running hot as it did before the update. The system is in a Flirc case. Idle temperature is 46C and it will move up to between 50C and 55C if its tasked (such as a compile of gcc using all four cores).

    If it means anything I very early on (June time frame) installed the VL805 firmware, and it’s still at 0137a8.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.