Home     Contact     Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science     RSS     Terms of services     Privacy policy  
 Home      Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science   

30 March 2010
Author: Giorgos Lazaridis
Simple Linear Fan Controller

In continue to an older set of circuits (Simple Ways to Make Fans Silent), i decided to fulfill the fan controller circuits. Until now, i have present several PWM circuits to control a fan, yet these are rather difficult for a simple PC moder to implement. The latest circuit post was a set of some circuits so easy, that even a kid can do. But They did not provide linear control. Therefore, here i am again, with the simplest linear fan controller circuit.

The circuit

the circuit on a breadboard for test

The circuit is composed by 6 components: 2 resistors, 2 capacitors, the potentiometer and a transistor. The potentiometer is connected as voltage divider. The two resistors will set the highest and lowest value of the voltage divider. The output is driven directly to the base of the power transistor. The two capacitors are to smooth the voltage, as i saw some "waves" in the oscilloscope during the test-runs. C1 can be omitted, as i put it only to straighten the curly base voltage. The circuit was working perfect even without it, but why removing it anyway? We are talking about $0.05 !

The schematic circuit is as follows:

...It is ridiculously easy! Can be mounted on a tiny pre-drilled PCB, with the potentiometer on one edge. The rest of the circuit will be behind the potentiometer. The circuit is designed to be powered directly from the power supply of the PC (check the Power supply pinouts and get 12V from wherever you can).

Did it work?

Yes of course it did. The output voltage varies from 5 to 12 V. In case that your fan does not revolve with so low voltages, just increase the R3 a little bit. Here are some images from the oscilloscope, reading the tach of the fan:

In the lowest speed setting, the tacho feedback was 25.9 Hz. Multiplied by 30 (to convert to rpm) is 777rpm In the highest speed setting, the tacho feedback was 41 Hz. Multiplied by 30 (to convert to rpm) is 1230rpm. The fan is rated of course at 1200rpm.

There is a major drawback though. This circuit has a very bad habit. It generates a lot of heat on the transistor. I was rather surprised by the amount of heat. When i was making the PWM circuits, i ran some test with multiple fans connected in parallel, just for fun. The MOSFET was bone cold all the time. Now, with a 300mA fan, the transistor is getting hot. I suppose that for bigger fans, you may consider using a heatsink. Nevertheless, the only "problem" with this is that it does not have a really good efficiency. It will operate without problems.

The reason for all this heat on the transistor is the operation of the circuit itself. When the fan runs in full rpm, the transistor will strangely generate almost no heat at all! This is normal though if the fan is within the current limits of the CE contact of the transistor. The problem begins when the circuit is asked to reduce the speed of the fan. To do so, the transistor will dissipate an amount of power. The more the power the transistor dissipates, the lees the power delivered to the fan! This is how the fan runs slower. As you understand, when the fan runs with the lowest speed possible, the transistor will dissipate the highest amount of power. Thus, the circuit is most efficient when the fan runs at high rpms,

Bill Of Materials
R15 KOhm potentiometer
R2Resistor 100 Ohm 1/4 Watt 5% Carbon Film 
R3Resistor 10 KOhm 1/4 Watt 5% Carbon Film 
C110 uF 16 Volts electrolytic capacitor
C2470 uF 16 Volts electrolytic capacitor
Q1BD243 NPN Silicon Power Transistor 

Relative pages
  • The power connectors used for PCs since 1981
  • How the PC fans work
  • The transistor theory of operation
  • Learn about the most popular PC Cooling methods
  • How the Brushless motors (BLDC) work
  • Control a 3-wire Fan with PWM pulses and use the Pulse Stretching method to get clear rpf feedback
  • An intelligent self-tunned fan PWM controller
  • A 2-speed PWM temperature fan controller
  • Dr.Calculus: Voltage divider calculator

  • Comments


      Email (shall not be published)


    Notify me of new posts via email

    Write your comments below:
    BEFORE you post a comment:You are welcome to comment for corrections and suggestions on this page. But if you have questions please use the forum instead to post it. Thank you.


  • At 14 January 2016, 18:42:17 user Jay wrote:   [reply @ Jay]
    • Hi

      How can I calculate the number of RPM with the use of an oscilloscope?

  • At 1 October 2015, 9:21:52 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @EricD Yes, R2 is to keep the base sae from over current if the pot is set at min value. R3 is used to set the minimum voltage when the pot is set to max value, and not simply become 0 volts.

  • At 31 August 2015, 4:34:21 user EricD wrote:   [reply @ EricD]
    • Is there a specific reason why you put resistors on each side of the pot, is it for a safety matter?
      I just want to know if only one resistor between 12v and pot or ground and pot could do.
      I'm trying to get my 12v supply to go between 5v and 12v and place your fade in/fade out circuit at the output instead of a pc fan.
      Using the first diagram i've been able to have a longer but still smooth fade in and great delay by replacing the 470uf capacitor by 2 parallel 1000uf but the face out time isn't longer.
      I'm using an LM317 transistor for the controller and a TIP121 transistor inside the fade circuit.
      I'm building an oven and stove for my daughter. LED stripes will lit acting like heating elements.

  • At 23 February 2015, 5:43:14 user Ventisca wrote:   [reply @ Ventisca]
    • IMHO, relying on thermal factor is not quite right. You could add resistor on Emitter (or Source in MOSFET case) to compensate thermal increase and enhance stability (with several drawback e.g. voltage drop on the load), or you can add identical transistor in parallel (with additional adjustment in Base/Gate voltage/current driver) to divide the current into several transistor.

  • At 9 February 2015, 7:41:52 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @arts LM7809 is not a transistor it is a linear regulator

  • At 9 February 2015, 7:04:59 user arts wrote:   [reply @ arts]
    • what happened if the transistor is LM7809 instead bd243 npn is it okay or not...by the way thanks your video i tried this i like it.

  • At 13 June 2013, 19:41:25 user Xitos327 wrote:   [reply @ Xitos327]
    • this will work with 2n3055(tested and nothing explode)

  • At 21 May 2013, 5:02:37 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @Isuzu The emitter follows the base voltage with a difference of about 0.7V. We put the motor to the emitter so that the output voltage is almost the same as the base voltage, but the current is maximized. Its called "emitter follower"

  • At 21 May 2013, 0:55:52 user Isuzu wrote:   [reply @ Isuzu]
    • Hello, I found out that this circuit is exactly what is used by Rosewill variable speed case fan. The only difference is the transistor type which is Nec D338. Can you please explain why we put the fan on emitter leg. Usually as I understand load is put on collector leg for NPN configuration.
      In both configurations (common emitter, common collector ), current gain is ~ beta. So there is no difference in current gain.

  • At 8 May 2013, 19:05:32 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @Xali You can use all the range of the potentiometer to set min-max speed whereas with a simple pot you can only use half of the range and you can control more fans with one small potentiometer.

  • At 3 May 2013, 9:51:10 user Xali wrote:   [reply @ Xali]
    • Well, I'm just using 500Ohms potentiometers to control the speed of my fans, but I guess there must be a DON'T TRY THIS disclaimer and that's why you use extra resistors, capacitors and the transistor, so could you explain me why not just use a simple 100Ohm / 500Ohm potentiometer? instead of this circuit.


  • At 28 February 2013, 23:08:40 user armando92 wrote:   [reply @ armando92]
    • thanks for the circuit, it worked perfectly. I just had to use two 4x4cm aluminum sheets as heatsink for the transistor and replaced the 1/4 resistors for 2W just to have a safe margin.

  • At 14 February 2013, 15:05:43 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @Chris yes you are right. I must have changed the values but not the text. can't remember. i will fix it. thanks

  • At 11 February 2013, 6:16:56 user Chris wrote:   [reply @ Chris]
    • Hey, I really liked your article. I'm in the process of making something similar to this. As far as your voltage divider goes i'm having a hard time figuring out how "The output voltage varies from 5 to 12 V." Isn't it 8 to 12 volts (7.94 to 11.92) to be exact? Can you share your calculations. Thanks

  • At 24 January 2013, 6:06:15 user chris wrote:   [reply @ chris]
    • @Giorgos Lazaridis

      Thanks very much for taking the time to comment. I basically did precisely what you said, and found myself a really large heat sink for the transistor. I was taking apart an old stereo and I found a 4x1.5cm or so rectangular heatsink, with not a whole lot of thickness so I could bend it to a fittable in my case sort of shape, basically just a single sheet of aluminum with a few bent fins in it. It works much better for dissipating the heat produced now, being only a little warm when it's at low speed.

      Since having done this, I also replaced all my fans with lower rpm models (Bitfenix Spectre 120mm), so I can run them at higher voltage and get the same noise level. They only pull 0.16A each at full speed (which is barely audible too)

      As for pwm control, I'm aware its a more flexible technology, but I prefer the prices of non-pwm fans, and with this setup, I'm also able to pick up an rpm signal with pretty much no trouble. Its running pretty much perfectly now, almost silent at 11.2 volts, and compeltely at the 10v or so mark. my hard drive is by far the noisiest part of the system now.

  • At 11 January 2013, 13:46:29 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @Chris I suppose you use 12V for supply (from PC, right?). At 5.5V (i wonder how they still operate at 5.5V) the transistor must drop 12-5.5=6.5V. Although the fans do not draw max current at that speed, let's say that they draw 0.22A that is a total of about 1.4 amps. So, the power that the transistor will dissipate as heat is 1.4*6.5=9.1Watts. For the small area that this transistor has, it is a H-U-G-E amount of power, able to melt your breadboard in less than a minute. But for the transistor, it is just starting to operate. The transistor can dissipate 65Watts and can operate up to 150oC. So, all you need to do is add a generous (big) heatsink. If you connect 2 transistor they will only share the load, but still they will dissipate 9.1Ws of power. And still, at 4W they are getting hot! So you will need 2 heat sinks.
      Instead, let me suggest a PWM controller? No heatsink is required.

  • At 11 January 2013, 11:17:11 user Chris wrote:   [reply @ Chris]
    • Hi there, I've built this circuit, it works pretty well, however the bjt I'm using is getting unmanageably hot, conducting through the pot and everything. I think it would be because I'm running a heavy load at a fairly low setting (around 5.5-7 volts usually). My fans are 120mm, and I'm running 6 of them. They're rated for .25 amps so fairly high load...

      My question is, how would I attach a second transistor as a Darlington pair in this circuit? I understand that doing this would help to cool them down by distributing the load over 2 rather than a single transistor. Am I correct in thinking this? And if not, how would I go about doing what I am trying to achieve (cutting down the temperature that this circuit is running at).

      Thanks very much. I hugely appreciate all the articles and would like to thank the author of them, and commenters too for providing help that's available for all to read!

      Cheers, I hope you can help!

  • At 19 July 2012, 5:16:15 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @jimmy the transistor is connected as an emitter follower -> it amplifies the current. So, the voltage from the divider is seen on the output of the transistor (minus 0.7v), but the current is high enough to drive a fan.
      If you want to deliver some 500mA to a fan through a voltage divider, the if you use kirchoffs law to calculate the VD resistors you will see that they are way too low values, and a big amount of current will go through them, so you will need to have high wattage voltage divider resistors. That is why we use a transistor instead.

  • At 18 July 2012, 20:35:58 user jimmy wrote:   [reply @ jimmy]
    • n00b question here (but please make me understand !): why is the transistor needed anyway ? A voltage divider isn't enough to control the fan ?

  • At 11 March 2012, 22:09:12 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @tiec yes correct. the gnd of the 7812 must be connected to the gnd of the above schematic and the gnd of your supply as well...

  • At 11 March 2012, 21:24:59 user tiec wrote:   [reply @ tiec]
    • @Giorgos Lazaridis i like adding a LM7812 to the mix, just read the datasheet and it sounds incredably logic and sensible! Just to be sure:

      LM7812 input: to my 19v
      LM7812 gnd: to the - in the scheme above
      LM7812 output: to the in the scheme above

      Thank you so much for helping me!

  • At 11 March 2012, 9:23:04 user Giorgos Lazaridis wrote:   [reply @ Giorgos Lazaridis]
    • @ties yes i can confirm: Yes this is correct. As for the values, use the voltage divider calculator (http://www.pcbheaven.com/drcalculus/index.php?calc=voltagediv). You want V1=19. V2 must be 12V at maximum and about 7 at minimum. But i have a simpler solution: You add an 7812 to the circuit and have always 12V taken from 19. How is that? Also an LM319 can effectively replace both this circuit with the 7812, but you need to make the same calculations for the potentiometer and the resistors.

  • At 10 March 2012, 21:31:51 user ties wrote:   [reply @ ties]
    • First of all i have to admit i'm kind of a dummy here.. i build the circuit and it works great, so thanks for the design!!

      I added a heatsink to the transistor just to be sure..

      I want to use this diagram for a mini pc i have as well, but i only have access to 19V (from the adaptor).

      I looked long and hard to the design and came to the conclusion to make this work with 19V en a 12V fan i will probably have to replace R3 and R2.. can anyone confirm if this is correct and what the proper new values must be?

  • At 29 June 2011, 8:48:42 user mark_craig wrote:   [reply @ mark_craig]
    • could you make circuit for 4-6 fans controller? I'm newbie and I want to learn sth not buy everything. Something like scythe kaze q 4, 8, 12 would be great

  • At 20 June 2011, 20:15:59 user stephen wrote:   [reply @ stephen]
    • Goodto know, thank-you again sir! I have two of them for an intake and exhaust of air in a very small room of my basement I'm setting up for a shop/lab. They both move 250+ cfm so it should work nicely. I found that they run better with a slightly larger capacitors, when turning them up from a low speed. They are just DC fans with tach output.
      I have a few heatsinks from CPUs I will try. I figure if the CPU was rated at 125w then the fan should be ok to try at about 57w. I will build two of your circuts, first with 1 transistor as above. Second with two like you sugested below to see how they differ. I'm in the US and the part #s you use I can't find here, but I have been trying to Google the names and find replacements, per their data sheets.

      I will continue to read your great site and learn all I can, next project will be PWM as you sugested I try. I've breadboarded it but otherwise this will be my first ever circuit, and soldering. Thank-you again for all this site is and the work you do.

  • At 19 June 2011, 12:41:33 user Kammenos wrote:   [reply @ Kammenos]
    • @stephen a typical PC fan is not damaged if is undervoltaged. They simply stall.

  • At 18 June 2011, 10:57:51 user stephen wrote:   [reply @ stephen]
    • Wow that was a fast response, thank you sir I will try what you recommend. Is this what they call "darlington" pair?

      One correction from first post: I will only be powering the fan with 8-12 volts. If I run a fan below voltage range (5 instead of 8 for example) does it damage the fan? Using the above circuit it will run aprox. between 5v and 11.5v. It doesn't seem to stall at 5v and I think it restarts if stopped. I just don't want damage them. It's a Delta PFB1212UHE. Not sure how to post a datasheet or I would.

  • At 18 June 2011, 9:22:14 user Kammenos wrote:   [reply @ Kammenos]
    • @stephen first, the power dissipation. You want to drop 13.4-8 = 5.4 volts @ 4.8 amperes. That is some 26 watts of power to be dissipated by the transistor. This will require a BIG heat sink, keep that in mind. I am not sure if you will be happy with the results for such a motor. Let me suggest you a high frequency PWM for operation without power dissipation.
      Also, there is one problem. Your motor draws a lot of current. This means that you have to add 2 transistors, one to set the voltage and one to amplify the current. Use for example a BC548. The base of this transistor is connected to the output of your R1, the collector goes to 12 volts and the emitter is connected to the base of the T1 (BD243). The capacitor C1 will still remain on the wire that goes to the BD243. Try it.

  • At 17 June 2011, 22:29:21 user stephen wrote:   [reply @ stephen]
    • Great site! I've recently started learning about basic electronics, and first I just have to say THANK-YOU for putting together such an amazing website, it is very helpful.
      My question is about this linear fan controller. The fan I would like to control is 8-13.4 volts. And 4.8 amps. I tried to increase the lower end of the controller to 8 volts by increasing the value of R3. I was able to get about 6v but that was the limit. I have also tried larger pots for r1. Also found that I had to increase the value of C 1 and C2 in order for the fan to run properly. I don't entirely understand how everything works yet just reading and re-reading your theory pages and other sites, then experimenting using my best guess. Any advise on this would be very helpful. Thanks, Stephen

  • At 29 May 2011, 4:50:12 user Kammenos wrote:   [reply @ Kammenos]
    • @Nikos the transistor gets hot because it dissipates power. The heat that will be generated has only to do with the power dissipated. The slower the speed the more the heat. It could be that the fans do not draw the same current at low speed. You can test it with a multimeter.
      You can also calculate the amount of heat (in watts) dissipated by the transistor, if you measure the voltage across the transistor and multiply it by the current flowing through the fan (P=V*I)

  • At 27 May 2011, 23:11:42 user Nikos wrote:   [reply @ Nikos]
    • Sorry for double post but now I read the last 2 paragraphs from that page. But as I sayed to the previous post it doesn\'t get the same hot with each of the fans I tried. And both of them are 0,30A. And if the transistor can handle up to 6amper, I think it is not normal to get so hot with less than a half Amper.

  • At 27 May 2011, 22:07:08 user Nikos wrote:   [reply @ Nikos]
    • Good job, I was looking for that kind if circuit. I made it but the transistor gets really hot after a while when I slow down the fan. Actually I tried 2 different fans and whith the one of them it gets more hot... Is that normal? Because if it gets so hot with one fan, what if I add one more when I will use it for all day?

  • At 13 April 2011, 6:12:50 user ken wrote:   [reply @ ken]
    • erm the voltage does not change with the potentiometer. the voltage whenever i the red hook of the ddm on the positive lead of C1 it displays a negative voltage. when i put the red hook on the postivice lead on C2, its displays a 1.7-1.8V.

  • At 13 April 2011, 6:03:04 user ken wrote:   [reply @ ken]
    • it does not really change. the voltage slowly increases by 1v whenever i measure. it displays a 1.7-1.8V.

  • At 12 April 2011, 9:35:48 user Kammenos wrote:   [reply @ Kammenos]
    • @ken measure the voltage on the base of T1 (positive lead of C1) and on the emitter of T1 (positive lead of C2). The voltage on C2 should change while the voltage on C1 changes with the potentiometer. Does this happen?

  • At 12 April 2011, 7:48:00 user ken wrote:   [reply @ ken]
    • sorry to interupt again. i calculated my R3 value which should be around 2.5k ohm. however, the potentiometer does not control the fan speed again. furthermore i calculated the output voltage which is around 3.3V and the potentiometer does not increase or decrease the voltage.

  • At 12 April 2011, 7:07:16 user Kammenos wrote:   [reply @ Kammenos]
    • @ken yes you need to change R3. The idea is that R3 and R1 (R1+R2) perform a voltage divider. The output of this voltage divider is then driven to T1. This will determine the output voltage that will be delivered to the fan.
      To calculate it yourself, you should know how the voltage divider works, and then use a voltage divider calculator. Here is the theory:
      and here the calculator:

  • At 12 April 2011, 7:03:32 user Kammenos wrote:   [reply @ Kammenos]
    • @byran sure it can. You may need to change R3 though

  • At 12 April 2011, 6:49:26 user ken wrote:   [reply @ ken]
    • so does this means that if i change my value of R3, the speed of the fan is controlled by the potentiometer ? how do you calculate the value of R3 ? sorry for the trouble cos im stuck with my fan circuit

  • At 12 April 2011, 6:42:47 user byran wrote:   [reply @ byran]
    • 25 X 25 X 10 AD0205MB-G53 operating Volt-5Vdc current-0.07A power-0.35. im wondering whether this mini-fan can work in your given circuit.

  • At 11 April 2011, 7:16:04 user Kammenos wrote:   [reply @ Kammenos]
    • @ken that is normal ken because the R1-R2-r3 network is calculated for 12V fans. First, what is the power supply that you will give? If your fan operates at 5 volts, then your power supply must not exceed 7 volts, otherwise the transistor will heat for no reason.
      Your problem will be solved when you change the value for R3. The best way to do it is with trial and error. Or if you do know what is the minimum voltage that the fans operates, then you can calculate it. If your fan operates normally at 3 volts minimum, then R3 must be 7.6KOhms. If 2 volts is the minimum, R3-3.4Kohms. Now that you know approximately the range, you can try different values.

  • At 11 April 2011, 6:59:37 user ken wrote:   [reply @ ken]
    • i used this circuit to try it on a mini fan circuit which its operating voltage is 4.5 - 5.5v. the circuits works however the fan control is not controlled by the potentiometer but the power supply. therefore i need help as to why it will happen because i need to control the fan speed on the potentiometer and not on the power supply

  • At 28 February 2011, 13:36:06 user ben wrote:   [reply @ ben]
    • Thank you for reply, your explanation has cleared a lot of things up for me.

      I'm still learning to read the data sheets and develop an understanding of how these simple circuits work. Ill be breadboarding this at the weekendso perhaps I will return with some further feedback.

      Thank you again for your reply and in pitting together such an informative site.

  • At 25 February 2011, 18:43:52 user Kammenos wrote:   [reply @ Kammenos]
    • Ben, the potentiometer has nothing to do with the maximum fans. Only the transistor defines the max fans.
      There are 2 parameters that you need to take into account. First, the maximum current. For this transistor, it is 6 Amperes. If each fan draws like 0.5 amperes (that is 500mA), then this transistor can handle up to 12 fans.

      BUT, you also need to take into serious account the power dissipation. This is how to calculate it. The power dissipation of the transistor is calculated by the voltage between C and E, multiplied by the current that flow through. As you are new in electronics, i suppose that this does not make too much sense. So, let me give you an example:

      The above circuit, regulates the voltage from 5 to 12 volts, with power supply 12 volts. So, the maximum voltage drop that the transistor will be forced to create, is Supply-MinVoltage => VD = 12-5 = 7volts

      If you read the datasheet of the transistor (which i recommend you learn how to read the datasheets), you will see that the max power that it can dissipate is 65 watts. So, you can calculate the max current:

      P = V*I => I = P/V => I=65/7 => I=9.2 amperes

      So, regarding the dissipation, it can handle up to 9.2 amperes, but the maximum current is 6 amperes. So, you can consider as maximum fans 12. If of course your fans draw more current, you need to recalculate.

      Another thing is the heat sink. The more the fans you add, the more the power dissipation, so the more the heat the transistor creates. You may be surprised when you see it getting heated up, but it could be normal. I strongly suggest that you test it and if it gets too hot, add heatsink.

  • At 25 February 2011, 13:47:59 user Ben wrote:   [reply @ Ben]
    • Hi, Im new to electronics, Ive been dabling recently in the aim of creating some of my own PCB\'s for various tasks in a new computer build. However I am a total novice. One of these is a fan controller.

      Id like to be able to add multiple fans to be controlled by a single pot, I am aware that with prebuilt fan controllers each channel has a maximum wattage it can handle which is relative to the number of fans that can be used. In your simple circuit what defines how much wattage the pot can handle? or am I looking at this in the wrong way?

  • At 17 July 2010, 14:44:28 user Kammenos wrote:   [reply @ Kammenos]
    • That's correct. The oscilloscope shows the feedback from the third (usually yellow) wire of the fan. The circuit output is NOT 0-12 though. Depending on the fan that you use, the lower voltage should be 5 to 7 volts. This very circuit regulates the output from 5 to 12 volts.

  • At 17 July 2010, 14:32:17 user herctrap wrote:   [reply @ herctrap]
    • i was saying that the oscilloscope screen shows the return from the yellow wire of the fan right?

      your output is a DC voltage between 0 and 12V

    reddit this Reddit this

     HOT in heaven!

    NEW in heaven!

    New Theory: AC electric motor working principle

     Contact     Forum     Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science     RSS   

    Site design: Giorgos Lazaridis
    © Copyright 2008
    Please read the Terms of services and the Privacy policy