FlightAware Discussions

Pi3 throttling?

In the last month or more, I noticed that my Pi3 with airspy is not producing anymore the same level of data like it used before. I have an Flight Feeder on the same antenna as a reference.
Note that the Airspy is fed from the Pi3 USB port.

The distance shown on map is still greater on the airspy, but the sample number is lower.
When investigating this, I noticed that vcgencmd measure_clock arm result is frequency(45)=600064000
So CPU it is throttling to 600MHz.
If I try to force a different governor with #performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor on all cores… the Pi3 either crashes or… it stops displaying planes (like the airspy is disconnected).
The temperature in the location of Pi3 is higher now in the summer… but the CPU temperature with vcgencmd measure_temp is 58-61C.

Question: can this throttling be because of the power supply? I only have one 3A capable PS, ordered another one yesterday…
Any other ideas?

Is that with or without throttling? My 3A+ runs at 70% and reaches 40 C during the day when it is not hot, with a 80x80mm fan, without a case. On hotter days that jumps to 55-60C, so I guess it would be throttled…

Did you check for lost samples?

Most likely, you can check this:

sudo dmesg --ctime | grep voltage

Hopefully one of the Official Rpi ones, their voltage is more stable across the full power range.
(Also helps that they supply 5.1 V)

1 Like

Try this script:

#!/bin/bash

#Flag Bits
UNDERVOLTED=0x1
CAPPED=0x2
THROTTLED=0x4
SOFT_TEMPLIMIT=0x8
HAS_UNDERVOLTED=0x10000
HAS_CAPPED=0x20000
HAS_THROTTLED=0x40000
HAS_SOFT_TEMPLIMIT=0x80000


#Text Colors
GREEN=`tput setaf 2`
RED=`tput setaf 1`
NC=`tput sgr0`

#Output Strings
GOOD="${GREEN}NO${NC}"
BAD="${RED}YES${NC}"

#Get Status, extract hex
STATUS=$(vcgencmd get_throttled)
STATUS=${STATUS#*=}

echo -n "Status: "
(($STATUS!=0)) && echo "${RED}${STATUS}${NC}" || echo "${GREEN}${STATUS}${NC}"

echo "Undervolted:"
echo -n "   Now: "
((($STATUS&UNDERVOLTED)!=0)) && echo "${BAD}" || echo "${GOOD}"
echo -n "   Run: "
((($STATUS&HAS_UNDERVOLTED)!=0)) && echo "${BAD}" || echo "${GOOD}"

echo "Throttled:"
echo -n "   Now: "
((($STATUS&THROTTLED)!=0)) && echo "${BAD}" || echo "${GOOD}"
echo -n "   Run: "
((($STATUS&HAS_THROTTLED)!=0)) && echo "${BAD}" || echo "${GOOD}"

echo "Frequency Capped:"
echo -n "   Now: "
((($STATUS&CAPPED)!=0)) && echo "${BAD}" || echo "${GOOD}"
echo -n "   Run: "
((($STATUS&HAS_CAPPED)!=0)) && echo "${BAD}" || echo "${GOOD}"

echo "Softlimit:"
echo -n "   Now: "
((($STATUS&SOFT_TEMPLIMIT)!=0)) && echo "${BAD}" || echo "${GOOD}"
echo -n "   Run: "
((($STATUS&HAS_SOFT_TEMPLIMIT)!=0)) && echo "${BAD}" || echo "${GOOD}"

It will show you if there is throttling and why:

Status: 0x0
Undervolted:
   Now: NO
   Run: NO
Throttled:
   Now: NO
   Run: NO
Frequency Capped:
   Now: NO
   Run: NO
Softlimit:
   Now: NO
   Run: NO

Edit - updated with version to show soft limiting on 3B+ and 4B

1 Like

Thanks!
pi@pi_3:~ $ sudo dmesg --ctime | grep voltage
[Sat Aug 3 21:55:04 2019] Under-voltage detected! (0x00050005)

My Pi3 has only passive cooling, no fan.

Wouldn’t expect it to throttle at 60C, but i’m not sure what value it throttles exactly.
(Believe it throttles at 75C)

You can put this into your boot/config.txt

force_turbo=1
arm_freq=800

Maybe at 800 MHz it’ll run stable and have enough CPU for the Airspy.
Note you might have to change the values back outside the RPi if it doesn’t boot at 800 MHz.

(But i wouldn’t be surprised if the power supply just dies completely very soon)

In my config.txt I have added a long time ago:
force_turbo=1
boot_delay=1
arm_freq=1350
arm_freq_min=700
core_freq=500
over_voltage=2
dtoverlay=sdhost,overclock_50=100\n
dtoverlay=pi3-disable-wifi

I have made a script from the lines posted by caius above.

pi@pi_3:~ $ ./status.sh
Status: 0x50005
Undervolted:
   Now: YES
   Run: YES
Throttled:
   Now: YES
   Run: YES
Frequency Capped:
   Now: NO
   Run: NO

Almost certainly your power supply is failing, or just not up to the job then.

1 Like

Then remove all that and just set the frequency to 1000 MHz.

force_turbo=1
arm_freq=1000

Should be enough to run airspy_adsb at 12 MHz and is much more unlikely to get throttled.
(you can leave WiFi disabled obviously but i would really remove the rest and just set a reasonable frequency)

I think that, if there is under-voltage detected, the config.txt settings about frequency are ignored.
I have added there minimum freq as 700 (that’s newly added) and it still stays at 600.

1 Like

Well, wouldn’t hurt to try.
Min frequency is ignored anyway with force_turbo.

I found out that the arm_freq setting is active to that number only when I change the scaling governor to #performance.
I could try lowering it to 1000, but I really think the core cause is the failing PS.

It probably is the reason.
But with your settings it’s pulling a lot more power than with what i’m suggesting.
Less power being drawn might result in sufficient voltage.

Anyway, might also be the RPi being a goner.
That’s quite some frequency and also over_voltage, increases the likelihood of the thing dying.

Ordered this one yesterday:


Was shipped from Ashland VA at 11:23PM. Arrived in Chesapeake VA (my area) at 3:56AM. I think it will be delivered today.

Just tried that. Still stuck at 600MHz with “undervoltage”.

Good luck with it.
The RPi official power supply is just better suited for the RPi.
Under load for many power supplies the voltage decreases.

Also the official RPi one starts at 5.1 V with no load.
This offsets the voltage loss from the protection circuitry in the Pi.

1 Like

I really hate that they used micro USB to power the pi for so long. It’s a really crappy connector. USB-C is better, but I still don’t get what’s wrong with a simple 2 pin plug. I get that they wanted people to be able to power it with spare phone chargers etc, but it’s a real false economy.

1 Like

LOL, when I want to be sarcastic, I usually say to the other “more power to you!”. Would be very appropriate here :rofl:

1 Like

I am with you here, hated the trend of putting USB power on everything. Loved the old Nokia power supply.
I have also an Orange Pi and that’s how is fed - coaxial power plug.