Stress testing a Raspberry Pi 4 with PiCockpit – temperature monitoring

Using the new PiCockpit v2.0 release, you can monitor the current SoC temperature of the Pi in an easy to use webinterface (in PiStats).

Simply click on PiStats, and enter temp into the search:

image

image

this will narrow the display down to just the SoC temperature. The temperature will be updated every second.

I also recommend you to use the PiDoctor’s System module, on auto-reload to monitor temperature limit, frequency cap and throttling events.

image

image

scroll down to see the throttling & under-voltage view:

image

This is the view you would like to see – the system stays within the temperature limits, there is no throttling – your Pi operates optimally.

There are two different deviations from this: currently out of spec (e.g. is currently in under voltage) , or has been out of spec in the past (e.g. had undervoltage since last boot) – you can see both in this view.

Create a button to launch stress on the Pi on-demand

You will need the command line for this one.

sudo apt-get update

sudo apt-get install stress

sudo nano /etc/picockpit-client/apps/com.picockpit/picontrol/modules/user.json

Enter the following configuration into the new file:

{
         “name”: “User commands”,
         “icon”: “mdi-test-tube”,
         “handle”: “user”,
         “description”: “User commands for demo of PiControl”,
         “commands”: {
                 “stress”: {
                         “name”: “start stress”,
                         “icon”: “mdi-fire”,
                         “description”: “Puts stress on the Pi CPU to heat it up”,
                         “command”: [“stress”, “–cpu”, “80”]
                 }
         }
}

Note: Unfortunately WordPress messes up code formatting and characters. Please refer to this screenshot for how the text should look like:

Tip: you can see a list of all available icons here (Material Design Icons).

image

Save with Ctrl + O, Exit with Ctrl + X

Then reload picockpit-client.

sudo service picockpit-client reload

In PiControl, a new panel with User commands should now appear:

image

(no need to reload the website – it will appear by itself, if the Pi is online and the PiCockpit frontend has a connection).

A screenshot before starting

Here is a screenshot of the output of PiStats before starting Stress:

image

note the low CPU Load at 1 % and the SoC temperature at 44.303 °C

Now click the “Start Stress” button to start Stress. The PiControl screen will change like this:

image

PiStats with stress running

image

As you can see, the CPU load is immediately at 100 %, and the SoC temperature jumped to 61.835 °C.

Using different parameters for stress will allow you to vary the load to model a realistic picture of the expected load.

Additionally, you could load the VideoCore by playing a video for example – further heating the SoC.

Continue to monitor the Throttling & under-voltage section in PiDoctor’s System module to see if such events occur.

Pushing the SoC

I put some bubble wrap on top of the Pi, to prevent efficient air circulation, and am also running a video off the Pi:

omxplayer thais.mp4

(You will need to provide your own video file for this, I am using a download of this YouTube video)

These measures, taken together push the SoC to over 80 °C:

image

This also shows up in PiDoctor:

image

In this screenshot you see the ARM frequency cap being activated, to protect the SoC from damage by overheating.

Further up in the System module, you can also check the current CPU frequency. In this case it was limited to 1 GHz:

image

The cap is lifted when temperature drops, the frequency goes back to 1,5 GHz (on a Pi 4):

image

But the fact that there had been a frequency capping event will remain until the next boot:

image

Tip: in order to prevent overheating of the Pi 4 under massive workloads, we recommend to use the FLIRC case.

Stopping stress

Keep the window open where you started stress from – you will be able to stop it here by clicking on Stop process.

image

Note: you might get a warning message, but CPU usage will drop back to normal, indicating that stress was stopped:

image

This is the PiCockpit way of things – of course, you can also simply run stress from the command line (by SSH for example).

Monitoring temperature this way is great to see the effects of different enclosures & scenarios on your Raspberry Pi.

Installing picockpit-client & using picockpit

Click here to read my previous blog post about how to use the Raspberry Pi with PiCockpit.