Stress Testing a Raspberry Pi for Power Consumption

Taking a quick numbers dump of the Raspberry Pi 3 Model B Plus Rev 1.3 (4 Core, 1GB RAM). Powered by block-powered 12V USB hub, double-ended for separate power/data back to the Pi , back-protection considered. Additional drain on USB dongles that overloaded the Pi’s ability to transmit more than 1Amp (as reported on sites, and proven by crashes/nonresponse) The only thing plugged in here is a 12V power adaptor from the USB hub into a Kill-a-Watt.

Additional power consumption place by SDR dongle with BiasT enabled.

  1. Installed “stress”
  2. Run stress on all cores for hours and hours.
  3. Monitor KPIs
Picture of Raspberry Pi Stress Test – Whole Setup. 0.29A @ 12V for idle with SDR dongle plugged in but not used.
top - 14:07:38 up 16 min, 3 users, load average: 2.00, 1.80, 1.06
Tasks: 114 total, 3 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu0 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 926.1 total, 690.0 free, 54.4 used, 181.7 buff/cache
MiB Swap: 100.0 total, 100.0 free, 0.0 used. 800.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
906 root 20 0 2388 72 0 R 100.0 0.0 10:37.51 stress -v -c 2
907 root 20 0 2388 72 0 R 100.0 0.0 10:37.43 stress -v -c 2

Core Voltage Drop

Image: Raspberry Pi Stress Test – Kill-a-Watt IMG_3063.jpg. I’d be waiting a lot of hours to register even 0.01 of a KWh

Immediate core voltage drop noticed. I’ll have to check the usage after some time. I estimated 5W per hour, so i will check back in a few to see what the score looks like.

Previous to exam: 
pi@raspberrypi:~ $ grep VOLT /var/log/syslog
Feb 18 13:55:01 raspberrypi pi: VOLTAGE core: volt=1.3813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Feb 18 14:00:01 raspberrypi pi: VOLTAGE core: volt=1.3813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Feb 18 14:05:01 raspberrypi pi: VOLTAGE core: volt=1.2813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Picture of Power Leads to multimeter IMG_3066.jpg

Temperature Increase

Certainly warmer container after 30 mins inside a 20C room.

pi@raspberrypi:~ $ grep TEMP /var/log/syslog
Feb 18 13:55:01 raspberrypi pi: TEMPERATURE temp=37.6'C
Feb 18 14:00:01 raspberrypi pi: TEMPERATURE temp=55.3'C
Feb 18 14:05:01 raspberrypi pi: TEMPERATURE temp=60.7'C
Feb 18 14:10:01 raspberrypi pi: TEMPERATURE temp=61.8'C
Feb 18 14:25:01 raspberrypi pi: TEMPERATURE temp=66.1'C
Feb 18 14:25:01 raspberrypi pi: WIFI Link Quality=41/70 Signal level=-69 dBm
Feb 18 14:25:01 raspberrypi pi: VOLTAGE core: volt=1.2813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V

WIFI Strength Drop Hardly noticeable.

Little bit lower Signal strength noted. I believe this is receptive quality, could be another enhancement current voltage due to the 50% core utilization demands.

pi@raspberrypi:~ $ grep WIFI /var/log/syslog
Feb 18 13:55:01 raspberrypi pi: WIFI Link Quality=42/70 Signal level=-68 dBm
--START STRESS--
Feb 18 14:00:01 raspberrypi pi: WIFI Link Quality=40/70 Signal level=-70 dBm
Feb 18 14:05:01 raspberrypi pi: WIFI Link Quality=40/70 Signal level=-70 dBm
Feb 18 14:10:01 raspberrypi pi: WIFI Link Quality=40/70 Signal level=-70 dBm

Device Info

pi@raspberrypi:~ $ sudo cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
pi@raspberrypi:~ $ cat /etc/debian_version
10.3
processor : 3
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 89.60
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : BCM2835
Revision : a020d3
Serial : 00000000ea9c962e
Model : Raspberry Pi 3 Model B Plus Rev 1.3
pi@raspberrypi:~ $
https://ozzmaker.com/check-raspberry-software-hardware-version-command-line/

Announced on “Pi Day”, 14th March 2018 (announcement). The Raspberry Pi 3 Model B+ is an incremental improvement over the previous Pi 3 Model B for the same US$35 price.Raspberry Pi 3 Model B+

The Raspberry Pi 3+ features:

  • A 1.4GHz 64-bit quad-core ARM Cortex-A53 CPU
  • Dual-band 802.11ac wireless LAN and Bluetooth 4.2
  • Faster Ethernet (Gigabit Ethernet over USB 2.0)
  • Power-over-Ethernet support (with separate PoE HAT)
  • Improved PXE network and USB mass-storage booting
  • Improved thermal management
a020d3Q1 20183 Model B+1.31 GB(Mfg by Sony)
Table showing specs based on reported hardware revision code.

Leveled Off Temps

After about 1 hour, we’ve found an equilibrium with the room temp, air pressure, air currents, plastic clear-case, thermal mass of contact surface (plastic container) at bottom.

Feb 18 14:25:01 raspberrypi pi: TEMPERATURE temp=66.1'C
Feb 18 14:25:01 raspberrypi pi: WIFI Link Quality=41/70 Signal level=-69 dBm
Feb 18 14:25:01 raspberrypi pi: VOLTAGE core: volt=1.2813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Feb 18 14:30:01 raspberrypi pi: TEMPERATURE temp=66.1'C
Feb 18 14:30:01 raspberrypi pi: WIFI Link Quality=41/70 Signal level=-69 dBm
Feb 18 14:30:01 raspberrypi pi: VOLTAGE core: volt=1.2813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Feb 18 14:35:01 raspberrypi pi: WIFI Link Quality=41/70 Signal level=-69 dBm
Feb 18 14:35:01 raspberrypi pi: TEMPERATURE temp=65.5'C
Feb 18 14:35:01 raspberrypi pi: VOLTAGE core: volt=1.2813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Feb 18 14:40:01 raspberrypi pi: WIFI Link Quality=41/70 Signal level=-69 dBm
Feb 18 14:40:01 raspberrypi pi: TEMPERATURE temp=65.5'C
Feb 18 14:40:01 raspberrypi pi: VOLTAGE core: volt=1.2813V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V

Adaptor Draw – Consumption vs. Production Losses

AC adapter, switching (mine) or non, would be a good approximation of losses due to DC consumption. Solar applications would have less numbers on this side of the production vs. consumption loss line. Production is a whole other issue of losses including, silicon, connector, awg/length, charge controller, battery losses, contact losses, and weather! 😉

A new way to measure the power consumption.

That killawatt meter isn’t even going roll to 0.01 for another 10 days. Let’s cut the PSU and grab the ol’ multimeter.

One alligator, one wrap around. It made a little spark when I clipped it on.

0.28A – 0.66A idle to full-tilt CPUs with powered SDR dongle.
@12 volts, .28A, 3.36 Watts.42.85 ohms resist.
@12 volts, .66A, 7.92 Watts, 18.1818rep ohms.

.68A peak rarely seen.

Results.

Readings in various test states by watching the DC side of the 12V power adapter –

  • 0.04A USB Hub alone, not powering Pi or connected to any USB device.
  • 0.28A USB Hub powering a Pi at idle. No program running.
  • 0.22A USB Hub powering a Pi at idle with no additional USB devices.
  • 0.29A at SSH remote login
  • 0.38A after starting rtl_radio with BiasT enabled.
  • 0.55A no radio, all cores
  • 0.56A no radio, all cores (interesting).
  • 0.40- 0.47A listening to SDR radio via TCP. biasT enabled, FM local station. WIFI LAN connection on both receiver machines. load avg 0.60 cpu %97 idle.
  • 0.59-0.66 listening as above, but also runnin 4 cpu stress. Load average was 4.xxxx .
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Tuned to 100000000 Hz.
activated bias-T on GPIO PIN 0
top - 15:44:01 up 15 min, 1 user, load average: 0.78, 0.60, 0.42
Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 2.5 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.6 si, 0.0 st
MiB Mem : 926.1 total, 752.2 free, 99.6 used, 74.2 buff/cache
MiB Swap: 100.0 total, 100.0 free, 0.0 used. 770.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
119 root 20 0 0 0 0 I 6.3 0.0 0:17.34 [kworker/u8:2-brcmf_wq/mmc1:0001:1]
69 root -51 0 0 0 0 S 4.0 0.0 0:16.58 [irq/86-mmc1]
594 pi 20 0 77372 45860 1896 S CPU 3.0 MEM 4.8 0:16.72 /usr/bin/rtl_tcp -a ip.add.res.ss  -g 0 -T

Pi Complains about Under Voltage

But no harm done, not stalled, not rebooted. I’ve seen some threads to indicate that this alert is chronic and bothersome. It probably coincides with my stress testing.

Feb 18 16:30:02 raspberrypi pi: VOLTAGE core: volt=1.2875V sdram_c: volt=1.2500V sdram_i: volt=1.2500V sdram_p: volt=1.2250V
Feb 18 16:31:38 raspberrypi kernel: [ 3776.473745] Under-voltage detected! (0x00050005)
Feb 18 16:31:56 raspberrypi kernel: [ 3795.193348] Voltage normalised (0x00080008)
Feb 18 16:31:58 raspberrypi kernel: [ 3797.273367] Under-voltage detected! (0x000d0005)
Feb 18 16:32:03 raspberrypi kernel: [ 3801.433425] Voltage normalised (0x00080008)


[ 119.834732] Under-voltage detected! (0x00050005)
[ 123.994639] Voltage normalised (0x00000000)
[ 126.074702] Under-voltage detected! (0x00050005)
[ 130.234720] Voltage normalised (0x00000000)
[ 144.794515] Under-voltage detected! (0x00050005)
[ 148.954390] Voltage normalised (0x00000000)
[ 681.433121] rpi_firmware_get_throttled: 3 callbacks suppressed
[ 681.433129] Under-voltage detected! (0x00050005)
[ 685.593119] rpi_firmware_get_throttled: 3 callbacks suppressed
[ 685.593126] Voltage normalised (0x00000000)
[ 980.952539] Under-voltage detected! (0x00050005)
[ 985.112474] Voltage normalised (0x00000000)
[ 1028.792378] Under-voltage detected! (0x00050005)
[ 1032.952343] Voltage normalised (0x00080008)
[ 3776.473745] Under-voltage detected! (0x00050005)
[ 3795.193348] Voltage normalised (0x00080008)
[ 3797.273367] Under-voltage detected! (0x000d0005)
[ 3801.433425] Voltage normalised (0x00080008)