Interest Check : USB PWM Fan controller kit

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

Moderators: NeilBlanchard, Ralf Hutter, sthayashi, Lawrence Lee

Post Reply
DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Interest Check : USB PWM Fan controller kit

Post by DirtyLude » Wed Apr 19, 2006 2:27 pm

Okay, I made this fan controller up for myself and I think enough people here would be interested in it to sell it out. I'm not interested in making money off of it or spending alot of time soldering up boards, so I was thinking of selling it off at relative cost in kit form and moking this an OpenSource type project. The only thing I'm not certain about is, some of the chips require some decent soldering skills as most of the components are SMD.

The controller is actually very simple. It's based around the Analog Devices ADT7460 smart fan controller chip, doing the bulk of the work. Anyone who wants to check the specs on that chip and what it can do, can check the datasheet which is available on www.analog.com USB connectivity is performed by a simple FTDI FT232R USB->serial chip, and the communication between the 2 chips and the brains is a Zilog Z8 Encore! microcontroller

Specs:
- Will control 3 fans individually. The controlling MOSFETs are rated for 3.5 amps continuous operation, but I wouldn't work them that hard. That's 3.5 amps for each fan haeder, not total.
- 2 remote temperature sensors for thermal feedback and 1 on board temp sensor.
- Buzzer for fan stall, startup fail, slow operation, or overtemp warning. Different number of beeps can signify differnt warnings.
- All settings can be temporary, or set and forget. You can store the default startup parameter from the PC and unplug the USB cable if you want.
- There's 3 status LED's that can be routed to the front of the case, or wherever you want them.
- The USB connector I am using on the board is the mini-B connector. I'm using it, because I seem to have a hundred of these cables lying around not being used, like I suspect everyone has.

Truely, the control is limitless. Fans can be left off and only turned on when a specific temp threshold is hit. Regular temp feedback ramp up/ramp down. The fan controller chip has specifc accoustic friendly abilities, fan speed changes are gradual and not instant on/off.

Both temp sensors can be monitored along with individual fan speeds.

Problems:
- Like I said, the chips are pretty small. The fan ADT7460 and the FT232R only come in SMD packages. There's no other package options for them.

Need to do:
The reason I'm looking for interest is becaue I would need to complete this stuff up and I don't want to do it if nobody is interested.
- This has just been for me so far, so the microcontroller firmware needs to be written to support a good full featured protocol for setting all of the run parameters. The firmware will be freely available to anyone who wants it, and the microcontroller can be easily reprogrammed on the board using the 3 pin prgramming/debugging pin, if you get the USB programming cable from Digikey or Mouser for $20.00. The IDE, C compiler, assemblar, and real time debugging software is freely available from the Zilog site. It's an easy chip to develop for.
- I'll need to update the PCB with some small changes that I can think of now, and maybe any features that can't be done without.
- I have no PC side software at all to display temperature monitoring and set the parameters. RIght now I just use a virtual com port and do this through HyperTerminal. I would make the protocol specs freely available to anyone, the USB drivers are freely available from FTDI, I might make up a simple control program myself, but I would be looking for people to develop PC side software for it and make it available. For the time being, you can still access it the hard way through HyperTerminal. It just wont be pretty.

The Cost:
- Buying individual parts, the component cost looks to be just under $20.00 USD.
- I'll need to send the PCB out to be made up profissionally. At the current size, I'm thinking the cost of making 12 boards will be just under $10.00 USD each board.
- For each board, I would solder on the Z8Encore! Microcontroller and program it before sending it out.
- Total cost PCB and components, I think would possibly be $30.00 and defintely under $35.00 USD. Maybe I'll offer a fully completed board for $45.00 or something.

Here are the pictures of the prototype. The PCB is 4cm x 7cm in it's current form. It's quite a bit smaller than the T-Balancer and alot uglier. Remember that the final PCB would be made by a board house (unlike this one that I made myself) and there would be some minor changes. The final microcontroller used will have an onboard oscilator, and the LED's will be made thru hole, so standard 5mm LEDs can be used. rather than the SMD LED's that are on this prototype.

http://www.higginstribe.com/gallery/fan_controller/

Anyways, let me know what the interest is like. I know this isn't an electronics forum, but if there's enough interest given the price and DIY nature, I'll get this thing going.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Re: Interest Check : USB PWM Fan controller kit

Post by DirtyLude » Wed Apr 19, 2006 2:32 pm

Sorry, double post.

blandoon
Posts: 35
Joined: Tue Jan 31, 2006 11:07 am
Location: Eugene, OR USA

Post by blandoon » Wed Apr 19, 2006 3:47 pm

That actually sounds pretty awesome... I was considering trying to develop such a thing myself (true "closed-loop" fan control is the Holy Grail of quiet and reliable PC systems, at least for me), but I'd have to learn a lot from scratch, and I just don't have the time or energy for that at the moment.

But I've soldered plenty of stuff from kits (mostly music synthesizers and effects), so I'd absolutely be interested in something like this.

signal64
Posts: 61
Joined: Sun Apr 09, 2006 4:11 am

Post by signal64 » Wed Apr 19, 2006 11:30 pm

Awesome project there.

I can write up a front end for it.

As a suggestion (and you probably already thought of this) add some mounting holes in each corner so it can be installed in a case with either standoffs or nylon studs.

And maybe not a big deal, but a right angle molex would be a bonus (for me anyway). Or maybe even use a floppy style power connector??

If I had one, I'd probably put it in an unused floppy bay.

Anyway, great project. You have my vote.

jmke
*Lifetime Patron*
Posts: 495
Joined: Thu Apr 15, 2004 3:53 am
Location: In Front of PC
Contact:

Post by jmke » Thu Apr 20, 2006 4:53 am

impressive skills there, looking forward to see where this leads.

quikkie
Posts: 235
Joined: Tue Sep 20, 2005 5:21 am
Location: Soham, UK

Post by quikkie » Thu Apr 20, 2006 8:31 am

sounds somewhat similar to the project at http://www.keiang.de (posted on here somewhere...).

jmke
*Lifetime Patron*
Posts: 495
Joined: Thu Apr 15, 2004 3:53 am
Location: In Front of PC
Contact:

Post by jmke » Thu Apr 20, 2006 9:07 am

or retail mCubed:)

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Thu Apr 20, 2006 9:56 am

Yes, that does look similar. Even the English translated page is hard to read though. I'm having a hard time figuring it out. Only thing missing is a tone alarm. Also my power MOSFET drivers will switch a higher current.

I could add LCD control as well, but I really don't want to complicate this thing. An LCD seems like less of a silent PC mod and more of a case modders type mod.

I did a quick conversion and the board and microcontroler without shipping are about the same price as what I'm thinking the complete kit for this thing will cost, without considering shipping cost.

Heck, if you wanted to go nuts and pay the price, I could make it control 16 individual fans with radio remote display and a flashy CCFL light show.

I did a little work on the board. I turned the fan headers around so it could use 90 degree haeders, like suggested. I was originally planning on making everything vertical plug, but the vertical USB connector is 3 times the cost of the edge connector, so I scrapped that idea. If you guys can find me the female PC edge mount floppy power connector or 4 pin Molex on Digikey or Mouser, let me know and I'll see about replacing the vertical 4 pin molex. These vertical 4pin Molex connectors were the only ones I could find.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Thu Apr 20, 2006 10:05 am

I'm thinking I'm going to go ahead when I've completed the final prototype, and just order up 4 4cm x 10cm boards to see what they look like. Really, even if I solder these things up myself, I can't imagine each board taking me more than 10 minutes to do.

I'll show off the final prototype when it's complete, unless you guys manage to find a nice PC power edge connector.

blandoon
Posts: 35
Joined: Tue Jan 31, 2006 11:07 am
Location: Eugene, OR USA

Post by blandoon » Thu Apr 20, 2006 11:16 am

Is this the one you're after? It's the only one I could find.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Thu Apr 20, 2006 11:51 am

Ya, that looks right. Excellent. Looks like I don't even need to change anything for it to work.

$1.54, Ouch. It's surprising how quickly these individual components add up. If anyone see's anything cheaper, let me know. Usually there are off-name brands that sell the same thing under a different name, cheaper.

blandoon
Posts: 35
Joined: Tue Jan 31, 2006 11:07 am
Location: Eugene, OR USA

Post by blandoon » Thu Apr 20, 2006 2:21 pm

Well, there's these guys. I've never dealt with them, but they have what looks like the AMP equivalent for .98 apiece. I looked all over Jameco, Digikey, and Newark but couldn't find that part (Mouser, has it on a 200-unit minimum order). The Electronic Goldmine, normally a good source for all things cheap, doesn't have any either.

...can you tell I'm interested in this project? :)

TomZ
Posts: 386
Joined: Tue Feb 07, 2006 2:59 pm

Post by TomZ » Fri Apr 21, 2006 1:58 pm

Very nice project! If you want to post your schematic, I could give you some feedback on that, if you want. I've been thinking about doing a similar project, using a PIC that has built-in USB - but I'm sure the Zilog is just as easy.

I could also put together a quick GUI for it, if there is no objection to it being written in C# 2.0 with Visual Studio 2005 (free editions are available). I would also be looking from input from potential users as to how the GUI would work.

frankgehry
Posts: 1424
Joined: Sun Dec 12, 2004 5:00 am
Location: New York, NY

Post by frankgehry » Fri Apr 21, 2006 4:41 pm

DL,

Does your project allow for temp to fan speed profiles like the t-balancer? The adm1034 has a look up table to accomplish this, but I assume it could also be done by the zilog as the adt7460 allows you to change the pwm setting through software. TIA

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Fri Apr 21, 2006 6:59 pm

Well, I'm kinda stuck now. I can't make the final prototype without having the final parts I'm going to use. The horizontal power connector is a little diffirent than the one I'm using, since it has a strap to hold it down. I can't just order 1 or 2 of anything because shipping costs for Mouser to Canada are something like $15.00 and it adds up if I order too often.

I think I'll order enough of everything for 4 boards and once it's all here, I'll verify the production prototype and get the final boards made up. I'll see how it goes with those.

I ran into a snag. I wanted to use an Encore XP microcontroller in the final design, because it has an onboard oscillator and an onboard temp sensor, giving me added functionality and simplifying the design, but I noticed the XP doesn't have an I2C block and I don't feel like softcoding an I2C protocol on this round, so it's stuck with the regular chip.

This is the board and schematic as it is now.

http://www.higginstribe.com/fan-control/

I made the board 10cm X 4cm (1 1/2 inches by 4 inches). It's small enough you should be able to get away with it in a SFF case. It's a single sided board, but I made 2 images. One shows the components on the top, and one on the bottom. I have a little bit more board room to work with. I might add some optional USB transmit and receive status LED's. I was also thinking of some general purpose inputs outputs for something like shutdown triggering incase of overtemp. You can see the schematic is pretty simple. I'm not sure that there's much room for improvement.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Fri Apr 21, 2006 7:28 pm

I've never used the T-Balancer so I'm not certain what the profile looks like.

The ADT chip has automatic closed loop fan speed control based on temp, that you can setup, which I'll keep the functionality, but that might be too simple. I was thinking a fan speed /temp lookup table. This way you would just assign a bunch of temperature values with their associated fan speed percentage value. I'm not certain what to have the max resolution at, but it would allow you to ramp up the fan speed slowly while it's getting warm and ramp it up faster as the temp starts getting in the hot range.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Fri Apr 21, 2006 7:40 pm

Sorry for the multiple posts, but I'm tired and I'm just gathering thoughts.

As for the USB/PIC. Really, the microcontroller in this project has a minor job. Any microncontroller could be substituted. Unfortunately the only uC I have experience with that has USB onboard is an ARM7 chip. It would only be slightly more expensive than the z8Encore plus the FT232 chip, but it would be much more complicated and overkill for the project.

I started out with PIC's but I moved over to the z8Encore. Any beginners that want to get into uC's, I highly recommend the Encore over the PIC line for hobbyists. C compiler/Assembler, full easy to use IDE with debugger are all free. The chips are programmed in circuit with a one wire program/debug protocol. The USB programming cable is the only thing you need, and it's $20.00 from Mouser or Digikey.

Anybody who wants to redesign this using there own microcontroller, feel free. I'll post up the Eagle files when I'm closer to a final design. Like I said, this is an Open Source type project.

signal64
Posts: 61
Joined: Sun Apr 09, 2006 4:11 am

Post by signal64 » Tue Apr 25, 2006 8:21 pm

In regards to the 1 and 2 part supplies being hard to come by (as they usually want you to buy in bulk), I used to be able to just ask the distributer (not the retail shops) for samples. The parts and shipping were free.

Not sure if you tried that route yet.

There's got to be a Molex or other parts distributer in Canada for this.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Wed Apr 26, 2006 5:34 am

I'll be ordering from Mouser either today or tomorrow all the parts to do 4 boards. Once the product is here I'll complete the final prototype with any other changes and send the design off to the board house.

scdr
Posts: 336
Joined: Thu Oct 21, 2004 4:49 pm
Location: Upper left hand corner, USA

Post by scdr » Wed Apr 26, 2006 10:35 am

Nice project.

Had a few thoughts of additional features that would be nice if
they weren't too hard to do:

Hardware:

Are USB male to internal USB connector cables readily available?
Would there be any sense in adding spot for different USB connector
(e.g. ribon cable, ...) Since this is likely to be inside the PC, seems it would be a bother to have to run cable outside PC to USB port.


Would it be reasonable to add spot for a serial connector.
(If the board already has the right signals for it.)
Not suggesting adding the connector to the kit - just bringing signals to place where serial cable (or, if there is space, a serial connector) could be soldered on. Might be handy for applications where USB wasn't available, or if wanted to connect to an internal Serial header (in case all internal USB headers in use).
(Thinking of things like using an old Palm Vx with serial cradle for a display/controller ;-) )


I assume that adding a jumper or something to allow programming without the extra cable would be a major undertaking? (Would be nice to be able to fix any firmware problems without the clutter/expense of yet another cable.)

Software:
Hope there will be some option for programming in time delay in fan changes, or base control on average of recent readings?
Fan that continually speeds up and slows down can be more annoying than one that stays at a steady state, even if steady state is the louder one. Also, I have found that some of the software fan controllers will kick up fan speeds when they get one anomelous high temp reading. (Perhaps the hardware is less susceptible to major errors like this, but
if not, some way to ignore anomelous readings would be nice.)


Also, being able to set the turn on voltage for each fan might be a plus (i.e., rather than using full 12v to turn on fan and thus having a short burst of sound each time a fan came on, let user find what voltage required to turn fan on reliably. Of course fans with RPM monitor could do this automatically.)


--
Not trying to complicate things with too much feature creep,
just thoughts on what would make this easier to use/adapt if not
too hard.

Thanks,
Michael

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Wed Apr 26, 2006 12:11 pm

scdr wrote: Are USB male to internal USB connector cables readily available?
Would there be any sense in adding spot for different USB connector
(e.g. ribon cable, ...) Since this is likely to be inside the PC, seems it would be a bother to have to run cable outside PC to USB port.
I was thinking about this as well. A USB connector may not be the best solution since the majority of the time this will be inside a case. I'll have to think on the options for this. I might just make solder holes so that people can solder on a ribbon cable from their internal USB header as an option.
Would it be reasonable to add spot for a serial connector.
(If the board already has the right signals for it.)
Not suggesting adding the connector to the kit - just bringing signals to place where serial cable (or, if there is space, a serial connector) could be soldered on. Might be handy for applications where USB wasn't available, or if wanted to connect to an internal Serial header (in case all internal USB headers in use).
(Thinking of things like using an old Palm Vx with serial cradle for a display/controller ;-) )
To do proper RS232 I would need to put on a level shifter chip like the max232. I could add solder points for serial connection, but without the level converter chip the solder points would be useless. I can't imagine this would be a very popular option. Most computer don't offer serial at all anymore.
I assume that adding a jumper or something to allow programming without the extra cable would be a major undertaking? (Would be nice to be able to fix any firmware problems without the clutter/expense of yet another cable.)
I can investigate putting a boot loader on the chip. In that case you could do firmware updates over the USB connection. I've never needed a boot loader before, so I've never played with them, but I can see it would be useful for this application.
Hope there will be some option for programming in time delay in fan changes, or base control on average of recent readings?
Fan that continually speeds up and slows down can be more annoying than one that stays at a steady state, even if steady state is the louder one. Also, I have found that some of the software fan controllers will kick up fan speeds when they get one anomelous high temp reading. (Perhaps the hardware is less susceptible to major errors like this, but
if not, some way to ignore anomelous readings would be nice.)

Also, being able to set the turn on voltage for each fan might be a plus (i.e., rather than using full 12v to turn on fan and thus having a short burst of sound each time a fan came on, let user find what voltage required to turn fan on reliably. Of course fans with RPM monitor could do this automatically.)
When I was researching this fan controller chip, it looks like this chip is being used in some Apple notebooks. The ADT7460 has some built in accoustic features. One is a ramped fan speed change, so you don't get quick jumps in fan speed up or down. The other is a quiet fan startup. It does not just turn it on full then drop it to the proper speed. Also the board itself is autonomous. The settings in it are not reliant on the PC, so from PC power on until the OS boots up, the fans will be running at their configured settings, not full blast.
Not trying to complicate things with too much feature creep,
just thoughts on what would make this easier to use/adapt if not
too hard.
These are the kind of suggestions I was looking for.

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Wed May 17, 2006 4:55 pm

Images updated with the second prototype.
http://www.higginstribe.com/gallery/fan_controller/

...and the board schematic:
http://www.higginstribe.com/fan-control/

I'll have to ask if I can put the SPCR logo on the release version.

The final board will be double sided, but will be the same as it is now, design wise. It's been suggested that the board really needs a ground plane on the second side to cut down EMI.

blandoon
Posts: 35
Joined: Tue Jan 31, 2006 11:07 am
Location: Eugene, OR USA

Post by blandoon » Mon May 22, 2006 8:36 am

Is the final board going to be bare copper as well? Trying to solder a bare board is hell compared to a solder-masked one, especially if you're trying to do SMD by hand. (At least it is for me - I'm not the greatest solderer in the world, but I do all right.)

DirtyLude
Posts: 41
Joined: Wed Apr 19, 2006 12:43 pm

Post by DirtyLude » Tue May 23, 2006 1:20 pm

No, the final board will be double sided with soldermask and silkscreen.

blandoon
Posts: 35
Joined: Tue Jan 31, 2006 11:07 am
Location: Eugene, OR USA

Post by blandoon » Wed May 24, 2006 7:10 am

Awesome... this is sounding better and better.

Envy007
Posts: 13
Joined: Sun Mar 12, 2006 5:21 am
Location: NL

Post by Envy007 » Sun May 28, 2006 6:30 am

This sounds very interesting. I'm using a very simple temperature controlled fanc controller at the moment.
Here's the url for the schematic
http://www.heatsink-guide.com/tempcontrol.htm

It's small, simple and the treshold can be changed via the potmeter.

This controller controls a 8 cm CPU fan and a 12 cm exhaust fan without a problem.

My tips or wishes for your project is multiple of these things with a possibility to monitor the rpm''s through the motheboard sensors.
I'm not sure if this is what your planning for right now but if youare than i've siad nothing! :wink:

Post Reply