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.
Do they ship a version now that has a fix for the USB-C power issue? Or do current units still suffer from this problem?
Not speaking with authority but I understood it to be a design issue. The story here is a software only fix for other, non-design issues.
USB-C power a design issue. Have to wait for a new board for that fix. That said, It hasn’t been a problem for me and is a ‘non-issue’ as far as I am concerned.
Definitely a non-issue. It’s only a problem with expensive power adapters that would be overkill on the Pi
When I got a Pi4 I plugged my laptop adapter into it. Didn’t work and it took some time to figure out why not. Then used a bench supply and no problems.
its not even an issue with power supplies its mostly an issue with smart power cables
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.
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.
I know it was on the to-do list, are they still doing it at all?
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?
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?
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.
“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.
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.
Can you share a link please? USB boot is in active development, so it’s a bit odd to hear that we “don’t give much of a damn about it”.
Just some whinny trolls it’s best to ignore them. USB boot would be neat but we already have the SD boot so it’s not important.
We probably dont rate as high as the ‘poor’ south African schools that these were supposedly made for… nevermind that the rest of the world primarily uses it for octoprint (who are so proud to let us know that they support ukraine).
Politics and creativity have always been at odds. Somehow, they hooked up. Now, everything is going to crap and we will be throwing rocks at each other again.
They’re still working on network boot and won’t start on USB boot until that is complete. Best estimate was several months away at least but no firm dates given.
I was under this impression but the article implied different. cheers.
This is not news. This bootloader release is from July of this year, and was released quickly after the pi itself. Go home hackaday, you’re drunk.
I can see how it looks that way on the surface. The real news is that the bootloader work that was being tested starting back in July is now the stable bootloader they use by default. Check the release notes and you’ll see the most recent is October 17th… the files in the official bootloader zip are dated 21 October 2019.
https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md
Seems like news to me.
it was news to me, so thanks to hackaday and Jenny!
This bootloader runs ThreadX binary blob, now owned by Microsoft.
Blame binary proprietary software from Redmond and Irvine for your overheating issues!
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.
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.
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.
Oh no.
What people think is the OS on the Pi is actually only a second class passenger:
https://ownyourbits.com/2019/02/02/whats-wrong-with-the-raspberry-pi/
Are you saying the the new bootloader gives network/usb booting and lower temps?
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.
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.
Can someone elaborate on the 3.3 volt rail issue? I am having trouble with this as we speak.
Yes, it’s possible to accidentally short two pins and kill the 3.3 v rail on Raspberry Pi 4. It was covered in depth here:
https://hackaday.com/2019/06/12/shorting-pins-on-a-raspberry-pi-is-a-bad-idea-pmic-failures-under-investigation/
You should be able to get a replacement by contacting the distributor who sold it to you. Of course YMMV
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.
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.
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.
this is exactly what I meant, thanks. To mititgate i just disconnected 3.3V from the hat and regulate my own 3.3 on that hat. now the pi boots and everything is fine.
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.
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.
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.
I think something’s gone a bit wrong if you’re still on 0137a8: you should be on 0137ab after the upgrade. No extra power savings between the two, just device compatibility fixes.
You’re right, I checked, and it is ab, not a8. Sorry for the misunderstanding.
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.
Is there anything we should do beyond just apt-get update/upgrade to get the new hotness?
From the link in the article:
The recommended method for updating the bootloader is now the rpi-eeprom update package https://github.com/raspberrypi/rpi-eeprom
sudo apt update; sudo apt install rpi-eeprom
rpi-eeprom was already installed in my fresh install of raspbian this week. Still runs quite hot when idle, I may have to drill some extra holes in the plastic case.
> The big change is that booting the Pi 4 over … an attached USB device is now a possibility
[Citation Needed]
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)
Please keep up the good work and don’t mind the Internet Experts.
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? ;)
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?
I love the raspi 3b+ but I’m not going to buy something with such a glaring error.
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.
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
“Bootloader guy is now working fully on USB boot. No timescales as yet.”
https://www.raspberrypi.org/forums/viewtopic.php?p=1559601#p1559601
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.
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.
When will a new version (Pi4B+?) with all the bugs fixed be availible?
I need to replace a bunch of 3B+, but I will not buy the buggy Beta version of 4 at full retail and have to install fans to keep them from throtteling down
Can someone give an overview what the boot-loader does? Could it be disassembled and changed? Couldn’t find any reasonable information in google on this topic but would like to understand more about it.