Updated 1/1/04 Ive been watching the posts about wanting a fanbus controlled by 2 pushbuttons. So after 2 failures and one success, here is my humble solution: 2 buttons, one to switch from one fan channel to another, and one to change voltage level from 6V to (almost) full 12V in 8 steps (a step = 0.85V). Each fan channel has a blue LED to indicate which fan you are currently controlling, and a 8bar LED bargraph to show voltage level. This circuit will produce a top voltage level of 12V - 0.15V. Something Ive been trying to work out for awhile. So you go from 6V to 6.85V to 7.7V to 8.55V etc till you get 11.85V. The circuit will store all fanchannels settings in memory. So if power is turned off, the system will remember what each channel was set at from the last time. Also, a NC 5V relay is used to give all fans 11.85V supply in case of circuit failure. The relay is shutoff once the system takes control. This way, you can turn your computer off and on without losing your fan settings, and you dont have to worry about something going wrong and all fans being shutoff due to component failure. PartA of the circuit: The way this works is using a voltage division circuit with 3Amp TIP42C PNP power transistor and a general purpose NPN 2N3904 transistor to change from 6V to 11.2V. This is taken from cpemma's transistor fan control guide. For inputs V2 to V8, you select different resistor combinations to achieve the voltage division neccesary to get your voltage steps. The only drawback of this system is that the 0.7V drop on the NPN transistor (Q2) takes away 0.7V from the motor. In order to get as close to full 12V as possible, Ive added a way to shutoff the voltage divider circuit and apply the base of the TIP42C to ground. Doing this means you only get (I measured this after testing each circuit pattern) 0.15V drop across the Emitter-Collector junction of the TIP42C. V1 input closes the base to ground path, while the inverter opens the connection to R9 (the resistor used to create the voltage division). A normally closed 5V relay is used to close the ground connection (bypassing the V1 input) as a way to protect the PC from inactive fans in case of circuit failure. The SL input will have 5V input when the circuit is ready to takeover. A 4PDT relay would be best, spread out between the fan channels. Edit: A ULN2803 octal darlington driver is used to pull each resistor to ground. Here's PartB: The V1:V8 inputs are done by an Octal D flip-flop Latch. Each channel will require one latch for controlling voltage division, and one latch for displaying the bargraph. The bargraph could be connected to the Latch that controls the voltage division, but only one LED would be lit at a time. Using diodes would cut too much voltage away. And it would take 32 diodes anyway to try to get the same effect. CS (channel select) is used to enable the latch to latch in the data to control the fan. Using the enables on the latches means you have an 8 bit data path, and 2 lines per fan (one for CS and one for DS Display Select for displaying the LED bargraph). PartC: Using a 28 pin uPIC, you send out your 8 bit data to your latches and CS/DS control lines. The blue LEDs can be directly attached to the output of the CS lines. The current circuits show a 4 fan fanbus, but there are 2 open output pins left to make another. You would need to get a 28pin device that has writable EEPROM, so the voltage settings would be stored in memory. The boot-up part of the code would retrieve the last recorded settings and apply them at power-on. Once voltage levels have been established, the relay is given 5V (to open the switches). The 2 buttons are used for the following: Button1: switches from fan to fan. Button2: adjusts voltage level of current selected fan. Ive tested all of the PartA circuits. It works like a charm. The rest is easy stuff. This requires no use of the often abused 4017, and no need for timing. All of this is handled in the code. If you want to know how to code a uPIC for this circuit, I beleive there is a thread about that hanging around somewhere......... An alternative would be to use an 18pin uPIC and use a 3:8 demux for the CS/DS lines to reduce input/output lines. This would require that the 18pin device have EEPROM and internal oscilating setting to free up 16 input/output lines. It may seem like overdoing it, but I'd like to see an alternative that provided the following: Full 12V supply. No power circuit protection (fans fully on). Proper voltage display. All settings stored in memory when no power applied. Multiple voltage stepping, no 0V-7V-12V trick. PS: I just noticed the CP output. That can be ignored, as I put it in there for using non-latching D flip-flops. I just didn't change the circuit diagram. EDIT: Some mistakes I noticed. The buttons should be tied to ground, and the 1kOhm resistors connected as pull-ups. There should be a 1N4001 in parallel attached to the relay coil for current-switching protection. As I said, I tested PartA to make sure all voltages and currents were OK. My first attempt was to change the base current to alter fan current. The BJTs didnt want to work the way I wanted them too. But I wouldnt post this without having tested to make sure this worked. This circuit works the way its supposed to, upto 300mA load. Theoretically, this should work upto 1 Amp.