Cooling with mezzanine


I’m going to redesigning a mezzanine for a client soon and want to take the opportunity to improve the rather pool cooling solution we had in place. We are using the Hikey960 and it runs really hot. Using a tiny flat ceramic heatsink and a tiny 17mm * 3mm fan sandwiched between the mezzanine and the Hikey960 that sucks air through a hole in the mezzanine, along with a few additional of those tiny fans in the casing, we managed to stabilize the temperature around 80 degrees Celsius, but this meant throttling down the HiKey to ±900 Mhz.

We had another iteration that involved running a heatpipe between the mezzanine and the HiKey which performed slightly better, but this tunred out to be an engineering nightmare with regards to the enclosure.

For the next version, I’m planning to fixate a milled block of copper or aluminum between the SoC and the mezzanine, to guide heat to the mezzanine PCB, which then itself act as a heatsink, optionally with additional heatsinks on top of that.

I’m wondering if anybody here might have experience with this approach, or possibly an alternative simple solution.

Our application is a Unity application that uses a lot of GPU time, hence the heat.


There’re some related topics around (e.g. Cooling the hikey960, a better solution than most).

I would personally recommend a bigger heatsink, and since you design your own mezzanine, I suppose you can increase space between the mezzanine and the Hikey960.


Thanks, that’s a nice topic, allthough I’m not a fan of fans. This SoC was designed to be sandwiched between PCB and a metal phone frame with no fan in place, so I think the best results can actually be achieved like that. I was inspired by and article by Intrinsyc about how to best cool their SOMs:

A Hikey960 could in that context be regarded as a large SOM, with the main problem actually being bridging the gap between SoC and carrier rather than making it bigger.


Could be yes, actually this is a thermodynamic problem, the goal being to transfer maximum heat from CPU to something else. Multiple parameters affect this, contact surface, material, air temp…

If you go with this solution (mezzanine as a dissipator), I would be really curious about the results.


Don’t use a block of copper as a conductive sandwich material. If you want to conduct heat from the top of the SBC up into the mezzanine, use a thermal pad.

Here’s a 10mm pad which will compress down to the proper size when assembled:

Just cut a chunk of that and stick it on the top of the SBC before installing the mezzanine, and it will conduct heat upward. Same goes for the BOTTOM, which may actually be more effective in cooling it than the top is. You need to remember that the SoC/RAM is in a PoP configuration, which means that heat out has to make it THROUGH the RAM, which is a somewhat insulating plastic package. The thermal conductivity from the SoC down into the copper clad board may be better.

Now regarding the “intended use”, i.e. cellphone, you need to recognize that in cellphone use, you aren’t going to be running it at its maximum capacity for extended periods of time. In a cellphone, you will have very brief bursts of high performance, and then back off to virtually nothing.

For my own use, I’ve found pretty good cooling by epoxying a 5mm heat sink to the SoC with its fins oriented in parallel with the headers on the SBC, and I have a quite large 60mm 5V PWM fan blowing ACROSS the SBC in-line with the fins (i.e., it blows between the SBC and the mezzanine). The fan cools not only the heat sink, but also both sides of the board itself.


The thick thermal pad at least looks like an easier to assemble part than a solid block of metal :slight_smile:
What do you think the impact is of removing a 17mmx17mm square of soldermask right above the SoC, so heat reaches the copper easier? Also perforating that area with vias.

I hope we can talk our client into upgrading the mounting frame to aluminum, so we can guide the heat there. The previous one was 3D printed so that didn’t do much…

I don’t agree with you that cellphones don’t run at max capacity for extended periods of time. IMO that’s exactly what (young) people do these days while playing their games. Our application actually has a similar use profile.

We have these fans in our design now, but they really don’t fit the product with their annoying noise.


One of the reasons to use a PWM fan is in dealing with the noise. Tie the duty cycle to the cpu temperature.

Edit: And I’m not asking you to agree with anything. I’m telling you how things are. Further, little kids playing video games are not a representative population. If you want to see how a phone performs under long term stress, there is plenty of software available that will beat on the CPU while monitoring temperatures. Even a Pixel 3 will heat up and throttle when you run it continuously.

And actually, a phone that is more likely to be in the hands of a kid will generally have a lower power (less expensive) CPU (i.e. snapdragon 429, 630), which won’t generate nearly as much heat.


We are using these tiny 17mm x 3mm sunon fans because there wasn’t more space available. We used them in the 2-wire version because cooling was much more of an afterthought and just slapped them on. Then again, looking at how steep the temp curve is, I don’t think added PWM would have much of a difference.

Anyway I like your suggestion about considering the back side of the HiKey PCB. We have a display LCM with a nice large aluminum backplate sitting right on top of the backside of the HiKey. I think I’ll also order some 4-5mm thick thermal pad and stuff that in between :slight_smile:


Sinking heat from the underside is an interesting idea and certainly worth a try.

Some of the 96Boards are deliberately designed with this in mind (copper layers within the board specially placed there to help get the heat out). Unfortunately hikey960 doesn’t have this feature so I guess a thickish pad on the back will be needed there too.

Would be great to hear how you get on (if you are allowed).


I’ve just ran some quick tests with the thermal pads and the first results are very promising. Without any heatsinks, our application quickly heats up the main cores to 80+ C, which makes the cores throttle back to 903Mhz. With a small block (2.5cm x 3cm) of the thermal pad between SoC and the mezzanine (which itself wasn exactly designed to conduct heat this way) the temperature only reaches 70 within the same timeframe. Then I put a similarly sized pad between the back of the Hikey and the display panel and now the temperature was only 53C after the same time period. When ran longer, the conducted heat in both pads and their connected surfaces seems to saturate, which makes the cores still go to 80+C.

So while conductivity seems excellent in not even such great conditions, there still needs to be a way to dissipate the heat. But, that’s much easier done from the outside than from between the mezzanine and HiKey.

Another thing that will probably improve the performance is to bolt the HiKey and mezzanine together using the screwholes, so you can use thicker pads and press them together more firmly. Now I actually ordered the pads too thick and had to slice them down, which obviously didn’t work out great :slight_smile: .


So right now you are able to spread the heat more widely but work is still to be done to transfer it into the air?

Promising start! Thanks for the update.


Yeah I think I can do much better. While I was working on a schematic, I was just toying around with those pads and it turns out the stuff is completely mouldable into any shape, like putty. So you could just basically fill up the whole space between SBC and mezzanine to spread and conduct heat anywhere.


Is it possible to plus one extra fan so can help to dissipate heat from surfaces?