Le Potato - Long Term Process Heat

Hello fellow builders and tinkerers. tldr; On Le Potato, if your project requires a long-running 25% or higher CPU using process you will need to take cooling into consideration. By default, when the CPU hits 60 the board drops to 100MHz core speed. This occurs very quickly (less than 5 minutes) if you have a process which is running on the cpu. For me that is direwolf, which processes audio to data and uses about 15% of a core at max frequency. So, 15% usage of one core at full clock speed. At 60 degrees C, the default is for the board to drop to 100MHz. This of course means that a process using 15% cpu is now using > 100% at a speed 1/10th or less the max frequency. Process crashes of course. So, I had a board which worked great for 10 minutes and then crashed. So, for your build include cooling (easy) OR fiddle (as I did) with /sys/class/thermal/thermal_zone0 settings and cpufreq-set until I got a balance that passive cooling could handle. In my case I used heat sinks to build a conducting bridge to the metal case to radiate much better. The Potato has been a nice little board to work with.

2 Likes

I’ve been using a 5v 30mm fan connected to the power pins on the SPDIF header. Quiet enough, and it does the job.

1 Like

These boards are tuned for long term reliability (5+ years). The software defaults limit SoC speeds starting at 60C to reduce thermal cycling stress. You can increase the temperature to 70C for more performance without a heatsink.

Our choice of lower temperature before throttling is designed to make application engineers run into thermal issues sooner so they do not forget about thermal limits before deploying solutions in the field.

1 Like

Your design choice worked like a charm! I did indeed encounter the issue early enough to address it in my hardware build plan, so you saved me a lot of frustration.

1 Like

Thanks for bringing this up. I am planning to attempt using Direwolf with an RTL-USB dongle to build an APRS Internet gateway like I have previously done on a Raspberry Pi 3B. Fortunately, I purchased the heat sink made for the Le Potato board and put it in a case that has a 30 mm fan. I’ll be watching the CPU temperatures to see how it plays. If I can avoid bumping the throttling temperature up to 70 C, that would make me consider deploying it up on the hill west of town at the repeater site. I want it to survive warm summer days in a Viet Nam-era unconditioned portable military style comm shelter where the repeaters live, and I am working to get a path to the Internet.

1 Like

I’ve been using my Potato as a daily driver while I get to know it, at least for lighter tasks; I still have to boot the “big computer” for Blender and such. The 30mm fan and heatsink keep it below 60°C even after hours of youtube playback. Haven’t tested in the summer heat yet, but so far in my apartment in the frozen north it seems sufficient.

1 Like

What is the command to adjust the SoC throttle temperature please?

Up until the kernel upgrade today (now at 6.1.21-04463-gbcb638653280, you could echo VALUE > /sys/class/thermal/thermal_zone0/trip_point_0_temp where VALUE is centigrade integer (70000 = 70C).

However that node is no longer in the /sys/class/tree with this kernel upgarde. @librecomputer What is the new node to view and control CPU thermal settings and status?

Thank you.

1 Like

Please update your system. This bug has been fixed.

I get “-bash: trip_point_0_temp: Permission denied” even running as sudo. If I edit it with nano all of thermal_zone0 is deleted. I’m running ubuntu server with mate desktop, freshly updated as of this morning.

You are using bash incorrectly. Just because you put sudo in front does not mean the pipe to file has sudo permissions.

@librecomputer Thank you for the update!

@angus Try this. sudo bash then echo VALUE > /sys/class/thermal/thermal_zone0/trip_point_0_temp On my Potato I have this line in /etc/rc.local which runs as root so no sudo required.

1 Like

The proper way in bash to overwrite a file is echo SOMETHING | sudo tee FILE. Also see Bash Simplified Guide and Cheat Sheet

2 Likes

Excellent post! I ran into the exact same issue (Also with Direwolf) Current heatsink configuration hits 65C in an Arizona Garage. Was pulling my hair out trying to figure this out and didn’t even think of thermal throttling til I read this post. Full summer hasn’t hit yet so I may be looking at a combination of fan and raising the thermal limit.

Thanks again!
Barry - KK7JXG

The same problem with 6.2.16-03521 kernel version.
Unable to change trip points.
How to fix this bug?
Is there another way to set up trip points in the default configuratuon, not using rc.local script?

What board and image are you using?

The board is aml-s905x-cc,
Image: 2023-05-03-raspbian-bullseye-arm64+aml-s905x-cc
Kernel version i have troubles with: 6.2.16
Thanks for the so rapid responce!

Where did you get 6.2.16? Use the standard 6.1 lc lts kernel.

I installed it from debian repositories because I need it for external device support, so that’s why I’m asking you, how to patch a kernel to fix this issue.
Thank you for the responce!