[MTCD Software Development] SkyBeam2048:
Okay. A simple information that the rockchip driver exposes temperature readings to sysfs would have been sufficient. Temperatures are not read by core but there seems to be a built-in temp sensor. It's available at

/sys/rockchip_thermal/temp

Given this I don't even need any unCool Tool crashing my launcher. I can simply write a one-liner script to read the temperatures:

while true; do echo "$(date +%Y-%m-%d:%H:%M:%S): $(cat /sys/rockchip_thermal/temp)"; sleep 5; done

This line is sufficient to print the current temperature once every 5 seconds to the terminal screen. Optionally it can be written to any log file for archive purposes. Anyway, for me it was sufficient.

So here are some results:

I basically read the instructions on train so when I got to my car I started my head unit and started to write the script in terminal. Initially the unit printed a CPU temperature of 45°C after about 5 minutes of on-time.

HU information:

Car-Specific unit shape for Subaru WRX

Manufacturer: Klyde

SOM: PX5, 2GiB RAM, 32GiB flash, RK3688@1.5GHz max

MCU: MTCE KLD 2.65d

Environment:

Ambient temperature: 5°C (car was outside for the day)

Interior temperature: about 8°C meanwhile...

CPU temperature: 40-45°C after 5 minutes on

So I decided to fire up all applications. So I started:

DAB+ radio app modded by realzoulou, masterpiece edition

Nokia Here WeGo maps, set to my destination, not just "driving" mode

DVR recorder using front USB camera, recording at 720p, H.264 to GPS card

Terminal reading/logging temperature every 5 seconds

After about 5 minutes drive the temperatures didn't rise much. The readings were jumping between 47 and 55°C.

So I decided to go to town with it and launched AnTuTu 3D benchmark in loop mode. After 3 runs the temperatures rised to 55-60°C Meanwhile the car interior was at "normal" level. Basically I kept it running until I reached home about 40 minutes later.

The temperatures read 70-75°C since about the last 10 minutes before I returned home. With one spike at 82°C.

Right after closing down AnTuTu 3D temperatures dropped to 55°C.

Admittedly it's not the best time to do temperature tests with exterior temperatures at 5°C but given the fact I don't have vent holes in my head unit the air temperature inside should reach a certain max. after a while. I will certainly repeat similar tests in summer after the car was in bright sunlight for a day.

Also note that I did not experience any crash, lockup or even hiccup during device operation and I occasionally swtiched between navigation and DAB+ app to change radio stations before continuing the benchmark load.

Also memory consumption during the tests did not exceed 1.2GB; no need for 4GB for me. Though I would like to run Android 8 :)

So the question is: Is this critical?

I personally think it's not. First of all those SOC are usually designed for package temperatures of 90°C before they start temperature-throttling. Throttling is however not critical at all and the SOCs are designed to hit this limit in normal operation. They will just lower the clock rates but should still work stable. Those SOC usually can even operate at 120°C package temperatures. As said I will re-test in summer but don't expect critical issues and don't plan to add a fan.

So far about what those "crappy units" can do :) SCNR

---------- Post added at 08:38 PM ---------- Previous post was at 08:22 PM ----------

Any size will add cooling. Given the fact the SoM is shipped without any additional cooling (just the heat spreader) you don't need a cooler at all. So any heatsink you add is lowering the temperatures or providing some margin to avoid temperature-based throttling. If you add some I recommend to go for some size which fits between the screw holes so you can still properly mount it. I guess a heatsink with 40-50mm length is the maximum useful size. Remember that the most important attribute of a heatsink is not it's base plate size, it's actually it's complete surface.

So get some heatsink with some hight as well. At least my HU is 2 units high and mostly filled with air. So actually my heatsink could be something like 10cm high. However you would not want to go that high since the larger the heatsink is the more mechanical momentum you're going to transfer to the SoM. And you don't want the SoM to be mechanically damaged or the heatsink to break off when the car shakes.

So the best you can possibly get is something with 50mm x 50mm with a hight of about 30-50mm too.

If this is not sufficient for you perhaps think about active cooling.

I actually also thought about the possibility to install heat pipes. So the SoM could be heat-piped to the quite massive back-plate of my unit which would provide thermal coupling between the outer case and the SoM. That's probably what I would try next if my solution proves to be insufficient during hot summer time.

I also support suggestions to use proper thermal compount to glue-on the heatsink. I personally went for a clip-on solution which is likely mechanically very stable as well and it's reversible, so I can always replace or remove the heatsink. My one is not glued but I put some thermal-grease between the heat spreader and the heatsink.

Regarding whether to remove the heatspreader: I recommend NOT to do this. This would perhaps gain a minimum amount of additional cooling to the CPU. However the heat spreader might also touch other components below. I did not remove it but often those heat spreaders have thermal pads below to create termal coupiling of high-load capacitors, resistors and voltage regulators underneath. If you remove the spreader and just create contact on a heatsink to the CPU you are putting those components on danger in multiple ways:

The compontents are not thermally coupled to you replacement heatsink any more (unless you put thermal pads as well)

The components dont get fresh air as underneath the heatsink there is almost 0 airflow

Due to limited airflow hot air underneath your heatsink will not escape and therefore create hotspots which might kill additional components while your CPU runs cool

The heat spreader on my PX5 is cheap but does it's job and allows you to attach the heatsink anywhere on it. I strongly believe the heat transfer inside the heat spreader is sufficient. So don't remove it.

Note: My heatsink for example does not cover the holes in the OEM heat spreader exactly due to this reason. Hot components located at cut-holes in the heatspreader can still dissipate heat to the top (warm air automatically dissipates to the top if you don't cover the holes).

Sorry for the long-ish response :)