Some personal stuff - and prototypes building!


That's easily achieved/designed. The crux is to design the cooling solution, so that that stable point occurs at a desirable temperature - say somewhere below the SoC's temp.-cap. ;)

Heh, yeah ;) Capping the SoC is the easy thing ,)
 
A few notes to help English speakers interpret the above...

A heat sink is a block of material that heats up. These are good to regulate temperature surges in a system. A heat reservoir.

If that block transfers heat to or from another system, it is a heat exchanger. These take lots of forms.

A heat exchanger that transfers from solid to air is generally called a radiator.

A solid strip of metal connecting a heat source to a heat sink or radiator is a thermal conductor. ED is calling this a heat pipe - it is not, but the word is close enough that most of us know what he means.

A tube filled with flowing thermal transport fluid driven by fluid dynamics is a heat pipe. These absorb heat at one point then physically move the hot molecules to another point to then loose that heat before returning (if closed loop).

The aluminum pieces with fins ED has are acting as heat sinks in this application. They give the surges of heat from the SoC someplace to go to hopefully be dissipated over an extended period of time.

Lets not get too hung up on technical thermodynamics and it's terminology here though. ED has a solution - lets see how well it works.
 
Ok, let me ask different: there is no modern Smartphone that has a thermal solution that is powerful enough to run the CPU for a long time under full load? Like a normal PC can for instance? Or asked the other way round: all modern Smartphone CPUs are basicly to powerful to be built in such small devices? xD
Just read about the LENOVO Thinkstation P320 Tiny: "Silently cooking the processor."
 
Agreed. I still think that if he expects to use those fins to remove hot air from the system, he ought to try spinning the heatsink round from the way it's shown in that photo though.

But they are not readily available like that. The copper one is available like that (with the single fins), but not the aluminium ones. The aluminium ones are wider though.

As a last resource this will be still better than throttling.

Umm... but a thermal cap is basically throttling. If the cap it reached, it throttles the CPU so it cools down again.
How else would you achieve that?

Throttling done RIGHT works pretty well - but needs to be coded.

At the moment, Linux lets the SoC run with max power until it reaches a max. temperature. Then it immediately throttles to 300MHz until it gets below a certain temperature again. That does NOT make sense, as it would slow any emulation, game, etc. down horribly.
So for example: Do nothing until the temperature reaches 80°C, then throttle the CPU to a horribly slow speed until the temperature reaches 60°C again. Not a good user experience.

The proper way would be, to have a daemon take care of the heat / frequency relation.

For example, don't throttle when the max temperature has been reached, but throttle earlier (but less ) as soon as a given temperature has been reached.

As an example:
The max. CPU frequency is set to 1.5GHz and the system heats up.
Once the SoC reaches 60°C, throttle the frequency to 1.4GHz.
If it reaches 63°C, throttle it to 1.3GHz.
If it reaches 66°C, throttle to 1.2GHz.

This would continue on, until the throttling reaches a speed, where it won't increase the temperatur anymore, Thus you have the maximum possible speed without overheating and without sudden heavy throttling. It's subtle.
This would allow the system to be continously used with full power (as short maxing out of the CPU won't increase the temperature high enough to throttle), and it would allow to max the CPU power in regards to the temperature.

Anyone here who wants to code that? :D
 
The vanilla device tree only handles 1 and 1.5GHz for now.
The CPU voltage changes between those frequencies, we need to calculate the intermediate values.
 
I failed to express properly there. I didn't meant thermal cap, I mean CPU frequency cap. Like CPU capped at 1.2GHz or some other suitable frequency so that throttling can be avoided.
However I like the idea of writing a daemon as per your example, and I think it should not be very difficult, as it is just simple logic. An ugly version can be easily written using bash with a while loop and if or case statements.
 
Last edited:
The vanilla device tree only handles 1 and 1.5GHz for now.
The CPU voltage changes between those frequencies, we need to calculate the intermediate values.

I think it also can do 500MHz, but maybe the device tree for the IGEP is a bit different?
 
Obviously we will need a script like ED detailed above running in the background to ensure that nothing heats up to de-soldering temps.

But - why do I want a secret button combination to manually set the 'upper limit'? I realize that the OMAP is designed to run fast in sprints and that I would only be limiting what it can do during those short processor bursts. But - part of me also wants to have an app where I press all four shoulder buttons at once + 1234567890 to strangle the system to 10% - 100% processing 'power'.

It might be pointless - which may be the point.
 
Obviously we will need a script like ED detailed above running in the background to ensure that nothing heats up to de-soldering temps.

:D That won't happen. I was running the OMAP5 with full cpu stress for 2 hours on the devboard without heatsink.
It reached a surface temperature of 130°C, but maxed out there. That is HOT, but not hot enough for any de-soldering
 
:D That won't happen. I was running the OMAP5 with full cpu stress for 2 hours on the devboard without heatsink.
It reached a surface temperature of 130°C, but maxed out there. That is HOT, but not hot enough for any de-soldering

So, inquiring minds want to know...
What did it do when it hit 130°C? Did it self-throttle? To what speed? Did it crash/dump?
 
So, inquiring minds want to know...
What did it do when it hit 130°C? Did it self-throttle? To what speed? Did it crash/dump?

It just kept running. It was a very early build of TIs testing OS, I don't think it had any throttling in there yet.
 
But they are not readily available like that. The copper one is available like that (with the single fins), but not the aluminium ones. The aluminium ones are wider though.
I think I might be getting lost in translation here. I just mean turning the existing aluminium 90 degrees (a quarter turn) either way so that the ends of the fins sit further from the adjacent plastic stop, allowing more air in and out. No new part needed.
 
It just kept running. It was a very early build of TIs testing OS, I don't think it had any throttling in there yet.
So it managed to reach thermal equilibrium self radiating to the room without a heat spreader, heat sink or radiator - just a naked SoC to the room? I would not have expected that.

Once you have these all buttoned up, we need to take one ore more and run full-tilt 100% CPU clock until it either reaches steady state or whatever TI lists for the maximum that the SoC can handle - and let it keep doing it for an hour or two. Stress testing.
 
What would be max safe temperature for pyra that it can hold for long duration without any physical damage ?

I think 130 degree on devboard was without case. With case the same stress may lead to much higher temperatures, may be even with heat sink.
 
I think I might be getting lost in translation here. I just mean turning the existing aluminium 90 degrees (a quarter turn) either way so that the ends of the fins sit further from the adjacent plastic stop, allowing more air in and out. No new part needed.
Air isn't really circulating in there anyway. What little heat this is going to radiate is heatsink -> air -> case -> air. The heatsink is mostly a heat flow regulator (heat storage/surge) in this.
 
This would continue on, until the throttling reaches a speed, where it won't increase the temperatur anymore, Thus you have the maximum possible speed without overheating and without sudden heavy throttling. It's subtle.
This would allow the system to be continously used with full power (as short maxing out of the CPU won't increase the temperature high enough to throttle), and it would allow to max the CPU power in regards to the temperature.

Anyone here who wants to code that? :D
That sounds like a job for a cpu-freq governer to me. You also want the on-demand behaviour there I assume, such that if the CPU is running idle, it drops the clock speed to save battery life, but when it is running it monitors the CPU core temperature so that it runs as fast as it can within thermal limits.

I note in the example there, you seem to think that at 1.2GHz it must be cooling off. That seems surprising to me, so I suggest we need some testing of that to be sure.
[doublepost=1555525393,1555525097][/doublepost]
Air isn't really circulating in there anyway. What little heat this is going to radiate is heatsink -> air -> case -> air. The heatsink is mostly a heat flow regulator (heat storage/surge) in this.
Yes, but on the previous page, ED said he thought the fins on the heatsink were going to heat up the adjacent air. Hot air is more excitable than cold air, so tends to rise and become slightly more slippy, thus will tend to escape from those fins and get replaced by cold air, although the rate of flow will depend entirely on exactly how hot it all gets. I'm just suggesting you don't block off the ends of the vanes if you can avoid it.
 
Back
Top