Project: NTC fan speed control

This is my first (and I think my last) “big” project in CircuitLab, just to see what can be done here, compared to my breadboard.

So I started by using CL instead of using the breadboard - and finally wrote some documentation.

The idea was to control a 4 - wire fan in a “kind of” computer.

The problem:

One corner of my Apple Time Capsule (“TC”) gets pretty hot, which is quite “normal” as I’ve learned, but I don’t want to wait until it fails (see the links at the bottom).

Instead I want to modify the TC’s case and to control the fan speed depending on the temperature of the TC’s power supply (that’s the idea).

This could be done by modifying the TC’s firmware (best solution, but sorry, … Apple), or using a micro-controller, or some electronic parts (this project).

The micro-controller is still my favorite (e.g. using the ATtiny45), because there is literally no space available in the TC and the MCU would require very few external parts.

However, here is my old fashioned attempt, first time in a CL project.

I’ve started using the timer 555 and I thought I could do it with one single 555, but no luck, I had to use two of them to get a stable frequency and the desired PWM range … ?

So from the beginning the project was based on three parts (for easy design / simulation):

Part 1(variable PWM, there’s more background information to the project) Part 2 (clock) Part 3 (sensor)

All parts have some “decoration” to explain the whole project:

Next I copied the parts together into one diagram to see if CL could run a simulation of the whole circuit.

OK, that wasn’t possible at first. Due to my personal bench top PSU the CL’s “Solver” struggled with the solution in a “reasonable” time (to me “reasonable” is less than one minute on my machine).

But wait! Let’s reduce Ri_PSU to zero: Bingo, solves in about 45 seconds. Setting Ri_PSU to 1 Ohm is even faster, about 30 seconds. So there is a (CL) problem between zero and one Ohm.

Because I’m always curious I’ve tried the circuit with 1 mOhm, letting the solver work for five minutes (28 %), then clicked “Cancel”.

Hey! This is a feature, after “Cancel” the solver isn’t shy to show what it got so far:

Surprisingly the “PSU issue” (the ramp up along the Ri_PSU) was long ago, the plot goes from zero to 100 (of 400) usec. Thus the ramp is looong ago but the sim still seems to be hard work. It’s the Ri_PSU below one and above zero. I guess this is a basic CL issue. :-(((

Anyway, I can live with Ri_PSU of 1 Ohm here, so I’d say CL did it:

Success !!! Kudos CL !!!

Now I had still two questions to answer:

1) How close is the simulation to the reality?

2) Will the ICM7556 and the other parts fit into my TC?

---> After building the circuit on my breadboard I found: CL meets reality, just perfect!

---> And the parts fit, but only in “dead bug” mode, no space for a PCB.

I think I’ll go for the the ATtiny45 now ...

Please feel free to comment / suggest / improve, thanks for reading and have fun!

Regards, Sancho


  • For more info about PWM and fan control see: Take care: Apple have their own connectors and fans …

  • For more info about dead Time Capsules and repair: ( - - - recommended anyway: Type 3 “repair” ! )

by Sancho_P
November 07, 2012


Well done that man!

A complete design in CL with a full report of the finished project.

Many thanks for sharing that in such detail.

by signality
November 08, 2012

@signality: Thanks, I’ve learned a lot here and wanted to give something back at least.

I think there should be more documented and tested success stories to shift back the focus from theory to praxis (sorry for that, anyway ;-) ).

Simulation is good but reality is better.

1) BTW, is there a better way to serve the purpose, better would be “works, but uses less parts”, a hint, just to trigger a “think about”?

2) I’ll try to add a plot showing the measured fan speed over temperature. Till now the peek value was 59 °C air temperature, I assume component surface temperature will be not more than 10 degrees higher (with air flow), but I dunno.

Regards, Sancho

by Sancho_P
November 10, 2012

"Simulation is good but reality is better."

Good simulation makes for a better reality.


A lot of the arcane and obscure theory - behavioural this and parameterised that - is to try to make the simulation better indicate what that reality will be.

Particularly in CL where a lot of the features and models of spice are missing and where the simulation engine is still maturing, these tricks and workarounds are necessary.

CL has come a very long way in a short time but has a lot left to do to reach the level of sophistication and stability that spice has reached after something over 40 years of development.

" ... is there a better way to serve the purpose, better would be “works, but uses less parts”, a hint, just to trigger a “think about”?"

There are some good examples of that. Have a look at this thread:

Obviously there are times when someone may need a 'use this, it just works' answer but I try - with varying degrees of success and often abject failure - to post hints and suggest ways of thinking about or to approach a problem rather than just posting a complete solution. People, especially students then have the chance to think and hopefully learn more that way.

by signality
November 11, 2012

There are several simulators out there for friends of “arcane and obscure theory”, no need for another. Where is CL going to?

Sorry to say, in my opinion CL is at both, the beginning and the end, a flash in the pan. Nice attempt, though, and brilliant in several aspects. But where is the target, the business model, the community, what would potential “clients” expect, why and when? Time will show.

Yeah, I’ve seen that thread.

But I thought about “controlling a PWM fan”, a different method, e.g. using only three transistors or so …

Regards, Sancho

by Sancho_P
November 12, 2012

OK, now I have updated the “NTC fan speed control” by adding another behavioral voltage source to represent the measured fan speed in the TDS.

  • But it’s not a “fan”, it is called a “blower” in English (sorry, my fault).

My dead bug circuit doesn’t fit so it is still an annex to the original case. I guess I have to make another one :-((

by Sancho_P
November 13, 2012

"fan" works for me!


by signality
November 14, 2012

Post a Reply

Please sign in or create an account to comment.

Go Ad-Free. Activate your CircuitLab membership. No more ads. Save unlimited circuits. Run unlimited simulations.

About CircuitLab

CircuitLab is an in-browser schematic capture and circuit simulation software tool to help you rapidly design and analyze analog and digital electronics systems.