I made a fan controller. Want one?

Control: management of fans, temp/rpm monitoring via soft/hardware

Moderators: NeilBlanchard, Ralf Hutter, sthayashi, Lawrence Lee

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Let's light this candle!

Post by fancontrol » Sat Feb 22, 2003 12:51 pm

I'm tired of waiting-- I'll place the order for boards, etc. this week. I'm a little busy with my day job right now but I'm loosing too much sleep over this.

I plan on starting a 'progress' page at my web site. Watch for info there starting Monday.

And, regarding reviews, I'm sure the guys who are getting one will have something (hopefully good) to say once it shows up. If I have a spare I may look into sending it to Tom's or someplace else.

BriceB
Posts: 47
Joined: Wed Feb 12, 2003 12:50 am
Contact:

Re: Let's light this candle!

Post by BriceB » Sat Feb 22, 2003 1:14 pm

fancontrol wrote:If I have a spare I may look into sending it to Tom's or someplace else.
For the good of others & yourself, I'd recommened removing the word "if" from the above statement.. ;) build a spare or 2 to send out to the reviewers ( IF you can line them up.. )

Brice

GamingGod
Posts: 2057
Joined: Fri Oct 04, 2002 9:52 pm
Location: United States, Mobile, AL

Post by GamingGod » Sat Feb 22, 2003 7:23 pm

Build 3 extras and send one to me :D jking

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Tue Feb 25, 2003 11:27 am

Does anyone know if the reviewers are willing to send the junk they test back when they're done? I'd hate to have one of these end up in a dumpster (or the equivalent back room box-o-stuff).

BriceB
Posts: 47
Joined: Wed Feb 12, 2003 12:50 am
Contact:

Post by BriceB » Tue Feb 25, 2003 11:45 am

fancontrol wrote:Does anyone know if the reviewers are willing to send the junk they test back when they're done? I'd hate to have one of these end up in a dumpster (or the equivalent back room box-o-stuff).
I believe that would be a contract made between you and the reviewer ;)

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Count me in, I think.

Post by Bat » Tue Feb 25, 2003 4:27 pm

I think this will be worth it for me.
I have been thinking about how best to set fan speed as a function of component temperature.

I'd like to try something like this:
Pulse-width W = B(dT/dt - A(T - U)) + C
where
C = E + integral-over-time-of D(dT/dt - A(T - U))
A, B, D and E are positive constants set by the user to suit the system
T is the temperature at time t
U is the chosen desired temperature
dT/dt is the rate of increase of temperature with time.

Of course it's a bit less obvious what to do when there are several temperatures and fans involved.
Thoughts, anyone?
Or perhaps this sort of thing should go to a different thread. I had been thinking about ways to do it with analog electronics, but software on a microcontroller or something probably makes more sense.

I'm in the United Kingdom so postage will be a bit more for me, but I shouldn't think it'll be too horribly much.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Thu Feb 27, 2003 8:26 am

Holy cow, some people have really done some thinking about this, eh?

I'll bet that the first set of boards will not have the software required to allow in-circuit reprogramming of the uC via the serial port; you'll have to live with the firmware that's loaded. You can, however, try out all your control ideas with software on the PC and control the fans with serial commands.

I do plan to constantly improve the software and when updates are available we can do some kind of board-swap (that is, until I get the reprogramming thing working, then it's just downloads!)

I'm pretty sure the first 6 boards are spoken for. I'm starting to believe there will be more shortly after this run! Stay tuned...

The uC developement kit is on it's way to me and I'm trying to wrap up component selection so I can order the board. It's the calm before the storm... when parts start to show up I'm sure I'll be very busy!

email, reply, surf over to my site, whatever. I like to hear your ideas; it helps me design both the hardware and code to ensure it meets your needs.

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Post by Bat » Thu Feb 27, 2003 2:41 pm

Perhaps a chip-swap might be preferable to a board-swap, if all that needs changing is the software? It would mean using a socket rather than soldering the chip directly to the circuit board, but I'm sure the socket would cost less than the difference in postage and packing costs between sending a chip and sending a whole board.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Fri Feb 28, 2003 3:58 am

sorry, no room. plus the package doesn't really accomodate sockets. My goal is to get the serial-port flash thing working before I send out boards in the first place.

...or find a way to bootleg the C2 programmer.

...or make the software robust and feature-laden the first time :wink:

good thinking, though! keep them thar ideas a'comin! (my attempt at talking Texan)

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

man down, and, how does speedfan work?

Post by fancontrol » Mon Mar 03, 2003 5:54 am

anyone hear from jhh? he and i were going to work on the software together (remember all talk about java?) and now i can't reach him. hmmph. :?

Oh, one more question: how hard do you think it would be to get mbm5 or speedfan to act as (one option for) the interface?

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Post by Bat » Mon Mar 03, 2003 1:14 pm

I just looked at the web sites for mbm5 and speedfan. Neither makes the source code available for download. They only run on MSWindows anyway.
I think if you want to use one of those, you'll have to get the author interested.

Setting that aside for the moment, what would we want the software that runs on the PC to do? I suggest, in order of importance:
  1. Send a file of new software to the microcontroller. Essential, obviously.
  2. Monitor temperatures etc. reported by the fan control card. I think it would be enough to just send the data to a file (or pipe it to whatever other piece of software you fancy). There are plenty of good programs already that can take the data and display graphs or dials etc.
  3. Switch the card into different modes or tell it different target-temperatures or response-speeds or whatever. (Is this necessary?)
  4. Control the card automatically in response to the temperatures. I feel that this would be a bad idea: this should be the job of the software running on the card itself.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Mon Mar 03, 2003 3:23 pm

Bat wrote:I think if you want to use one of those, you'll have to get the author interested.
I'm sure I won't, but others might. It doesn't take advantage of all the feaures of the card, but is seems some people just won't let go of speedfan, etc.
Bat wrote:Control the card automatically in response to the temperatures. I feel that this would be a bad idea: this should be the job of the software running on the card itself.
It's actually the job of the hardware, which is the whole point. The controller on the board only has to ensure that the configuration is loaded into the ADM1027 on startup. After that the chip works on it's own. Everything else is fluff, really.

I agree with your priorities and plan to post SW interface info as soon as I get the new controller to do the same thing the old one did. Then you can start thinking about all the cool applications you would like to develop...

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Post by Bat » Tue Mar 04, 2003 1:01 pm

I spent a while last night reading the data sheets for the ADM1027 and your chosen microcontroller (3mm x 3mm: I can see why the socket idea won't work!)

I would want to have the software on the microcontroller in charge of the fans though. The ADM1027 has an output which is a function of temperature only, not of time (except for the optional limit on output slew rate). I want something that can vary the output with time as well (as in the equations above, or something similar) so that the temperature can be regulated to the desired point rather than settling at some value that depends on the conditions.

This means that I shall need to learn to program the uC (or convince someone who has that skill already that my algorithm is worth implementing).

On a separate issue: am I right that monitoring the temperature of the CPU's thermal diode would be difficult? I suppose it would involve an interface to the motherboard's i2c or SMB system.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Tue Mar 04, 2003 6:38 pm

Bat wrote:I spent a while last night reading the data sheets for the ADM1027 and your chosen microcontroller (3mm x 3mm: I can see why the socket idea won't work!)
Actually, I've switched to the 'F310 since then. See the 'news' page. I was concerned that the 'F303 would not have all the features people (like yourself) would want and I wasn't sure I would be able to hand-solder the 'F303 package.
Bat wrote:I would want to have the software on the microcontroller in charge of the fans though.
Once I get a 'baseline' code running it shouldn't be too bad. Your biggest headache may be that the free compiler--at least the one I'm using--does not support floating point math.
One option is to use the 'manual' control option for each fan. I was thinking aobut this last night, and thought maybe a more robust solution would be to keep the fans in automatic mode, but tweak on Tmin to move the fan speed around. That way if your firmware hangs the 1027 will still maintain a minimum of control. Particularly, it will speed fans up if temps go up.
Bat wrote:On a separate issue: am I right that monitoring the temperature of the CPU's thermal diode would be difficult? I suppose it would involve an interface to the motherboard's i2c or SMB system.
Difficult, but probably not impossible. Some mobos have an SMBus header on them, you'd have to figure out bus mastering to make it work (the mobo and the fan board would both have masters). I don't have a motherboard with that header, so can't even offer to experiment with it.

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Post by Bat » Thu Mar 06, 2003 2:41 pm

fancontrol wrote:Actually, I've switched to the 'F310 since then. See the 'news' page.
Ah, sorry, I should have checked that page. ('Status' not 'news' though.) So, much more RAM to play with, and some AtoDs.
fancontrol wrote:Once I get a 'baseline' code running it shouldn't be too bad. Your biggest headache may be that the free compiler--at least the one I'm using--does not support floating point math.
I don't think doing it with integer arithmetic should be too hard. I'd been afraid it might all have to be done in 8051 assembler!
fancontrol wrote:One option is to use the 'manual' control option for each fan. I was thinking aobut this last night, and thought maybe a more robust solution would be to keep the fans in automatic mode, but tweak on Tmin to move the fan speed around. That way if your firmware hangs the 1027 will still maintain a minimum of control. Particularly, it will speed fans up if temps go up.
I agree absolutely.

In fact, for the way I'm planning to use the thing, I expect the 1027 on its own would be "good enough" so that my software plans would be mostly just for fun, to get that last degree of regulation. I'll be using the system to control the water temperature in a water-cooled system, so of course the temperature will only ever change very slowly and will tend not to overshoot. A rather vague overview of my intentions is in this thread: Air flow plans for water cooling

Tore
Posts: 72
Joined: Wed Jan 08, 2003 5:38 am
Location: Tønsberg, Norway
Contact:

Post by Tore » Thu Mar 06, 2003 10:15 pm

fancontrol wrote:
Bat wrote:On a separate issue: am I right that monitoring the temperature of the CPU's thermal diode would be difficult? I suppose it would involve an interface to the motherboard's i2c or SMB system.
Difficult, but probably not impossible. Some mobos have an SMBus header on them, you'd have to figure out bus mastering to make it work (the mobo and the fan board would both have masters). I don't have a motherboard with that header, so can't even offer to experiment with it.
How about a quick and dirty method in the begining? Would it be possible to make a (insert favorite OS) program to check the CPU temp, and then send it to the fan controller through the RS-232? Don't know if it is feasible, or if it will save any work when testing ideas.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Fri Mar 07, 2003 10:08 am

Tore wrote: How about a quick and dirty method in the begining? Would it be possible to make a (insert favorite OS) program to check the CPU temp, and then send it to the fan controller through the RS-232? Don't know if it is feasible, or if it will save any work when testing ideas.
The design of the board is 'open' enough that you can do anything you want. One side of the spectrum is to let the board take care of itself and not even connect the serial cable. The other side is to use the serial port to command fan duty cycle (and read tachs, and temps, and voltages). It's entirely up to the guy writing the code.

The serial protocol is simple (I'll post this on my web side as soon as it is finalized):
Send 5 bytes
[0xE5][cmd][AH][AL][D]
cmd = 0x5C to write to 1027, 0x5D to read
AH = 0x00 (not used for 1027)
AL = 1027 register address
D = data to be written, or don't care for reads
The board sends back 10 bytes:
{the original command}{the origninal command, modified}
the second time the original command is sent back, the data byte is modified to the read value. I think the 0xE5 will also me modified based on the success of the command, but I haven't got that far into the code yet.

Bottom line: you've got options. If you want the board but aren't certain you could use it the way you want, sent me email. We can discuss how to configure the software to do whatever you want. Then you can buy the board, write neat code, show it off, and be proud of your achievement!

//edit: one more thing...
I got around the issue by using MBM5 and my board to "map" CPU temp to the heatsink temp. Once that bit of legwork was done I was comfortable using the heatsink to control my CPU fan.

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Post by Bat » Sat Mar 08, 2003 5:01 pm

That looks like enough detail to let anyone write software to do anything with the 1027.
How are things so far for a way to talk to the microcontroller and put new firmware on it?

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Sun Mar 09, 2003 8:39 am

Bat wrote:How are things so far for a way to talk to the microcontroller and put new firmware on it?
Haven't even tried without the debug cable. I'm just to the point of making the SMBus useful. I remain hopeful, Cygnal has a good appnote on how to do it.

Since the debug adaptor costs $65 on it's own (and requires a serial port) I want to get that nailed down as soon as possible.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Progress Report

Post by fancontrol » Thu Mar 13, 2003 2:16 pm

I've got the new controller doing (almost) everything I want it to. No, I still haven't addressed the serial reprogramming issue. Tomorrow I'll try to get it to run the old board. That will be a big day.

Also tomorrow, 3 of the new PCBs should arrive. The guy that can stuff them will be here next week. It's likely that the board will be running by the end of next week. Once I'm sure I've got the wiring correct I'll order 3 more.

The firmware & software should be polished by the end of the month. Right on schedule! I must be missing something...

Keep watching the web site for more info.

snutten
Posts: 341
Joined: Mon Nov 25, 2002 1:27 pm
Location: Sweden

Post by snutten » Thu Mar 13, 2003 8:26 pm

This fan controller of yours seems to be just what I´ve been looking for. I never could find something to control the speed of fans depending on the temperature.
Went the long way and parallell connected a DigitalDoc5 (stupid on-off thing but with 8 thermal probes) with an Innovatec manual fan controller (Innovacontrol, 4 fan). This way I can set the speed manually but if the temperature goes too high the DD5 steps in and gives a full 12V. At least this way I don´t need to constantly worry about the fan speed settings or about forgetting to speed them up when needed.
Still, a system that the user can preset, then working fully automated, is the way to go. I really hope this works out.

I have no skills or know-how whatsoever in this area, so forgive me if I ask dumb questions:

Is it safe to put a temp sensoring transistor in water?

I eyed through the material at your homepage but didn´t find out how the thing is programmed. Is it easy to play around with the values without the software everybodys going on about?

If set correctly, how annoying is that clicking PWM sound on a scale from 1 to 10?

If these are no issues, I´m in for one!

Btw, is it easy to let it control a real voltage regulator to replace the PWM? Guess it would take a heatsink?

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Fri Mar 14, 2003 8:16 am

snutten wrote:Is it safe to put a temp sensoring transistor in water?
It's like any other electric part, you have to seal it against water. If there is a short at the transistor, the board can sense the fault and act however you wish (to quote my boss: "It's just software").
snutten wrote:I eyed through the material at your homepage but didn´t find out how the thing is programmed. Is it easy to play around with the values without the software everybodys going on about?
I will ship the boards with windoze software that will allow easy configuration. Someone, hopefully, will come up with support for other OSs.
snutten wrote:If set correctly, how annoying is that clicking PWM sound on a scale from 1 to 10?
I have yet to notice clicking in my system. Pick the appropriate number.
snutten wrote:Btw, is it easy to let it control a real voltage regulator to replace the PWM? Guess it would take a heatsink?
You could try putting a cap across the FET to smooth out the PWM, but it may screw with your ability to measure fan speed. It may also screw with the quality of the fan speed regulation. To do this on the board I designed would be moderately ugly; you would have to glue down the caps and blue-wire them to the FETs (or maybe to fan power... I have to think about that). If you don't get clicking it may not be worth trying.

Send me a note if you want one.

snutten
Posts: 341
Joined: Mon Nov 25, 2002 1:27 pm
Location: Sweden

Post by snutten » Fri Mar 14, 2003 1:48 pm

OK, seems like fun. I trust you enough to just transfer the money via my bank. Whats the end total nowadays? I want no fancy pressure reading thingies or such.
You can write me the details, such as your bank account, when you expect the thing to be ready and how you want to ship it. I live in sweden, but I suppose sending this small board is cheap enough nonetheless.

Write to:
[email protected]

jhh
Posts: 218
Joined: Sun Jan 19, 2003 4:47 am

Post by jhh » Sat Mar 15, 2003 4:34 pm

Wow - I've been living 'disconected' for a while (long story) and I get back to see the biggest thread I've ever seen on SPCR review, I thought there was only me and a few other guys getting these things.

Jut read through it all, sounds like there's a far bit of interest out there! I've been talking abt neural net coding with some guys who used for a racing game. I'm thinking that's prob the way forwards if it can be suitably reduced to fit on a microcontroler which, frankly, I little to have no idea what the specs are. Neural nets seem very right for this project. I'm stil undecided on a number of lower-level issues, mind, but these things have a habit of sorting themselves out.

I just took a new job, but should find time to start working on a program by night soon, now I know roughly how it'll work the coding should be a snip.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Tue Mar 18, 2003 7:59 pm

This afternoon I got the new board working for the first time. With no errors on the board! That is huge! You can see a picture of it here.

I think I'm still on track to ship the first set this month.

Bat
Posts: 279
Joined: Sun Jan 05, 2003 12:09 pm
Location: U.K.

Bad news

Post by Bat » Sun Mar 23, 2003 1:41 pm

From Fancontrol's "status" page for this project:
http://home.austin.rr.com/segerstrom/fwf/news.html
Bad news: This is becoming an expensive hobby. Even with all the samples, the boards are costing me more than what I projected. Add in the cost of the micro-processor evaluation board, bribes that I should give the guy helping me stuff the board, packaging and shipping costs, and all the time I've put into it and there's a lot of red ink. Making more boards won't help; I won't be able to get samples so the cost to me will continue to rise. The bottom line is I will ship 5 boards and then quit this game. sigh.
This is perfectly reasonable of Fancontrol of course, but it leaves us wondering what to do next.
There are a lot more than five of us interested.
The design for the hardware seems to have developed to something useful and stable, so all we need is a way to manufacture the boards, assuming Fancontrol is generous enough to share the design details with us.

Does anyone feel up to making the things, or know anyone who is?

Alternatively, someone could just make the bare boards so that anyone who wants one can buy the components and the board and solder it all together. Soldering's not that hard after all. The trouble there is that a lot of us wouldn't have the skills and equipment to fix any problems if it didn't work first time.

Any thoughts? Any volunteers?

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Mon Mar 24, 2003 11:56 am

The news is actually worse. I will only be shipping out two systems; one to jhh and one to wjhung. It's worth noting that wjhung is getting a 'daughter' board as well to control a total of 5 fans.

I really hope this project doesn't die; I still think it's the best thing since... gravy?

Knowing what I know now, the board should cost $65 complete in quantities of 25.
$45 parts, including PCB
$10 bribe to build board & cables
$10 packaging and shipping

I don't bother trying to assemble the board myself. Some of the parts are very small (the 0603 resistors, for example) while others are very fine pitch (the ADM leads are only 0.025" apart). Some of you are more adept than I and may want to try it.

One thing I can do is try to get a small-production quote, say quantites of 50 or 100. Finding someone to front the moola to build it is another story.

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Fri Mar 28, 2003 11:44 am

well, jhh decided not to play--which I understand. The next guy in line will get the other board (no, it's not you).

The hardest part so far has been getting the multiple-board configuration working. That's finally done. Some final tweaks will go into the code today, I'll wrap up my sorry-excuse-for-documentation this weekend, and the boards will ship on Monday.

Two people have said they would pay the new price ($65) for a setup. One more and I can place the order!

fmah
Friend of SPCR
Posts: 399
Joined: Fri Mar 28, 2003 9:32 pm
Location: San Diego, CA

Post by fmah » Sun Apr 06, 2003 11:10 am

Is this thread still going? Well I think I'd be interested, since the Vantec PWM is loud as crap and $30, it'd be nice to have a PWM that is quiet and configurable.

How about getting some made and reviewed to generate more interest? That might spur demand.

Also, I couldn't find what is the max current that each fan header supports, and can you just connect two fans in parallel and connect that to one of the fan headers?

fancontrol
Posts: 291
Joined: Mon Feb 10, 2003 11:19 am

Post by fancontrol » Sun Apr 06, 2003 11:38 am

fmah wrote:How about getting some made and reviewed to generate more interest? That might spur demand.
I can't justify putting any more time (for assembly) or money (for "review" boards) into this project. Like I said before I'm already in the red and I can't find an option that will get me out.

I am in the process of gettting "production" quotes for the boards, though, and I'm courting a few investors who would pay to get ~200 made. If that goes through I'm sure the investors would want to get the design reviewed.
fmah wrote:Also, I couldn't find what is the max current that each fan header supports, and can you just connect two fans in parallel and connect that to one of the fan headers?
I haven't gone through the trouble to melt a board by turning up the current, so I can't say for sure. The FETs are rated at 4A, the traces can probably take at least 2A. In short, it is not a problem. Hooking fans in parallel won't work because it screws up the tach inputs.

Post Reply