For one of my (up to date) Raspberry Pi (SBC) installations, I have a 5v supply able to deliver sufficient power i.e. over 3 amps… I don’t need a full uninterruptible supply, but I thought it would be nice to use one of my USB battery packs in between the power supply and the Pi in case of short term glitches… the battery unit I have is able to shove out enough power also to keep the PI happy but its stabilisation is by the look of it rubbish, as such, from time to time the Pi low-power indicator comes on.
No harm done yet but I take that warning indicator as a sign I need better power supply. Even at 100% charge, I'm getting this warning on and off. Anyone aware of a battery unit (doesn’t need a lot of capacity) or even one supplied without batteries that is KNOWN to be stable, can put out 3 amps and charge at 3 amps at the same time??
This blog entry started off challenging battery solutions but now I’m doubting the validity of tests out there. Thoughts? A problem with the internet is that sometimes incorrect or out of date info persists, often for years out there. No doubt I’m guilty of some of that myself but I do my best to update old blogs.
So I just found Python scripts for testing the power on Pi, but they don’t look right to me. Using an RPI3 upgraded this week (July 2019) from Stretch to Buster, I’m getting power readings that don’t make a lot of sense to me. Comments?
In my office right now, the temperature is 30c and the Pi stated temperature is 78c when running tests, 58c otherwise (who would have thought a simple test with SSH output could cause such a rise). No heatsink or fan, clear plastic case. (an example of possibly old material out there, one fellow refers to the Pi3+ throttling to 1200Mhz from 1400Mhz at 60c, well, at 75c, mine is still running at 75c… and yes, I do plan to fit a fan when I find where I hid them.
epoll = select.epoll()
file = open("/sys/devices/platform/soc/soc:firmware/get_throttled")
epoll.register(file.fileno(), select.EPOLLPRI | select.EPOLLERR)
status = file.read()
status = file.read()
get_throttled = int(status, 16)
print("%s 0x%08x" % (datetime.datetime.now().strftime('%H:%M:%S'), get_throttled))
The above should apparently return 0x50005 when the voltage is low (whatever that is) and 0x60000 when ok. In fact, I also get 0, 0x80000 and 0x80008 out of it.
import RPi.GPIO as GPIO , time
print "POWER dipped below 4.63v"
powerlow += 1
if (powerlow > 3):
print "Low power for " + str(powerlow) + " seconds"
Looking at the second Python script, This one shows “Power dipped below 4.63v” almost constantly on my headless RPI3 (only a non-operating OLED display attached) even with a simple mains supply rated at 5v 5amps so I don’t think I trust that. I don’t have a scope handy but I do have a precision meter stating 4.735 volts almost while connected to the Pi3 edge connector, the red light on the PI is on constantly (visually) and green light flashing every second. My SSH display is showing “POWER dipped below 4.63v” what seems to be far more than once a second.
Thoughts, ideas, are these two scripts out of date for RPI3 and Buster or am I missing something? If I’d brought one of my scopes to Spain I’d do some proper monitoring but having confidence in a Python script would be useful.
The Pi3 here was upgraded from Stretch to Buster recently and generally works a treat, it is running Node-Red and Mosquito constantly but no display right now.