Cooling the hikey960, a better solution than most


#1

It’s a well known fact that the Hikey960 get’s HOT when under load, and the tiny heatsink doesn’t do much, which then results in aggressive thermal throttling to stop the magic smoke from escaping.

Now previously I’ve tried a bunch of solutions including some Big 'ol heatsinks with tiny 5v fans, although most of them have worked my main concern has always been that mezzanines do not fit if you have a Big 'ol heatsink installed.

so this 4.5mm tall side blowing fan seems to be the best solution to me at the moment: https://www.geekbuying.com/item/Slim-High-Speed-Cooling-Fan-for-Geekbox-358271.html

  1. its really thin and blows out air from the side rather than from the bottom.


  2. It sits on the side of the heatsink rather than on top, hence allowing more space for mezzanine boards to fit in comfortably, an issue that was there with using Big 'ol and tall heatsinks

So, how do the benchmarks look?

I did not perform a bunch of benchmarks, just geekbench 4

Without the fan:
Single core: 1589
Multi core: 2262
Max temp: 77c

With fan:
Single core: 1714
Multi core: 4242
Max temp: 77c

Although the max temp was the same in both cases, adding the fan meant the CPU was thermal throttling a lot less with almost twice the score in the multi-core benchmark.


#2

I don’t know much about geekbench but the multi-core improvement looks quite impressive. Next step, fan-mezzanine ? :wink:


#3

@loic, For fan-mezzanine, Daniel Lezcano has brought the suggestion yet for mezzanine board :slight_smile: in case you guys are interesting in it:

I think @ric has noticed that yet.


#4

That looks like its a bit too thick, its not letting the mezzanine sit all the way in.

I’ve also been looking into getting better performance out of this board, it was something of a shock to see just how quickly these CPUs heat up, and this is what I’ve come up with;

Instead of the tiny little mostly useless copper heat sink it comes with (which seems to be more for increasing the thermal inertia than actually improving cooling), I’ve gone with this much larger aluminum heat sink instead;

It is about the biggest thing you can fit in there without interfering with anything. It fits the hikey960, but may not fit other boards that have taller components than the CPU. Initially, I’m sticking it on with the included semi-conductive sticker, which is spec’d at 0.6 W/mK, which is actually pretty terrible. I’m waiting on arctic thermal epoxy which is spec’d at 9.0 W/mK.

For active cooling, I’m using https://www.amazon.ca/gp/product/B01G20PGOQ – 60 mm 5V PWM fan. I’ve got it hooked up to seeed sensor mezzanine with a PWM signal generated by the ATMEGA to vary the speed with the CPU temperature.

The result is that it takes longer for the CPU to get up to throttling temperature, especially under moderate load. For instance, gmaps previously would drive it up to throttling temperature almost instantly, but now gmaps won’t bring it up over 50.

Stressing it out with something like StabilityTest will still heat it up as it stands now. I’m hoping that better conductivity will take care of that, but of course, that isn’t even indicative of real world usage. Gmaps is much more indicative of that, and gmaps no longer throttles it at all, so usability is dramatically improved (and in fact, the device is a heck of a lot more “fluid” now – feels like my P2XL).


#5

Which way did you orient the board?

If you have a full sized mezzanine on the top and sufficient the height in your enclosure so you can orient the board with the long side vertical then those heatsinks look like they could get a nice chimney effect going.


#6

Its the seeed mezzanine. Full size. My application doesn’t really give much choice for orientation, and the environment is somewhat hostile to begin with, so active cooling is definitely the way to go for me. For others though, yeah, letting gravity do its thing may be adequate, or at least improve things somewhat.


#7

The thermal epoxy finally arrived. Temperature has dropped about 5 degrees C under light loads. No “normal” use will bring it anywhere near to throttling. When I hit it with stabilitytest, the scaling seems to be pretty modest. The big cores mostly sit at 1805 MHz, occasionally and briefly dropping to 1421.

If I set the little cores offline, it sits at 2112 with the occasional drop to 1805.


#8

I was thinking about cooling the whole board down to minus 20 degrees C. Should i expect any negative effects on its operation ?


#9

-20 is well below the operating range of most commercial grade electronics
although I think that’s mostly because they have no means to manage
frost… which will melt and cause shorts.


#10

I’m testing some cooling as well, using the same “Easycargo Anodized Aluminium Heatsink” as @doitright, as well as a dual-fan cooling system for the Raspberry Pi available here: https://www.amazon.com/Raspberry-iUniker-Heatsink-Copper-Compatible/dp/B075R4S9GH/

Temperatures were monitored while running a Vulkan-enabled app (Bloom) for ~5 minutes and a cooldown of ~5 minutes. Available here: https://github.com/SaschaWillems/Vulkan

Build using: python3 build.py bloom
Start using: monkey --pct-syskeys 0 -p de.saschawillems.vulkanBloom 1
Measure using: while true; do cat /sys/class/thermal/thermal_zone0/temp; sleep 1; done

Measured in celcius over a ~5 minutes p, device by 1000. Passive spiked to over 82 degrees C, while the dual-fan cooler maxed out at around 72 degrees C.

Passive heatsink

Dual-fan + passive heatsink


#11

Passive alone won’t work well, since the air against the heat sink will itself get hot and you end up with nothing. Gotta have a fan.

Also be aware that thermal tape is, while better than nothing, really is terrible at transferring heat. Proper thermal epoxy is an order of magnitude more conductive.

But while air flow is critical to making the cooling work well, it doesn’t need much air flow. A gentle breeze or a hurricane – makes no difference as long as the total amount of heat that you need to dissipate (which means the total amount of heat that actually makes it through the RAM) doesn’t exceed the capacity of the air to transfer away.

So that “dual fan” thing is just silly.

And note that with that thing stuck on, its game over as far as any mezzanine board goes.

And of course, you’re doing nothing to cool the BOARD – your heat sink will actually block air from reaching the board, which is responsible for a large portion (most?) of the cooling.

What I actually did, if you would read the description rather than just click the link, is;

  1. Cleaned off the crummy tape from the heat sink and glued it on with thermal epoxy,
  2. Added a fan that is perpendicular to the board standing beside it, blowing air across the heat sink and both sides of the board,
  3. Added PWM fan control via the ATMEGA on the sensor mezzanine board.

I have it set to turn the fan ON minimum speed when the CPU temperature reached 40 C, and scale up to maximum at 65. Each step shuts off 5 degrees below its startup temperature, so it steps down from full speed when it crosses below 60, and it shuts off when it crosses 35.

The fan is most of the time off, and you have to really beat on it before it throttles at all, which really means that you have to run a stress test on it.


#12

Oh I agree, the dual-fan setup is terrible and it’s already been packed away - this was simply to provide more tests across the board for others browsing through and to keep the conversation going; I replaced the tape as well, albeit I did not glue it onto the chip. There is no perfect solution, all depends on what you use your board for. But you provid(ed) some good information and I’ll keep tinkering :slight_smile:

(I did the same Geekbench test, without any heatsink/fan combo at all: http://browser.geekbench.com/v4/cpu/7957978)


#13

Well thank you, glad to help!

To be honest though, I think we’re up against a wall at this point, because the fact that the CPU is sandwiched in between the board and the RAM really limits the amount of cooling possible.