Automagic fan control for the Jetson Nano is here!

Hi hooperbill, re-writing in C++ might be a good idea, if the ease of installation doesn’t suffer in the process. I, as many others, run the nano in a headless configuration to reduce ram usage.

Your current setup apparently relies on compiling the code with some IDE GUI, which kinda ruins the user experience, since they have to install that and re-compile for every config change.

You might be better off providing a script that works with make (from bash) and has a separate config file.

I’m curious as to the memory consumption difference. Do you have the stats?

D

I can’t say anything about his implementation, but the python version takes about 2MB of RAM, which is insignificant (0.05% of total system memory) to me.

Pyrestone: I had, obviously, not considered those running in a headless environment. It is easy enough to include a makefile and simplify the build and install process. I did not include a configuration file as adding the ability to parse file input was a bit more code and I was looking for something as lightweight as possible. Also I was looking at reconfiguring as a one off process and not something that would change that often. Thanks for the feedback!

defied: the memory usage for the Python daemon is 15332K and for the C++ daemon 4424K. These numbers came from the pmap command which includes the program and any loaded runtime libraries.

[update]
I looked at the memory usage with the System Monitor GUI app and it shows the Python daemon is 4.9 MB and for the C++ daemon 336 KB…

1 Like

Excellent, thank you.

Thank you Pyrestone and hooperbill.

I have 2 jetson nanos and running Pyrestone’s version on one and hooperbill’s version on the other.

I am running SanyoDenki SanAce40 fans on both nanos. One fan system is pushing air on the heat sink
while the other fan system is drawing air from the heat sink.

Both systems come on at boot.

Eventually I will test under different cpu/gpu loads.

Thanks again.

andyinyakima

it is interesting that your fans run opposite on different boards. Since the fan connector is keyed I do not see how they could be installed differently and I do not think that the PWM interface has the ability to control the fan direction. Could it be that the fans are installed with one up and one down? Going by the fan label is sometimes not a good indication. Most fans have an arrow on the side indicating the fan direction and the air flow direction.

hooperbill

I installed the connectors on my fans but the connectors are installed the same.
One fan is label down (not visible) and the other is label up (visible); one up and one down.
I did this on purpose. I looked for the arrows and finally located them; they verify the airflow
direction. I will be listening for bearing noise also.

Next I have to get them running together on similar test…any suggestions?

hooperbill,
From your description above, it sounds like one fan is mounted upside down. That would cause the air output direction to be opposite the one with the label side up.

D

Hi,

thanks to Pyrestone and hooperbill for the code.
I’ve tested both and work well in jetbot SD image. I am running the jetbot in MAX POWER mode and all the componentes work without problem, i wonder if running in 5W mode supports running the camera and fan at the same time.

P.S I have the fan attached to the heat sink labeled down (pushing air to the heat sink)

Hey @hooperbill

I love you C++ daemon!! Very nicely done! I forked it and modified it a bit for my use.

For some reason my jetson_clocks would not run properly and needed a bit of a delay.

So i added that feature and also minimized it a bit and removed the code:blocks stuff and generated make file, etc.

have a gander… be happy to generate a pull request if you’d like.

Koos

1 Like

Very useful, thank you. I learned some things reading your code as well!

1 Like