Message boards :
Number crunching :
Pi Power-Up
Message board moderation
Author | Message |
---|---|
Send message Joined: 23 Mar 16 Posts: 96 Credit: 23,431,842 RAC: 0 |
Some time ago I noticed that my Raspberry Pi 2 was significantly outperforming my Pi 3 running Universe@Home. I didn't have the time to look into it, but I just assumed it was a weak power supply on the Pi 3. The Pi 3 in question was powered from the USB socket on the back of my router (and it wasn't convenient to change this arrangement), whilst the Pi 2 was powered from a switched-mode power supply on a HAT that I designed myself. Over the holiday period I decided to look into it, and discovered my assumption was wrong. To help me, I wrote two scripts, which I've provided below. These did indeed reveal the Pi 3 was running under-voltage, and as a result throttling the CPU, but not for the reason I thought. I discovered it also ran under-voltage when plugged into a 2 Amp wall-wart (and yes, it was bang on 5 V). There then followed much switching around of Pies, power supplies, and USB cables. This revealed that both Pies always ran under-voltage when I used a random USB cable that came with something. It made no difference whether the cable was anonymous rubbish, or came with a good quality branded product. The only cables with which they didn't run under-voltage were either of the two Anker USB cables I bought simply to allow me to charge and use a device at the same time without finding myself on a short leash that somehow shortened itself further by slowly tying itself in knots. With these cables it made no difference which (potentially adequate) power supply I used, despite the fact that these are quite long cables. I've since bought two more, and these also allow my Pies to perform to their full potential. This is probably because these Anker cables simply have a lower resistance than generic cables. As an added bonus, they are (approximately) Raspberry Pi red. Here's an Amazon link (UK site): https://www.amazon.co.uk/gp/product/B01DEMTOQ6/. So you might want to use my scripts to check on your own Pies. This isn't the end of the Pi 2 vs Pi 3 story, but I'll leave that for a second exciting, fun-packed episode. ~/bin/show-status: #!/bin/bash # I was fiddling around with the most convenient way (for me) to deal with the need to run vcgencmd as root. # In the end I left it as a script where the script is called without "sudo", but the first command demands the password. # You may want to do something different. sudo echo "" # Assume Bullseye... VCGENCMD=/usr/bin/vcgencmd if [ ! -f "$VCGENCMD" ]; then # Nope echo "Please upgrade me." VCGENCMD=/opt/vc/bin/vcgencmd fi awk 'NR==3 {print "WiFi Signal Strength=" $3 "00 %"}''' /proc/net/wireless sudo $VCGENCMD measure_volts sudo $VCGENCMD measure_temp sudo $VCGENCMD measure_clock arm source <(sudo $VCGENCMD get_throttled) # Bit Hex value Meaning # 0 1 Under-voltage detected # 1 2 CPU frequency capped # 2 4 Currently throttled # 3 8 Soft temperature limit active # 16 10000 Under-voltage has occurred # 17 20000 CPU frequency capping has occurred # 18 40000 Throttling has occurred # 19 80000 Soft temperature limit has occurred if [[ $(($throttled & 0x1)) -ne 0 ]]; then echo "Under-voltage detected" elif [[ $(($throttled & 0x10000)) -ne 0 ]]; then echo "Under-voltage has occured" fi if [[ $(($throttled & 0x2)) -ne 0 ]]; then echo "Frequency capped" elif [[ $(($throttled & 0x20000)) -ne 0 ]]; then echo "Frequency capping has occured" fi if [[ $(($throttled & 0x4)) -ne 0 ]]; then echo "Currently throttled" elif [[ $(($throttled & 0x40000)) -ne 0 ]]; then echo "Throttling has occured" fi if [[ $(($throttled & 0x8)) -ne 0 ]]; then echo "Soft temperature limit" elif [[ $(($throttled & 0x80000)) -ne 0 ]]; then echo "Soft temperature limit has occured" fi echo "" ~/bin/monitor-status: #!/bin/bash watch -n 30 "show-status" |
Send message Joined: 12 Aug 17 Posts: 21 Credit: 58,957,280 RAC: 0 |
hi, this good advice! me myself being a veteran with digital devices and not using any pi's gives 5 stars for this. HELPFULL at least for the unexperienced around.. gruss, fs. |