please choosego to mobile | Continue to access the PC version
View: 14055|Reply: 4

temperature controlled cooling fan OPIPC OK

[Copy link]

12

threads

30

posts

150

credits

Registered member

Rank: 2

credits
150
Published in 2015-12-28 19:10:51 | Show all floors |Read mode
The orange pi PC gets warm and sometimes very hot.
I solved this partly by placing a cooling-fin on the Alwinner H3.

I read on the forum the very helpfull and instructive remarks from tkaiser (bronco).
Basically he advises to not use the highest frequency and voltage by modifying the script.bin file.

However, I'm tinkering with software-defined-radio which is very CPU hungry, so I ordered a fan.
--> High Quality ! Raspberry PI Fan DC 5V 0.13A Cooling Fan for Raspberry Pi Model B+/B Mini Active Cooling Fan

This fan has a 5V connector and is always active and noisy....
Since you can measure the temperature of the chip, why not make use of it?

I used an ULN2003 chip(which was part of  5V 4-Phase Stepper Step Motor + Driver Board ULN2003 for Arduino) to interface the GPIO-pin (pa16).
I reckon a simple transistor would do, but I do not have a large stock of supplies
I suspect the GPIO Pins are not able to deal with electro-motors, hence the interface.

I wrote a script (included) which reads the temperature and once >50 degrees it switches on the GPIOPIN, and thus the fan.
It's a c-script which needs to be compiled (see top of script for howto). Mind you I'm not a programmer..., but you may improve it
You need to have wiringOP installed.
You need to place the compiled script in the crontab. (crontab -e)
* * * * * /usr/bin/readit (this way it gets executed every minute)

This thread contains more resources

You need to Log in to download or view,No account?    Register

x

12

threads

30

posts

150

credits

Registered member

Rank: 2

credits
150
 Author| Published in 2016-1-7 00:31:22 | Show all floors
In the script I use PIN 16.

I did # gpio readall

there you see at connector pin 40 wiringpi number 16.

Since I use wiringpi in the program, this makes sense

2

threads

21

posts

121

credits

Registered member

Rank: 2

credits
121
Published in 2016-3-8 15:43:06 | Show all floors
hi snowbody.
firstly thank you to for the solution. my recommendation is, add timestamp and cpu heat to /var/log/temp file for trend analysis.

12

threads

30

posts

150

credits

Registered member

Rank: 2

credits
150
 Author| Published in 2016-3-9 17:47:22 | Show all floors
@jps I really like your solution! simple and effective

I did install armbiam which solves much of the heating issues.

I applied PWM on the ventilator (see post about PWM for example script)
With data = (0x000E000A) it stilll starts up and spins smoothly with no noise.
With data =   (0x000E000E) it is full throttle.

A good programmer could easily create a beautifull script that varies between those values according to cooling need (temperature)

The only disadvantage is when shutting down, the register gets reset and the ventilator spins full throttle                           

2

threads

6

posts

44

credits

Novice

Rank: 1

credits
44
Published in 2016-6-17 16:31:51 | Show all floors
snowbody replied at 2016-3-9 17:47
@jps I really like your solution! simple and effective

I did install armbiam which solves much of t ...

Hi, I modified your "C" program to read another output pin with 5V, and I connected the fan there. The problem is always going full speed and do not know how to make it stop, or not obey the shutdown pin.
Could you tell me how you did you?

Thank you!

You need to log in before you can reply login | Register

Points Rule

Quick reply Top Return list