I’ve a simpler and better solution. Passive cooling using the aluminum case as heat-sink:
I’ve been testing with a prototype made by hand and it works quite well. Temperature is 10ºC lower than using a conventional passive heat-sink or nothing.
The test sessions were quite stressing for my poor RBPi4 zynthian. It was working for hours at high ambient temperature 40-45 ºC
At this temperature, i tested with 2 different stress-generator binaries:
- stress => put the 4 cores to 100% using C compiled code
- cpuburn => put the 4 cores to 100% and try to maximize the heat production by using customized assembler code.
You have to realize that both of these stress-generators put the RBPi, miles above any real-world zynthian use-case. Also, the ambient temperature of 40-45ºC is, probably, above the maximum temperature that any person with a sane brain will try to use a zynthian. And i say “probably” because i’m pretty sure that some of you will try go above that …
This is the script used for testing:
echo "Stage 1: Repose => 5 min"
sleep 300
echo "Stage 2: Stress => 20 min"
stress -c 4 -t 1200s
echo "Stage 3: Repose => 5 min"
sleep 300
echo "Stage 4: Stress => 20 min"
stress -c 4 -t 1200s
echo "Stage 5: Repose => 5 min"
sleep 300
echo "Stage 6: CPU Burn => 20 min"
timeout 1200s ./cpuburn-a53
echo "Stage 7: Repose => 10 min"
sleep 600
#Total Time: 85 min
I repeated the tests with 3 different configurations:
-
The zynthian-heat-conductor prototype:
-
A “standard” passive heatsink for RBPi:
- Nothing:
Comments:
-
As you can see, a “normal” heatsink doesn’t produce any measurable effect. It’s RBPi decoration. My theory, “the real problem is putting the heat out of the case”, is confirmed
-
The heat-conductor prototype (zynthuctor) reduce the temperature for a good amount (~5-10ºC). Enough for not triggering the frequency cap on the first 2 rounds with “stress”. “Cpuburn” put the zynthian to boil in all the cases. At a normal ambient temperature of 15-35ºC and with a maximum CPU load of 70-80% (without generating lot of XRuns) the zynthuctor is capable of maintaining the temperature at a very acceptable level of 50-70ºC, far enough from the 80ºC and the freq-cap.
Final Conclusion:
The “zynthuctor” seems to be a valid solution for our problem of avoiding “frequency capping” under any reasonable use-case of zynthian. So the next zynthian kit v4, when available, will include the “zynthuctor” and will avoid using active cooling. Yesssssssssssssss!!!
Enjoy!