Keeping cool
Tristan M. (2946) 1039 posts |
I have a chance to sit down and do a tiny bit of self education / development on RO, but the environment isn’t conducive to such things. I’m watching the CPU temp slowly climbing. It’s at about 78*C now, throttled down to 600MHz. It’s not the Pi 3’s fault. It’s ambient temperature. I’ll have to turn it off soon because there a definite slow but certain thermal runaway. What do people do to keep their SBCs cool? Unfortunately I can’t use my Pi Zero because I need a new HDMI mini cable for it. Because of the way I have it set up it’s kind of a daughterboard on a backplane, so a standard HDMI adapter and cable would probably snap something. My Pi B is a little unstable so that’s more of a last ditch thing. With non RO running hardware my Orange Pi PC2 has a flat (drum?) fan forcibly ripped from a complete chipset heatsink on a notebook, blu tack’d to the top of the case and alligator wires forcing it to run at 100% speed. I had to do that when I was using it to build GCCSDK recently. The chipsets on all my ARM SBCs have heatsinks. As an aside I remembered recently I was working on my car and needed to use my phone. It went into extreme thermal throttling mode including killing all apps because it thought there was a rogue process causing the overheat. It was just a hot day. |
Jeffrey Lee (213) 6048 posts |
I suspect most of us avoid living in countries where overheating like this is a problem ;-) I think the only SBC I’ve had problems with is the IGEPv5, which can easily overheat itself and trigger a reboot. Its tiny heatsink just can’t keep up, even for single-core usage. Chris Johnson’s CPUClock can probably keep things in check by throttling the speed as the temperature rises, so I expect I’ll be installing that the next time I need to do any intensive work on the board. My other boards can get a bit toasty, but never to the point where they become unstable. The wandboard has a reasonably sized heatsink, the others are bare chips. At some point I should probably do a comparison between RISC OS & Linux to see how the idle temperatures of the boards differ. For some of them I’m sure there must be some power saving tricks which we’re missing. But that’s a rabbit hole that I’m not quite ready to go down yet. |
Erich Kraehenbuehl (1634) 181 posts |
What is on RPi-3 with switching off the other 3 kernels when starting RISC OS? |
Patrick M (2888) 126 posts |
I’ve fitted my raspberry pis with heatsinks, although it’s probably not really necessary in my case. Except in the summer, my house is usually not hotter than 25 degrees. It’s 23 degrees in my computer room right now. |
Rick Murray (539) 13851 posts |
Summer 2016 was really hot. It was hot enough that my Vonets cooked itself (the thing always runs pretty hot) and the little dual-output PSU was toast as well. [blog article] Since then, I got myself a replacement Vonets and a 5V 1 inch fan. A rubber band holds the fan against the Vonets. Since I metered the thing running at around 75°C in operation, that little fan is always on. When I got the Pi2, I fitted heatsinks. It’s weird putting a heatsink onto an ARM, but they’re powerful enough now that they may need some assistance. ~1GHz quad core and GPU in a package the size of a microSD card, yeah, might need cooling… The weak link here is the power supply, which is a fancy white box with five USB outputs. It runs fairly cool, but when it’s 30C outside and nearly that in my room, it’ll be hard to keep things as cool as we’d like without assistance. For that I have one of those laptop cooler things that blows air down over the Pi2 and the PSU (and also indirectly sucks it down from the Vonets above). [blog article with photos] It’s currently ~14C in my room so obviously the fans aren’t running. My Pi’s case temperature is ~30C and the CPU is running at around 41C. I’m running CPUClock which is set to throttle back if the temperature hits 55C. But, being an ARM device with RISC OS, it seems to usually just reach operating temperature and stay there. Unlike my EeePC which can idle at around 55C and jump to 75C within a few seconds of starting to watch a movie. I run a hack (eeectrl) that allows me to override the fan management and just kick it up to 100% power for times like that. tl;dr: If there’s a risk, heatsinks and fans are the way to go.
A few quick tests indicate that single tasking mode runs the processor at 900MHz on my Pi2 (in other words, max speed). What sort of power/idle things are active in that case? Does, say, OS_Byte 129 (get key within a limit) or OS_ReadC idle? Hmmm, I can do some of this myself… It looks like RDCH kicks the speed down (Kernel.s.PMF.key, around line 1050) and also sets up idle state while awaiting a keypress. So the system should run at high speed when doing something, and idle when awaiting input. Yes? |
Jeffrey Lee (213) 6048 posts |
Correct. I think OS_Byte 19 is the only other place where the kernel does any power saving (the rest is the Wimp, and occasionally busy-wait loops in hardware drivers). |
Tristan M. (2946) 1039 posts |
I run CPUClock religiously. A lot of the time with the status window open so I can keep an eye on the temperature. Rick, temperatures inside can hit 40*C+ during the summer. Outside, well… depends on how you measure it. IIRC last year the max was about 52*C in the shade. I think I just turned everything off and hid under the aircon. Come to think of it, I think there were only a few days last “winter” where I wasn’t wearing a T shirt and shorts. I have some lovely home grown tomatoes here. They look nice, until I turn them around. The half facing the sun during the latter half of the day is… well gone. Just white scar material, with dried seeds on the surface and all.
I can’t help where I was born. I did grow up in a fairly cool, damp region though. I’m not there anymore, and neither is the climate :( Last night I was looking at PWM control of 4 wire computer fans. It became clear that they need the ~20KHz PWM signal to be generated in hardware. Not too hard to take care of, but then if it has a protoboard HAT shoved on to it, the whole thing becomes rather pointless as the airflow is effectively stopped! I do believe RO does run hotter than Linux. The reasons have been pointed out above anyway. Rick, My PSU is currently just a two USB wall wart. I think it has a 1.2A and a 2.1A USB connector. My 5A, 7 port monstrosity is currently just doing USB hub duty. There’s some instability I need to chase down. |
Alan Robertson (52) 420 posts |
Tristan |
Steve Pampling (1551) 8172 posts |
Figures: Gabba, 19th, SCG 21st. |
Tristan M. (2946) 1039 posts |
Alan, That case looks good. Those are the heatsinks I have essentially. I bought a pack of 30 of them. It came with large and small for doing SBCs or whatever. I look forward to seeing your results. It’s going to be 39*C today here. Thankfully not around 42* – 43* like last week. |
Alan Robertson (52) 420 posts |
Tristan, Which version of CPU_Clock do you run? is it version 2? Just want to make sure my results are like-for-like with yours. |
Tristan M. (2946) 1039 posts |
Alan, CPU Clock v2.03 No idea what the inside temp is right now. Going to guess about 30*. The Pi 3 seems to be running at about 64* with some StrongEd and !Zap windows open. Not much actually happening. |
Tristan M. (2946) 1039 posts |
I realised I don’t have a thermometer besides a laser IR gun. Maybe I’ll throw a temp / humidity sensor onto a microcontroller and dump an Arduino senso demo on to it so I can see what the actual temp is in here. Depending on which source I look at, today will be 43 or 44*C. Hot either way. |
Tristan M. (2946) 1039 posts |
To make this a little easier on myself I enabled the rolling average option on CPU Clock. Ambient temperature roughly 10cm away from the Pi3 is approximately 28.1*C. That’s just an eyeballed average. I’m using an Si7021 temperature and humidity sensor module being polled @1Hz. |
Alan Robertson (52) 420 posts |
Tristan This using CPU Clock v2.04, with Netsurf and StrongEd windows on screen. |
Chris Mahoney (1684) 2165 posts |
My Pi 3 has no heatsink and I just tried CPUClock (2.04) for the first time1. It immediately went “into the red” at about 66°, but then dropped to the low 60s after a few seconds (orange). Ambient temperature is a comparatively-tame 28° at the moment. It’ll be interesting to retest it in the winter, although I’ll probably have forgotten by then. 1 PackMan refused to install it with the extraordinarily helpful “the following warnings occurred: Component CPUClock has not been installed”. I’m not yet sure whether this is an issue with the package or something haywire on my system. Fortunately I was able to get it up and running manually. |
Chris Johnson (125) 825 posts |
I’ll have a look at this later – I’ll try to install it via Packman on one of my systems. |
Chris Johnson (125) 825 posts |
Well – I tried installing CPUClock 2.04 via Packman on my iMX6 and got a similar warning message. 12:00:21 30035 The files for the packages have been installed correctly, but This location was where I thought I was installing it. However, it was actually installed correctly in the default location Apps.Misc from where it ran without problem. In the __Temp location in the above warning there was instead a directory !Packages. The date/time stamps of files in it were much older than the corresponding contents of Boot:Resources.!Packages which is the working copy. Not really sure what is going on. I’ll try again on my other machine and see what happens there. |
David Pitt (3386) 1248 posts |
The error here on the Titanium is :- Time Code Description 13:30:50 30035 The files for the packages have been installed correctly, but 13:30:50 30036 the following warnings occurred during configuration. 13:30:50 10003 Component 'ADFS::Titan4.$.Apps.Miscellaneous.!CPUClock' has not been installed' The Packages file has the Component as :- Components: Apps.Miscellaneous.!CPUClock (Movable) The install is actually in Apps.Misc, so the error is technically correct, there is no ‘Miscellaneous’ folder only ‘Misc’. |
Chris Johnson (125) 825 posts |
I have been wondering about this. I have just checked !Packit again. In the menu for Section there is no Misc option, but only the full Miscellaneous. Maybe I should edit the package to set the path to Misc rather than Miscellaneous. In the package itself the app is in the Misc directory, so there is a mismatch between the actual filepath and the contents of the control file. I will try modifying the package to see what happens, although the server won’t pick up the change until the small hours of tomorrow (hopefully) so the change is not going to be registered until tomorrow sometime. |
Steve Pampling (1551) 8172 posts |
That’s got all the hallmarks of someone starting with a setup that was compliant with pre-4.02 systems and deciding to just use modern long-file-names. |
Chris Mahoney (1684) 2165 posts |
Sorry – I’d edited the error message for length as I foolishly didn’t expect this to turn into a troubleshooting thread :) I found that if I create a Misc directory and try to install to there then it works. But if I try to install to anywhere else (eg. Utilities) then it fails. It sounds like that mismatch between Misc and Miscellaneous could indeed be causing that. |
Dave Higton (1515) 3534 posts |
I’ve just installed CPUClock 2.04 without using a package manager, on my BBxM. The high speed will not remain configured at anything above 600MHz. Any reason why? |
Chris Johnson (125) 825 posts |
Strange. I shall have to resurrect the BB-xm and give it a try. Added – It won’t be tonight though. |
Dave Higton (1515) 3534 posts |
Well, half an hour ago it wouldn’t stay above 600MHz; now the config is saying 1000MHz and I’ve just seen 1000MHz for the first time on the icon bar. I don’t know what’s going on. Does the chip temperature limit the configured top speed? |