Nanopi R2S overheating and throttling


ahtoh
 Share

3 3

Recommended Posts

Donate and support the project!

I have purchased Nanopi Neo 3 which is very simular to Nanopi R2S this week and after the installation of Armbian Buster 5.4 noticed overheating. After entering Htop, I found a process completely using the processor. PID 907 is the admin login for it, PID 898 is the root login for it. The command kill -9 898 or kill -9 907 solved the problem of overheating and 100% load. The processor temperature dropped to 66 degrees Celsius. 
Perhaps the next step will be the replacement of the installed cooling system with a DIY one.
I hope that my experience will help anybody else.

Link to post
Share on other sites

This is the final solution I ended up with: metal case + old 939 stock cooler.

du046P.jpg .

 

 

I was not totally satisfied by the metal case only, probably also because I keep the nanopi in a closed environment with no air circulation. Previously I tried also the heatsink with the small fan, but it's rather noisy and doesn't help a lot if you still use the yellow case.

Link to post
Share on other sites

Hello,

I am have using a Neo3 for a week now. My idle CPU temperature (reported by htop) is 60°C with a room temperature of around 25°C.

I have the default white case, supposedely with a heat sink inside

Product bought there https://www.aliexpress.com/item/4001260840189.html

 

I also think this is kinda high, but I understand the lack of fans and small enclosure doesn't help.

That metal case is interesting, a model for the neo3 would be great!

Edited by RedShadow
Link to post
Share on other sites

Following this up with a Nanopi Neo3:

I made a little POC with a 12V CPU fan blowing at the standard white case.

IDLE I went from 60°C to 40°C

And maxed out, I went from 73+°C to 63°C

 

Definitely a fan should help!

So I ordered a 30x30x10 fan on aliexpress and some JST ZH 1.5 wires to plug it on the Neo3.

Guess I will remove a chunk of the bottom case and set the fan against the heat sink. Will be back in a couple months when I'll have received the goods and set all of this up.

Meanwhile my ghetto 12V CPU fan against the case helps

Link to post
Share on other sites

13 hours ago, Blazerfi said:

@RedShadow Just out of curiosity, how do you plan to mount the fan to the heatsink?

I'm guessing something like that : https://ibb.co/hWFm4jd

Removing the bottom case center while leaving some space around on the sides to make holes for the screws and resting the fan.

And adding some rubber washers to reduce vibrations.

 

I think I will soon get my little fan order, the package arrived somewhere in my country it seems.

Link to post
Share on other sites

Alright, I have received the fan and stuff to cool my nanopi3.

In the end it looks like this: https://ibb.co/478br6z https://ibb.co/bN4HMhB

Behold my not very round hole. Anyway.

 

I had to put screws from the inside as mine they are too long and they were touching the passive cooler otherwise. Also not enough space inside to secure them with bolts.

Now the IDLE temp is about 35°C. And a full load is about 53°C. Not bad.

 

I haven't finished yet though, as I want to put some soft rubber washers to damper vibrations. And then I will secure the screws with bolts and close the case.

I used this little fan there https://www.aliexpress.com/item/32603431500.html and it is quiet enough. I can hear it through the cabinet though, I hear a high pitched noise. But a few meters away and it's gone.

Tried these fans as well https://www.aliexpress.com/item/4000131368383.html and however they are stronger and move more air, they are very loud. Even in the next room I could hear the motor. And, they are actually too strong as the air can't get outta the case fast enough and goes back out through the fan itself. Not good. Not good for my setup anyway.

 

 

Link to post
Share on other sites

After seeing your post on this, I decided to do the same with a fan I purchased for the R2S before I got the metal case (which I hope we get for the Neo3). 

What is the best way to put a load on this thing? 

My fan isn't too loud, bought it on amazon and am currently powering it via the USB2 headers so it is always on. 

https://www.amazon.com/gp/product/B07PD1H24F
o38ki1q.jpg

Link to post
Share on other sites

3 hours ago, Javin said:

After seeing your post on this, I decided to do the same with a fan I purchased for the R2S before I got the metal case (which I hope we get for the Neo3). 

What is the best way to put a load on this thing? 

My fan isn't too loud, bought it on amazon and am currently powering it via the USB2 headers so it is always on. 

https://www.amazon.com/gp/product/B07PD1H24F
 

 

You can use the JST ZH 1.5mm as well to power on the fan. It's 5V.

Guess it's exactly the same as using the USB2 headers pins.

Though I'm wondering if we could somehow control either this USB2 or the JST to maybe control the fan speed!

That'd be neat, like speeding up/powering on the fan according to the CPU temp or CPU usage.

 

To put the NanoPi under load I'm using `sysbench` to calculate prime numbers with the 4 CPUs

sysbench --test=cpu --threads=4 --cpu-max-prime=100000000 run

 

And then at the same time I'm hammering my WireGuard on the Nanopi with a 30Gb download or something.

And measure the CPU temp with htop after 15 mins or so.

Link to post
Share on other sites

My results were very similar for a Neo 3 with fan.  ~39c idle and ~54c under load.  I am perfectly content with that. 

When I purchased the fan I didn't realize what header I needed and cant force my current plug into the fan header.  USB seems to work just fine for what I need it for right now, at least until someone makes a neat program to adjust fan control speed using one of the other headers.  

 

My R2S in the metal case is running much warmer than I prefer to touch, but it seems stable. 

 

Now that I am thinking about it, it may be time to invest in a few Noctua 40mm fans and slap them on top of my devices for quitter operation and more airflow.  

Link to post
Share on other sites

On 9/30/2020 at 11:04 AM, RedShadow said:

Though I'm wondering if we could somehow control either this USB2 or the JST to maybe control the fan speed!

That'd be neat, like speeding up/powering on the fan according to the CPU temp or CPU usage.

http://wiki.friendlyarm.com/wiki/images/5/59/SCH_NanoPi_R2S_V1.0-1912.pdf

get pwm2 running and you should be done.. iirc it's not the first friendly arm board having this kind of fan control so there should be information here and there.

 

16 hours ago, Javin said:

USB seems to work just fine for what I need it for right now, at least until someone makes a neat program to adjust fan control speed using one of the other headers.

If it is properly defined in the dt and from a first glance.. It doesn't look like it is that someone is already there long time ago and wrote the pwm fan kernel driver... :lol:

https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/hwmon/pwm-fan.txt

well you might need to pack this into a device tree overlay cause I'm sure not everyone wants an annoying fan on his board.

 

 

it seems the whole thread is kinda focused on treating symptoms instead of figure out the root case for it. Obviously the board doesn't have much thermal mass due to it's size and I would assume that the USB3 to ethernet phy will also add some additional heat to the system (someone ever checked which other chips 'feel warm' and when - e.g. test if the issue relies when the USB GbE phy gets disabled). Next would IMO then be to test if we have to adjust THS settings for the board or maybe the max frequency we allow it to go (iirc we had this in the past for other boards that we didn't allow them to run at max clock-speeds for various reasons maybe this board is one of them too.

I have a neo3 at home somewhere but didn't even boot it up yet (call me lazy). From a first glance the board looks nicely done but I kinda expected it to be a oven.. given the tiny little case I got with it. Maybe I've a look at it this weekend who knows...

I have a

Link to post
Share on other sites

10 hours ago, chwe said:

http://wiki.friendlyarm.com/wiki/images/5/59/SCH_NanoPi_R2S_V1.0-1912.pdf

get pwm2 running and you should be done.. iirc it's not the first friendly arm board having this kind of fan control so there should be information here and there.

 

If it is properly defined in the dt and from a first glance.. It doesn't look like it is that someone is already there long time ago and wrote the pwm fan kernel driver... :lol:

https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/hwmon/pwm-fan.txt

well you might need to pack this into a device tree overlay cause I'm sure not everyone wants an annoying fan on his board.

 

Yes, I'm starting to look around now for a way to control this.

I'm a Linux n00b,  so bear with me,  I'm gonna confirm below what I understand so far:

- The pins are not exposed to the system for easy manipulation

- Also, the pins addresses and stuff are not the same for each hardware model

- It would pollute the environment if they were set up automatically because not used most of the time

 

The way to do this is by using the Device Tree. This exposes stuff. But not necessarily everything.

So if we want to expose more stuff (like our PWM pins or USB pins) we have to add these to the DT.

Except that it's not good practice, since the DT gets updated during Kernel update so the changes would be lost.

Instead we have to create an Overlay which would contains only our changes, which will get applied on top of the DT.

 

Now on my Nanopi Neo3, I have checked the available Overlays as some are provided.

In /boot/dtb/rockship/overlay there are some of them.

The README there describes what each of these does.

 

In my case (nanopi Neo3), I'm looking to control GPIO2_A6 aka PWM2 from what I can see here.

But, the readme doesn't seem to indicate any available overlay which would expose this.

This link you have given us, chwe, is for us to create our own overlay so we can expose it ourselves.

 

I understand that once this will be done, we can expect to hit that pin through sysfs. Like with something like /sys/class/pwm/pwmchip0.

Indeed right now I don't have pwmchip0, this folder is empty.

 

Am I right so far?

 

 

10 hours ago, chwe said:

it seems the whole thread is kinda focused on treating symptoms instead of figure out the root case for it. Obviously the board doesn't have much thermal mass due to it's size and I would assume that the USB3 to ethernet phy will also add some additional heat to the system (someone ever checked which other chips 'feel warm' and when - e.g. test if the issue relies when the USB GbE phy gets disabled). Next would IMO then be to test if we have to adjust THS settings for the board or maybe the max frequency we allow it to go (iirc we had this in the past for other boards that we didn't allow them to run at max clock-speeds for various reasons maybe this board is one of them too.

 

Yeah, didn't even think about the causes. From htop I can see the CPU freq and at idle it's about 408mhz. Upon charge, it climbs up to 1.3Ghz.

But it was with these 408mhz that we reached around 50°C idle before setting up our fans. I'm not sure tweaking the max clock speed would change much as with 408mhz it's already very hot

Can't test without the eth disabled as I don't have the debug console and do everything through SSH using eth.

I'm now curious as well as to why this is hot idling!

Link to post
Share on other sites

Hi all,

 

An  update about my experience with the cheap fan I've found in a well know Chinese online market, at that time was the only one I've found and the metal case was not available:

 

Three months and a half later the fan started to work really noise, is doing the job and the temp is ~ 40ºC without load, but the noise is annoying.

 

Time to go for the metal case, the question is, with or without fan?

Edited by M.FB
Link to post
Share on other sites

On 10/18/2020 at 3:13 AM, M.FB said:

Three months and a half later the fan started to work really noise, is doing the job and the temp is ~ 40ºC without load, but the noise is annoying.

Time to go for the metal case, the question is, with or without fan?

My R2S came in the cute yellow plastic ovencase with the heatsink and fan inside. I need silent operation and FriendlyElec weren't selling the metal case yet. So I bought a metal case without fan from ebay: https://www.ebay.com.au/itm/402314889761

Very happy with it. Totally silent and the heat profile was so good that I stopped my stress/heat/freq tests and put the R2S into active use.  I've just ordered my second NanoPi R2S from FriendlyElec, this time with the metal case. I would add more heatsink, like in the photo above, before a fan.

 

 

Link to post
Share on other sites

On 10/2/2020 at 6:32 AM, RedShadow said:

Yes, I'm starting to look around now for a way to control this.

I'm a Linux n00b,  so bear with me,  I'm gonna confirm below what I understand so far:

- The pins are not exposed to the system for easy manipulation

- Also, the pins addresses and stuff are not the same for each hardware model

- It would pollute the environment if they were set up automatically because not used most of the time

 

The way to do this is by using the Device Tree. This exposes stuff. But not necessarily everything.

So if we want to expose more stuff (like our PWM pins or USB pins) we have to add these to the DT.

Except that it's not good practice, since the DT gets updated during Kernel update so the changes would be lost.

Instead we have to create an Overlay which would contains only our changes, which will get applied on top of the DT.

 

Now on my Nanopi Neo3, I have checked the available Overlays as some are provided.

In /boot/dtb/rockship/overlay there are some of them.

The README there describes what each of these does.

 

In my case (nanopi Neo3), I'm looking to control GPIO2_A6 aka PWM2 from what I can see here.

But, the readme doesn't seem to indicate any available overlay which would expose this.

This link you have given us, chwe, is for us to create our own overlay so we can expose it ourselves.

 

I understand that once this will be done, we can expect to hit that pin through sysfs. Like with something like /sys/class/pwm/pwmchip0.

Indeed right now I don't have pwmchip0, this folder is empty.

 

Am I right so far?

I agree with all that. I found that with the FriendWRT image, that /sys/class/pwm/pwmchip0 existed and is actively used to manage the fan with this script:

https://github.com/friendlyarm/friendlywrt/blob/e1fb88ff29bcf634c875b94a9026565c7780149f/target/linux/rockchip-rk3328/base-files/usr/bin/start-rk3328-pwm-fan.sh

Please let us know if you make any. progress with /sys/class/pwm/pwmchip0 on armbian

On 10/2/2020 at 6:32 AM, RedShadow said:

 

 

Yeah, didn't even think about the causes. From htop I can see the CPU freq and at idle it's about 408mhz. Upon charge, it climbs up to 1.3Ghz.

But it was with these 408mhz that we reached around 50°C idle before setting up our fans. I'm not sure tweaking the max clock speed would change much as with 408mhz it's already very hot

Can't test without the eth disabled as I don't have the debug console and do everything through SSH using eth.

I'm now curious as well as to why this is hot idling!

I spent too long running heat tests. Once I got my nanopi r2s into a metal heatsink case, I was happy that I had a reasonable operating temperature range for what I plan for this router

Link to post
Share on other sites

Thanks for the feedback @poddmo.

I've asked about the metal case+fan because of the Javin's comment,  I don't really know if we can trust the nice graphs that the Friendlyelec guys posted in his shop, but according to your feedback those graphs can be real.

I think I will try something like the Style A, I will rum some test with and without the fan:

 

images?q=tbn:ANd9GcTgGpjk4AISL8AA0uFqUBR

 

If finally I need to go for the Style B, I will spent more in cases and fan than in the SBC itself  :huh:

 

BR

 

10 hours ago, poddmo said:

My R2S came in the cute yellow plastic ovencase with the heatsink and fan inside. I need silent operation and FriendlyElec weren't selling the metal case yet. So I bought a metal case without fan from ebay: https://www.ebay.com.au/itm/402314889761

Very happy with it. Totally silent and the heat profile was so good that I stopped my stress/heat/freq tests and put the R2S into active use.  I've just ordered my second NanoPi R2S from FriendlyElec, this time with the metal case. I would add more heatsink, like in the photo above, before a fan.

 

 

Link to post
Share on other sites

17 hours ago, M.FB said:

Thanks for the feedback @poddmo.

I've asked about the metal case+fan because of the Javin's comment,  I don't really know if we can trust the nice graphs that the Friendlyelec guys posted in his shop, but according to your feedback those graphs can be real.

I think I will try something like the Style A, I will rum some test with and without the fan:

 

images?q=tbn:ANd9GcTgGpjk4AISL8AA0uFqUBR

 

If finally I need to go for the Style B, I will spent more in cases and fan than in the SBC itself  :huh:

 

BR

 

My second r2s just arrived - I ordered this one from FriendlyElec with the metal case (style B). Looks much more professional than the third party metal heatsink case I got from ebay. It is also lighter and the ports are much more snug. Not enough to prefer one over the other at the end of the day. I installed armbian focal, apt update and then re-ran the cpu stress test. The numbers again match those from the brochure. Style B is guaranteed silent.

I found that since the base of the metal case is flat, putting a couple of chopsticks underneath to allow air flow there also dropped temperature a degree or 2 at idle.

Room temp 23C. I will keep watch as we get into summer and room temp gets much hotter but for now, this case is closed :)

pi@nanopi-r2s:~$ sudo stress -c 4 &
pi@nanopi-r2s:~$ while true ; do echo -n "`date` " ; a=`cat /sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_cur_freq` ; echo -n $a"  ";  cat /sys/class/thermal/thermal_zone0/temp ; sleep 5s ; done
Wed 21 Oct 2020 20:36:02 AEDT 1296000 1296000 1296000 1296000  65384
Wed 21 Oct 2020 20:36:07 AEDT 1296000 1296000 1296000 1296000  64166
Wed 21 Oct 2020 20:36:12 AEDT 1296000 1296000 1296000 1296000  65000
Wed 21 Oct 2020 20:36:17 AEDT 1296000 1296000 1296000 1296000  65769
Wed 21 Oct 2020 23:10:17 AEDT 1296000 1296000 1296000 1296000  69230
Wed 21 Oct 2020 23:10:22 AEDT 1296000 1296000 1296000 1296000  68076
Wed 21 Oct 2020 23:10:27 AEDT 1296000 1296000 1296000 1296000  68461
Wed 21 Oct 2020 23:10:32 AEDT 1296000 1296000 1296000 1296000  68846
Wed 21 Oct 2020 23:10:37 AEDT 408000 408000 408000 408000  55454
Wed 21 Oct 2020 23:10:42 AEDT 408000 408000 408000 408000  54583
Wed 21 Oct 2020 23:10:47 AEDT 408000 408000 408000 408000  53333
Wed 21 Oct 2020 23:26:04 AEDT 408000 408000 408000 408000  44545
Wed 21 Oct 2020 23:26:09 AEDT 408000 408000 408000 408000  46363
Wed 21 Oct 2020 23:26:14 AEDT 408000 408000 408000 408000  46363

 

Link to post
Share on other sites

On 10/21/2020 at 2:44 PM, poddmo said:

I found that since the base of the metal case is flat, putting a couple of chopsticks underneath to allow air flow there also dropped temperature a degree or 2 at idle.

 

 

Yes, very true, I'm using the original heatsink for the same.

Link to post
Share on other sites

On 10/21/2020 at 2:26 AM, M.FB said:

I think I will try something like the Style A, I will rum some test with and without the fan:

 

images?q=tbn:ANd9GcTgGpjk4AISL8AA0uFqUBR

 

If finally I need to go for the Style B, I will spent more in cases and fan than in the SBC itself  :huh:

I have a style-A case on my R2S, and the device idles at ~50c.  It works better if you can slightly shim the fan up away from the case, as their design has the fan blowing directly against a flat metal heatsink with no exit route for the air.

 

I'd note that that tiny fan is very noisy.

Link to post
Share on other sites

Thanks @devman, them I've selected the wrong option because the fan I'm using right now was really silent until started to make noise, and when is idle the temp is ~ 42c-45c, as the case in on route I'll give a chance.

 

 

Edited by M.FB
Link to post
Share on other sites

Hi again,

 

As @devman noted the fan for the Style A is noisy, and knowing that I cannot expect too much for the price, at least in my case the quality is very very poor, I'm waiting for Friendlyarm to make available a metal case for NEO3, and will order a NEO3 with metal case an the Style B metal case for the RS2.

 

The fan is noisy but helps (attached logs), testing with "stress -c 4" the temperature rises gradually and does not exceed 82C, maintaining the maximum speed at all times, it drops immediately when there is no load.

 

Without fan the temperature immediately rises to 83C-85 C and the cpu suffers to maintain the maximum clock speed, although it is not really remarkable, without load it takes a long time to return to normal values and it costs a lot to drop from 50C.

 

In brief, this option is completely silent and works fine if you made a big square hole on top of the yellow case, but after less than 4 months the fan started to fail and the noise is simply insupportable:

 

nanopi-r2s-heat-sink-np-r2s-hs-5c3.jpg

 

This one also works fine, obviously better with the fan connected, but the quality is poor (for example screws are not long enough to maintain the fan flat)  and the fan is noisy, who knows how many time will be working fine the fan:

 

c4373028-ed55-4e72-a36c-4bd20fbfa0bb.jpg

 

Yep, at the end I will spent more in cases and fans that in the SBC :unsure:

BR.

 

 

style_A_without_fan.txt style_A_with_fan.txt

Link to post
Share on other sites

On 11/1/2020 at 2:54 AM, M.FB said:

This one also works fine, obviously better with the fan connected, but the quality is poor (for example screws are not long enough to maintain the fan flat)  and the fan is noisy, who knows how many time will be working fine the fan:

 

c4373028-ed55-4e72-a36c-4bd20fbfa0bb.jpg

 

 

I'm pretty sure you don't actually want the fan flat, as there's nowhere for the air to go then.


I ended making some little 2mm bushings and swapping out for longer screws.  I need to source a better fan still.

Link to post
Share on other sites

21 hours ago, devman said:

I'm pretty sure you don't actually want the fan flat, as there's nowhere for the air to go then.


I ended making some little 2mm bushings and swapping out for longer screws.  I need to source a better fan still.

 

Hi devman, I've seen your first comment about this, I'm looking for something like this that fits in the micro holes on top of the heatsink but I don't find anything with the required diameter.

 

imagen.png.21a1bec57c35a7ec768b0e36e656e828.png

BR

Link to post
Share on other sites

Hi again, as expected (I'm not known for my ability for DIY when I work with small things), after try to make some arrangements in the Style A fan I've broken the fan -_-

 

I ended putting the R2S behind my old Synology NAS, I took a plastic box and did some holes to pass the NAS cables and use the box as base to put the R2S is just in from of the NAS fan, is this called synergy :D ? . To avoid put the R2S just on top of the plastic I've used the original heat-sink to raise the device a bit.

pic1.png.585ae548edbd73b2165a1f73324f4a4e.pngpic2.png.a9d46f302a66ff87134a82b78345fb79.png

 

 

Also I've configured the CPU from Min: 600M/Max: 1.500 to Min:400/Max:1.300 (as FE suggests in the spec sheet), and set the governor mode to conservative, the difference is not too much when the cpu is idle, but after set  the max speed to 1.300 the drop in the temp is noticeable on full load:

 

Idle: 41-43

With high load: 65-68C.

 

This crappy setup works for me and is  quiet :), the R2S is running pi.hole, transmission-daemon, minidlna, iperf and sometimes amuled so most of the time the load is low.

 

The difference between put the R2S behind the Synology fan or not, is about 4-5C when is idle and 8-10 C on full load. Attached the log testing with "stress -c 4".

 

BR

r2s_temp.log

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

3 3