This is a cache of https://discuss.96boards.org/t/recommended-heatsink-fan-for-410c/289. It is a snapshot of the page at 2024-11-01T03:23:02.754+0000.
Recommended Heatsink/Fan for 410c - DragonBoard410c - 96Boards Forum

Recommended Heatsink/Fan for 410c

Hi,

I’ve been testing the 410c on some processor intensive data streaming applications. It’s all been working relatively well, however the core temperature is climbing into the 80C range, and if left running it will oscillate approaching 90C. And left running for several hours I will return to find it has rebooted. I’m guessing this is a safety thermal shutdown. Does anyone know how to detect this after the fact? After the reboot I haven’t found any logs which tell me why it rebooted.

Related to that I’ve found how to poll the temperature in this thread: https://www.96boards.org/forums/topic/temperatures/

Is there documentation as to the maximum temperature the 410c is rated to? The HiKey board seems to have a much lower max temperature: https://www.96boards.org/forums/topic/maximum-cpu-temperature/

I have achieved noteably lower temperatures when compiling (~ 10C lower on average) using Copper heatsinks like this: http://www.sainsmart.com/3pcs-one-set-adhesive-copper-heatsink-kit-for-raspberry-pi.html

However they appear not to be enough. Are there any heatsinks designed or tested for the 410c? And does anyone know of an active fan which is compatible?

This is not an answer to OP’s question, but I have seen the same problem. The board reboots after sustained heavy CPU load (like 100% on all 4 cores).

I believe thermal throttling should kick in before the board hard resets. I am not sure how this is meant to be handled though (kernel level, firmware level, or something else?)

1 Like

hi,

the thermal throttling is using the in-kernel step-wise thermal governor. So it’s only kernel space driver/code. There are temperature maps/cooling range defined in the device tree. The kernel will monitor the temperature sensors and adjust the cpufreq accordingly.

There are 2 temperature sensors die used for that, TSENS4 is located ‘close’ to the CPU0 and CPU1, and TSENS3 is ‘close’ to CPU2/3.

we are going to run some tests to figure out what is happening.

I purchased the Tontec Raspberry Pi fan on Amazon and successfully installed it following the manual’s suggestion to get 5V from the gpio pin.

It’s keeping the temperature well down in the 76 degree C area. Laying it flat can get even more cooling, however it’s not as stable if I don’t wedge it.

With the fan installed I’ve seen one reboot. Unfortunately I don’t know what the final temperature was since I forgot to run the temperature monitoring remotely. The fan may have been knocked aside/jammed during that test so I cannot say conclusively that it did not get warm.

The other problem that I’ve observed is that I cannot successfully boot my USB sensor the Asus Xion Pro with the fan plugged in.

It’s rated to draw 100 mA and that pulls the 5V GPIO pin down to 5.0V from 5.1V when connected. With the fan connected the sensor will not initialize correctly or start streaming. However if I connect the fan after it starts streaming it will continue to operate.

Hi Tully,

we found a bug in the kernel related to cooling, that might explain unexpected thermal shutdown.

the bug is fixed in http://builds.96boards.org/snapshots/dragonboard410c/linaro/debian/26/ and beyond. and the fix is this commit: working/qualcomm/kernel.git - Qualcomm Landing Team kernel

When you get a chance , can you let us know if your application is more stable with this fix?

thx

I would like to play with possible heatsinks for the 410c. Does someone have a recommended app to load the CPU and GPU. Preferably something I can just apt-get and run.

When I tried last time, running four parallel yes > /dev/null and one glxgears was enough to cause a thermal shut down.

There might be a better way to stress the CPU/GPU though.

stress is a good tool for stress testing cpu, memory, IO, and harddrive.

I demonstrated what appears to be the thermal shutdown using the ubuntu image 107 with the command

stress -c 4 -i 4 -m 2 watching /sys/thermal/cpu_thermal0/temp I saw ~ 95000 shortly before shutdown.

Upgrading to image 111 running the same command the temperature is stable in the mid 70s with a maximum steady temperature at 75 degrees. It would momentarily hit 76 occasionally, and I did see it hit 80 instantaneously when I switched from 1 to 4 cores.

Note I removed the fan for the above tests, but the heatsink is still attached.

Watching the cpu frequency this appears to be throttling to 533/800 MHz. Adding the fan back allowed the clock speed to increase oscillating between 800 and 998 Mhz

hi, thanks for taking the time to make this tests on your end! the build 111 includes the same kernel fix that I mentioned earlier… so that really confirms the bug was there, and is fixed :wink:

No problem, it’s great to have a solution to test so quickly.

I’m testing our demo app now on the system inside the chroot. This is great as it means that the fan nor heatsink are necessary, though they improve performance by reducing the need to throttle the frequency. Running our point cloud streaming and basic following app, it is only slowing a little bit with the passive heatsink to about ~ 1.15GHz and maintaining 75C.

OK, I wrote a little script to stress the CPU, and at the same time to display the core speeds and temps.

stress -c 4 -i 4 -m 2 &
sudo watch -n 1 \
cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq /sys/devices/virtual/thermal/thermal_zone*/temp

With the bare board sitting on my desk it runs about 800MHz or slower at 78 or 79 degrees. I have a 8GB swap area mounted on the SDCard so this will affect performance of stress compared to a board with no swap area.

Note: the board I am using is latest production and it has an EMI shield over the CPU so it is not easy to connect a heatsink directly to the CPU. Connecting to the EMI shield won’t do a lot of good because of the small air gap between the EMI shield and the CPU. Even without the EMI shield, adding a heatsink on the top of the board will block attachment of mezzanine cards. Fortunately the 410c board was designed to allow attachment of a heatsink even with the EMI shield in place.

Look at the bottom of the 410c board you will see a gold square underneath the CPU. This is intended for the attachment of the heatsink. It makes very good thermal contact to the CPU chip through the copper layers inside the board, and the 760 balls under the 410 chip.

You will need a 25x25mm x 5mm thick thermal conductive pad, (Digikey part number 1168-1557-ND), four 4mm tall standoffs M3 (Digikey part number 952-2006-ND), four 4-40 screws about 1/2" long (Digikey part number H843-ND self-tapping, or you can use regular 4-40 screws if you have a machine tap handy), a drill with a 3/32" drill bit, and a heatsink ( http://www.heatsinkusa.com/2-079/ 2.079" Wide Extruded Aluminum Heatsink. Choose options, select 4" long, then in the special instructions box ask for it to be cut to 3.3 inches long).

Place the 410c board on top of the heatsink, mark the locations of the 4 mounting holes, drill all four holes 3/32" diameter, tap the holes by driving in the screws (I actually used a machine tap for this operation, I didn’t try it with the self tapping screws). Place the thermal pad onto the 410c over the gold rectangle, place the 4 standoffs onto the heatsink over each tapped hole, place the 410c over the standoffs, and install the four screws. Since the standoffs are 4mm tall, and the thermal pad is 5mm tall it will get crushed 1mm and make good thermal contact.

Results: the bare board runs at 800Mhz or lower without the heatsink, and at 1.1GHz with the heatsink (no fan). Your results will vary depending on the ambient air temperature and the local air currents. Your actual compute load will make even more temperature-speed differences.

Full Disclosure: I am an employee of Qualcomm Canada and any opinions expressed in this or any other post do not necessarily reflect the opinions of my employer.

ljking, thanks for the detailed explanation!

Created a document on Element14 community based on the advice from ljking. Would have posted here but Jive is so much easier to use:

https://www.element14.com/community/community/designcenter/single-board-computers/blog/2016/02/01/cooling-the-dragonboard-410c-and-ifc6410p

Someone should offer these as pre-drilled/threaded kits complete with all necessary parts. Would it be 96boards, Arrow, or some other 3rd party that would have to sell it? The easier you make it for the community, the faster it grows.

I’d like to possibly produce these, as I really believe in this board, but feel it needs a helping hand to get it to the community.
I would also be really interested in becoming a UK/EU stockist as it was a nightmare, tax and shipping wise, getting it from Arrow.

But my main reason for the reply other than to say thanks to everyone for this thread, is to ask if there is a standard part for the high-speed connector, as I’d like to provide an optional breakout cable for people… I also want to do audio in various forms including 3.5mm and high-speed, but I believe this shouldn’t be too difficult, correct me if I’m wrong, I was thinking of breaking out highspeed to various usb/i2c/spi/audio/whatever-was-listed-in-the-spec in a couple of combinations :slight_smile:

–EDIT–

In the linked document in the above post, it mentions the special instruction asking to get them cut to 3.5", where as the Canadian advises 3.3", was there any reason for this?

3.3" should be fine. I specified 3.5" length because I didn’t have a drill press at the time and wanted a little more space if I made errors. 3.3" is closer to the edges, 3.5" leaves like 1/2cm on each side. width-wise, one side is going to hang over a bit no matter what (your ports side).

Page 24 for exact measurements of hole placement for the 410c.

I don’t mean to regurgitate this thread but has there been any efforts to get this bottom mounted heatsink for the 410c mass produced? All other SBCs either come with a heatsink or can have a generic one stuck to the topside of the board. 410c is an oddball when it comes to cooling and it actually needs it. This seems like such a basic, needed, and trivial thing not to be overlooked. I was just viewing YouTube on it the other day and feeling the heatsink, greatful that I had the thing installed. Now QCDN is holding a maker contest giving away 410Cs. Wouldn’t make sense to have a cooling kit available before folks start benchmarking a throttled 410c with no cooling? I really can’t understand why there has been no effort from Qualcomm, 96boards, or Arrow, or any 3rd party to make a cooling kit available. Now with the C1, RPi3, and Bubblegum out you would think there would be some urgency in at least getting the 410c functional but nope, nothing available sorry, we’ll just have to deal with a 400-600MHz loss because no one wants to do anything about it.

Hi, I have now spoken to a local UK Aluminium supplier who can supply and machine these as well to exceptionally high tolerance. So far we haven’t got an identical extrusion fin profile however we are still searching, and potentially can order from the US if required.

I was going to use the 96boards.org Mezzanine board KiCad diagram from Linaro to plan the size of the heatsinks and cutting holes, and planned to supply the heatsink with screws (the holes in the aluminium will already be tapped) as recommended in the guide, and/or potentially with screw-in standoffs (similar to http://www.ebuyer.com/124144-startech-50x-pack-jackscrew-standoffs-6-32-to-m3-screwnutm) to facilitate a mezzanine board, although I suppose it might be worth leaving that up to the end user.

Any thoughts?

I’m not planning to make a profit on these, just facilitate adoption.

p.s. Sorry for the delay, I’ve been snowed under at work and my dragonboard time has all been spent in logic level conversion experiments.

Hi @tyeth@lelan.co.uk

There is nothing magic about the fin configuration I selected, it just happened to be what was available cheap. That particular heat sink has the fins fairly close together and is really designed for use with forced air. For free-air applications (like the 410c), fins that are spaced further apart would be better. Free-air requires enough space for convection, when the fins are too close together the viscosity of the air prevents it from circulating. Fortunately the heat sink is overkill for what is needed so it works even without forced air.

As to using male-female standoffs, I to would have preferred that solution, but I couldn’t find M2.5 or #4-40 standoff that was less than 5mm (about 4mm is good), you need to ‘crush’ the 5mm tall thermal block to make contact. I elected to use tubular standoffs because they were available in 4mm. In theory the thermal block could be crushed a lot more (down to 1mm) to make better thermal contact, but I was worried about mechanically stressing the PCB, 4mm makes good enough thermal contact and the board is not bent significantly.

The #6-32 standoffs in the link above are too large, a #6 (or M3) screw won’t go through a 2.5mm hole, and the body is too tall (6.35mm).

For a heat sink cutting pattern, you should use the mechanical drawing in the CE Board spec (link to the spec is on the 96Boards home page), using the KiCAD pattern assumes that whoever generated the KiCAD file did it exactly correct, whereas the drawing is, by definition, correct.

Full Disclosure: I am an employee of Qualcomm Canada and any opinions expressed in this or any other post do not necessarily reflect the opinions of my employer.