Heatsink/Fan for VisionFive?

Now that I have my VisionFive operating successfully, I am planning to start compiling code, but notice that the CPU/Memory starts to get a bit hot…
I have seen mention of a heatsink/fan, but cannot find how to obtain one. Are they available for purchase?
Robert Gadsdon.

The fan can’t buy yet,we will providing a link to purchase when the fan is ready to buy.

@rgadsdon that’s the one I got bundled with. The fan itself is kinda noisy so I swapped it with one from Noctua (Austrian manufacturer).
You will find the heatsink/fan also on Alibaba and the like.

Tomorrow I will hopefully receive an 52pi Ice Tower which is actually made for Raspberry Pi3+/Pi4 - likely overkill but at least not a single sign of thermal issues any longer :sweat_smile:

I agree, the bundled fan is not just noisy but emits a highly annoying frequency constantly even if it didn’t have to run at full speed (which it always does).

So before I start working on some GPIO-magic to get something like temperature controlled fancontrol to work I asked myself how well the heatsink of that fan itself would do.

Well, forget it when just attaching it like intended without powering it.

Then again, once I’ve added some Artic MX-4 thermal paste, put the fan on and not powering it, the sink alone left it hanging at just 52C in a 21C room temp after about an hour of:

cat /dev/urandom | zstd -T2 -vc > /dev/null

I call that a win.

Though, I’m not sure what the thermal specs really are… the information seems to be sorely missing to my eyes.

1 Like

Small update:

So I used GPIO pin 6 for ground and pin 1 for 3.3V expecting it to drive the fan at a lower speed. Together with the thermal paste it now runs at ~35C +/- 0.1C at 21C room temperature under full load.

The annoying high pitch noise is luckily mostly gone as well.

So yeah, I hope anyone looking for a “poor soul” solution using the stock fan finds this information useful. :stuck_out_tongue:

1 Like

@kth5 just out of curiosity: how did you measure the (core) temperature? IR thermometer or any accessible sensor of the board/SoC itself?
Thank you :slight_smile:

I simply installed lm_sensors 3.6.0 and used sensors and got the following:

Adapter: ISA adapter
temp1:        +30.2°C

When I blew on the heatsink without the fan running, it quickly changed for the better so I assume it’s a on-chip temp sensor inside or just under the CPU.

Thanks. Wonder what went wrong the last time I installed lm_sensors as it didn’t detect any sensor :man_shrugging:
Anyway, works now.

Can you provide info on the specific heatsink / fan you’re using? I’m eager to use this board as it’s frankly the only RISC-V board I have where compilers don’t crash at launch / whenever I push the CPU. But, as you said, the stock fan is obnoxious :sweat_smile:

I’m currently using an Enzotech CNB-S1 together with a Noctua NF-A4x20 5V running at 3.3V.

As the cooler is a little bit smaller than the fan I bought a custom aluminium fan mount as well as I wasn’t in the mood for 3D-printing :sweat_smile:

Temperatures never got higher than 30°C. Idle and load seem to be nearly the same around 27°C to 29°C with an ambient temperature of ~20°C:

$ sensors
Adapter: ISA adapter
temp1:        +27.0°C

This is lovely, thank you! I have to admit I’m pretty new to buying custom kit like this. I found sources for the fan and heatsink, but can you link the fan mount as well? I don’t have a 3D printing setup so that’s not an option for me. Again thank you so much for being so helpful!

Took me a while to find a suitable one as the measures are in no way even near to 40x40mm :sweat_smile:. In the end I contacted a RC car shop and I was offered a custom milled product exclusively for my needs.

1 Like

I have used two little fans instead of the one supplied which as infernally loud, though I used the heatsink in which the fan supplied was mounted. See www.whatwasitagain.com - down the page are listed the two fans.

Maybe this has already been answered, but is the two-pin power connector for the fan just a flat voltage or is it adjustable for speed stepping? In other words, could one write a stepper for the fan tied to the sensor’s reported CPU or would that only be possible by plugging it into GPIO instead?

I don’t know for sure, but by external sensations. When I use the Armbian\Altlinux version with the latest core, when the device is turned on, the fan turns on with the highest RPM, but after the system starts, the fan reduces the RPM and works (by ear) quieter than when it is turned on.

By the way, it is a very common misconception to use copper radiators, copper is absolutely useless and even harmful for use in radiators of these devices. The copper radiator has significantly more mass and creates a useless extra load on the mounting device, and has a high price. The difference between copper and aluminum, for heat transfer to air, is completely absent. The only https://forum.rvspace.org/images/emoji/twitter/stuck_out_tongue.png?v=12 important condition is the area of air contact with the radiator surface. If the contact area is the same - copper has no advantages, it is a lie that copper works better for cooling.

According to the schematic, this two pin is connected to the 5v directly and can’t be controlled.

Darn, that’s a shame, especially given the ubiquity of voltage-controlled fans. I guess GPIO or bust if you want stepping control.

I for one would like to see s similar type that would be parallel to and allow lots of clearance horizontally between heatsink and GPIO and similar in height to the Enzotech CNB-S1 is using, but made from aluminum. Made from Aluminum to avoid the bimetal interaction of heatsink to CPU. The reason for such a heatsink is to ensure there is no dependence on fan to cool CPU. This is very important even if CPU has throttling based on CPU temperature. A passive heatsink solution is important for applications that run 24/7/365 that a fan would not only fail over constant running, but allow cause alot of dust to accumulate that would significantly reduce the thermal transfer efficiently of the heatsink not to mention accumulate in fan further stressing fan leading to fan failure in relative short time.

I really like a fan for such a heatsink as well, but the fan would only run and at different speeds based on CPU temperature such as low, medium, high fan speeds for respective CPU temperature. As CPU temperature increases past a temperature set point for low, medium, and high the fan would increase in speed. The fan speed for low, medium, and high would also be configurable. Likewise as CPU cools with fan on the fan reduces speed and of course fan stops once below the low CPU threshold temperature.

What is great with mackenzy findings of CPU temperature are keeps CPU very cool which has many pluses besides CPU not throttling. One is for situations where ambient temperature/humidity are high to start, and less heat stress on CPU/other ICs protected by heatsink means long reliable life of board.

I know first hand the points and suggestions I have made first hand with a ODRIOD N2+ that has excellent heatsink as default of board design with option for fan. I have an N2+ with the fan. With fan the CPU never goes above 44C (all cores 100% for 20+ minutes) and the fan does not start at low speed until CPU goes above 35C, and only takes less than 5 seconds with fan on low to to stop after the CPU load is such that CPU temperature drops below 35C. The normal temperature of the ODRIOD N2+ with passive heatsink is about 24C. If I do not allow the fan to run with same CPU load the CPU temperature reaches about 52C, but takes many many minutes to cool back to the about 24C which is not by any means, but makes clear different in how fast the CPU temperature drops with low speed of fan and continues to drop quickly after the fan stops compared to not running fan at all.

Someone has suggested the fan connector on the VisionFive 2 is just a constant 5V. If that is the case that is very sad to hear. On the N2+ the fan connector is PWM so fan speed can vary based on temperature tips points and fan speed at the temperate trip point. The ODRIOD N2+ allows as many CPU temperature points as well as allows one to specify the fan speed for the trip point. If only VisionFive 2 could also have the fan connector as PWM it would save having to use GPIO pin for and the headaches of having dedicated GPIO hat for just the CPU fan that the ODRIOD N2, N2+, M1 and many other SBCs have to avoid the need for dedicated GPIO hat for fan which is very important for many I am sure use hats on the GPIO.

I know heatsink and fan solution I have commented about is important for 24/7/365 solutions to ensure not only reliability, but to handle what I am sure will be frequent short term, such as 5-10 minutes, of all cores of CPU at 100%. I know I am one of those, but application needs to process over 19 million records (not in data base) 10 times every 10 minutes.

after various experiments and since I love fanless devices I tried the youyeetoo metal case and I must say that in idle we dropped by almost 10 degrees and I am very happy not to have a fan constantly on if there is no need .

ah I added a 1mm thermal pad where the nvme ssd is and the case also cools the ssd without problems.

1 Like