Using Odroid XU4 fan on VisionFive 2

It’s not very well centred but the line from hole to hole does pass over the JH7110 so between that, the thermal paste, and the sprung pins, the XU4 fan does seem to make good contact. Even running 4 cores at 100% for hours I didn’t see the temp exceed 32 degrees C.

I can confirm all that.
Just below 50 deg in idle with that low profile copper heatsink.
Below 35 deg now with a noctua 12 (!) V fan, that has issues spinning up but then stays on and is indeed silent :slight_smile:

I used a modified 40x40mm heatsink/fan combo. The holes were in the right place for me. My big issue was with a 40x40mm heatsink, the POE connector is in the way so I have to cut off a piece of the heatsink.


While waiting for the Northbridge heatsink to turn up I ran a few tests with and without the hillbilly heatsink. Turns out that pretty much anything other than just the heat spreader on the CPU makes a significant difference to temperatures. With no heatsink I’m getting an idle temp of 45 degrees rising to 54 degrees after 2-3 minutes at 100% CPU, which then drops fairly rapidly to 50 when the load is removed and then slowly decays back to 45.

With the hillbilly heatsink, which is nothing more than about 10cm of aluminium rod, the temperature drops to 32 degrees when it’s dropped onto the CPU and then slowly creeps up to 42 degrees, so three degrees cooler than with nothing at all. With the same 100% load it only goes up to 45 degrees, the no-heatsink idle temperature, and then decays back to 42-43 degrees over half an hour or so.

I’ll report the figures for the NB heatsink when it’s set up, it’s probably got about the same mass as the hillbilly heatsink but a vastly larger surface area so I’d expect it’d run a few degrees cooler and recover much more quickly.


So the Northbridge heatsink turned up, from this Aliexpress seller in just over a week which was pretty impressive. It’s a standard pushpin heatsink, I added a piece of Kapton tape over the HDMI connector shield because the heatsink touches it:

With the heatsink on the initial temperatures are the same as the hillbilly heatsink, eventually stabilising at 38 degrees after about 45 minutes. The 100% load takes it up to 40, which drops back to the stable temp of 38 after about ten minutes.

So it’s definitely worth dropping one of these cheapie Northbridge coolers on, it drops the maximum temp by nearly 15 degrees through purely passive cooling. Given the effectiveness, I don’t think active cooling is necessary unless you’re doing something like video transcoding 24/7.


Just wonder what is your room temperature actually? I use passive heatsink without AC, so room temperature was around 34C, and then make -j4, the CPU heated up to 75C very quickly.

1 Like

This thread reminded me to check the temp of my cooling solution I had installed. Boy, glad I checked. I used some cheap raspberry pi 4 heatsinks that had thermal tape on them. I installed lm-sensors and despite the heat sink AND a noctua fan blowing on the CPU, i was at 62 degrees C. I ripped off the cheap heat sink and only had the fan blowing on it, and I’m down to 39.9 degrees C. The heat sink was more like a blanket!

I just bought some thermal glue and I’ll give that a try, unless someone has better suggestions and/or heatsinks that are worth trying. Those odroid fans aren’t as easy to get as I’d like.

I then ran Geekbench and w/ just the noctua fan blowing on the CPU, it stays around 45 degrees C.

1 Like

Ah, good point, I was just interested in the performance difference between the different types, i.e. was it worth fitting a heatsink and if so what, but others might want to know the absolute change from baseline. So the room temperature was 21-22 degrees C at the time, I’m assuming the board would have been sitting a bit above that because of all the electronics on it. In my case idle with no heatsink would be something like 20-25 above ambient, not unreasonable.

I suspect a lot of thermal tape isn’t, it’s just plain (thin) double-sided tape because that’s much cheaper and easier to make. Try it without the tape and the heatsink pushed down a bit to make good bare-metal contact, which is what my hillbilly heatsink was, it was just the weight of the heatsink pushing it onto the heat spreader.

In terms of what to get, a NB cooler with pushpins seems to be the best option, see the link in my earlier post for one with movable attachment points since the VF2 board doesn’t followed the standard layout for NB coolers.

1 Like

Do the pushpins not disturb M.2 underneath?

1 Like

What M.2? :-).

I’m using an SD card, I’m only using it for cross-platform development work so couldn’t see a need for an M.2 or other SSD-style storage. If anyone’s concerned about it I could take a photo of the underside with the pushpins, although I’m not sure how obvious any possible obstruction will be since it’s all very low-profile.

1 Like

Yes, unfortunately! Especially the nipple that sits close to the M.2 connector is very annoying. I immediately removed my SSD and ordered a set of several small heat sinks. Also, due to the adjustable retaining nipples, the heat sink seems to sit on the CPU with varying pressure, creating a tiny gap on one side. Only the heat-conducting self-adhesive pad has created some contact; it would probably look worse with heat-conducting paste.


By coincidence, someone’s just posted a test of different TIMS for coolers. There are some TIMs that perform significantly worse than ketchup or toothpaste, about the same as a slice of cheese or potato.


Some pushpins don’t - if you have some that are quite low-profile then they can sit under the M.2 drive comfortably. I did install the pushpins without the M.2 drive installed so that I didn’t accidentally “punch through” to it when squeezing the pushpins in.

In the image you can see there’s at least a couple of mm clearance between the pins and the M.2 drive:


Great. And that’s the Odroid XU4 fan you mention above? Can this be purchased independently?

And that’s the Odroid XU4 fan you mention above?

It is.

Can this be purchased independently?

It can be bought standalone, yeah - I got mine from Odroid Cooling Fan XU4 but it also seems to be available here: Cooling Fan XU4 Blue – ODROID (not sure where you’re located - in the UK I ordered mine and got it the following day).

Went ahead and ordered the XU4Q one (fanless, taller). Elsewhere, due to location/shipping.

It’ll likely take a couple of weeks to arrive, but I’ll be sure to do some load testing without and then with.

Fingers crossed about the mount tabs not being gigantic.


Update: XU4Q heatsink arrived. This is a fully passive solution.

I used Artic MX-4 as thermal interface.

Test: nbench, 4 threads, infinite loop: while [ 1 ];do ./nbench;done

Ambient temp: 24C for both tests.

Time: checked both at 15m mark.

From /sys/class/hwmon/hwmon0/temp1_input

w/o heatsink: 72282 (72.3C)

w/ heatsink: 55807 (55.8C)

It seems to do the job, no fan needed.

There is some 1-2mm clearance, eyeballed, from the height of the M.2 screw to the heatsink retaining clips.

edit: I have now installed an SSD (Patriot P300) w/o issue.


In the meantime, I ordered a Heat sink with fan for Odroid XU-4 - blue for each of my two VF2s and they were delivered within four days. And Botland sells cheaper and without penalty fee. I have combined the heat sinks with one NF-A4x10 5V PWM each, which I am still controlling with an Adafruit EMC2101 I2C PC Fan Controller on a Raspberry Pico W for the time being.

But I want to try if I can control the PWM fan directly on GPIO46 using Kernel driver pwm-fan.

VisionFive 2 40-Pin GPIO Header User Guide

Intel spec for 4-Wire PWM Controlled Fans

I would like to warn you not to connect normal 5V fans with two pins directly to a CPU, only real PWM fans with separate power supply and PWM control input may be used!


I had specially ordered the same cooler that you use, but my M.2 drive was still bending, although now much less. After I took another look at your photo, I realised that your M.2 drive is not equipped on the underside.

I wouldn’t have ordered the 512GB NVMe with cache for the VF2 at Christmas if my employer hadn’t given me an Amazon voucher. Now I’ve ordered a 256GB NVMe without cache because it’s single-sided and this one doesn’t bend anymore.