Raspberry PI 5 Power over GPIO?
Introduction (with update 24-07-2024)
I am in the process of building my own DDDAC1794MK3 “Signature” with an external, separate I2S streamer based on Gentooplayer and a Raspberry PI 5. I quickly found out (The WEB is full of it), that the RPI 5 is intended to be powered over USB-C with PD protocol. Powering over GPIO (for example a nice audiophile linear PSU) seems not possible or at least difficult with possible hick-ups. So, work to do!!
The “Red LED-Problem” with the RPI5
The RPI 5 has a two-color LED at the side of the board, next to the power button. The button is a new feature, only found on the RPI 5. The older boards did not have this. A green light for “activity” and a red light for a halt (stand by) status. This halt status will occur, when there is a problem which makes the RPI stop. Among these possible problems is that the RPI somehow sees not enough power, current, under or over voltage. After pushing the power button for > 5 seconds the RPI 5 goes into “power down”.
UPDATE: 24-07-2024
Mario (@zabloc) did a nice write up how to edit the EEPROM of the RPI5 and add the line
PSU_MAX_CURRENT=5000â
As someone who never did this before, I was the Guinee Pig and added extra steps and screenshots where things went too fast for me. At the end all worked fine and the tutorial was finally edited by Mario. Please find it attached below
Experimenting with power over GPIO
Of course, you can power the RPI 5 with the official Raspberry PI USB-C power supply. Easy and always works. But in the audio DIY world, we are different and like to use linear power supplies where we can, right? Regardless of the possible sonic impact, I am pretty sure this is the actual case. So, what now? It is kind of awkward to mount a USB-C wal-socket-PSU inside your chassis I suppose. Well, as I was planning anyway a nice 5 Volt supply in my external streamer for the dirty side of the FiFoPi, I thought it would be good idea to power the RPI 5 as well from this source…
At first, I tried with my linear LAB power supply. Did not work… after a few second green, the RED light goes on and the PI halts. Same with another 5V PSU. Coincidently, later on, I tried with my really industrial heavy weight LAB supply and hey, it worked, and the PI booted every time. OK, next try. I tried my LM317 supply with an UC-Conditioner from Ian Canada which was intended for the FiFoPi dirty side power. Almost…. it booted 9 out of 10 times. It seems this is border line and hence not acceptable for a closed chassis. Switching it on and after a minute realizing it did not boot; power off/on again and hope it will work this time is NOT an option nor a decent solution…
On the RPI 5 there is a small power button at the side of the board. If the RED LIGHT condition is present, just push it shortly and from that point the PI will (continue to) boot normally. Good to know, but not practical in a closed chassis. Unless the power button could be external?
The external power button on the RPI5
Yes, there is an option for an external “power button”. In the image at the left I soldered two wires at the bottom side. You can also solder a connector at the top side. Still, it is kind of cumbersome solution, to wait and see if the PI actually starts and if needed give a hand by pushing an external button…
Idea with continuous “power button pushing”
My idea was, “what if this button is pushed repeatedly”, every red LED status will be solved latest after the time needed to have the next “push”. I tried, and funny enough, pushing the power button has no effect at all at the running process. Only when you hold it > 5 seconds, the Pi will shut down (halt) and the red light comes up. Next push and it boots again. Light turns green again. So how does this button function and can it be automated? The latter makes sense of course…
I checked the power button connections, and I measured the following:
- One connection is GND (in the image the right)
- The other one is connected to an Input somewhere (GPIO?) with a pull up of 6k5 to the 3.3 Volt supply (in the image the left)
- When the “button input” is seeing a digital low level below 0.7 Volt the button input is seen as “pushed” to GND.
So now I only needed a signal being “3.3 Volt high and every 10 seconds going low for say 0.5 seconds. I remembered my old days playing with the good old NE555 and bought a small experimenting board to see if this could work.
A solution with a NE555 board
I bought this litte board – no need to “design” it myself https://www.amazon.de/gp/product/B09F957VFY/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1
It is a nice little board with the option to set total time high and the time the output stays zero (= button pushed)
I set the “high time” at 7 seconds and the “low time” at 0.5 seconds. Does not seem very critical.
This board has a time setting range of roughly up to 1 second, so I soldered a 1000uF capacitor at the bottom of the board parallel to the 100uF to be able to go as far as ~10 seconds. You can see it in the picture sitting at the bottom side.
The output of the board is connected to the solder pads of the external power button on the RPI. Make sure to not mix up GND and Input. I marked GND with a brown piece of tape. Or use different color wires next time…
Some more detail…. You might wonder why there are two resistors at the output. This is a needed voltage divider (470 ohm / 1k8) at the output to go from 5 Volt (VDD…) to the required PI logic level of 3.3V. It is still unclear if the GPIO is 5 Volt tolerant and I didn’t want to be the first to find out it is not.
Listening session (?)
No Posts from me without critical listening. Even this time no exception was made. I hope this shocks nobody, but there is no sonic impact at all. Just for the record.
Conclusions
What else can I say: it just works fine. Now I can sit back and never have to be anxious if my PI will start or not.
Before comments come rolling in: I know there are posts on the Internet to change the boot section of the RPI 5 in EEPROM. Did not try this. Anyone who actually did, feel free to send a comment with exact process flow. That would result in a hardware AND alternatively a software solution…
Update 24-7-2024: Thanks to Mario (Zabloc on DIY Audio Forum) there is tutorial write up for those who want to do it the software way. This could be a good first start and see if the problems disappear. If issues with the RED LED still occur, the NE555 hardware solution might be the final choice. It just breaks the arm of the resisting RPI5 đ
3 thoughts on “Raspberry PI 5 Power over GPIO?”
Some good old fashioned “outsideofthebox” thinking my friend, chapeau.
Hallo Doede
I also have the RPI 5 with Gentooplayer. But on the Dddac mk2 I only hear noise via the i2s connection. Any idea how that’s possible?
Hi Albert, may be I can help, but send me an e-mail, this might get longer and is not directly related to the post.