Multivibrator in theory and practice

We must admit that we’ve been guilty of using a microcontroller to make two LEDs blink alternately in the past. It’s not the worst transgression, but it stems from our discomfort with analog circuits. Luckily, [Ray] published an illustrated guide on building multivibrator circuits. This is a simple method of assembling a two-output oscillator. All it takes is a pair of NPN transistors, which are then switched by on and off based on a resistor-capacitor (RC) timer.

[Ray] does a good job of walking us through how the circuit works at each stage of one complete cycle. You’ll need to read carefully, but the supplementary schematics he uses to water down snap shots of the various electrical states really helped us understand.

Of course, blinking LEDs isn’t the sole purpose of a multivibrator. It is a method of producing a clean square wave which can be used as a clock signal for TTL logic chips. Oh, who are we kidding, see the blinky goodness for yourself in the video after the break.

1. A multivibrator, for those occasions when one vibrator is just not enough. ;-)

2. dbear says:

Base component cost (based on digikey)

Multivibrator(all through hole) = \$1.36

Microprocessor (pic 10F200 through hole)= \$0.41

BUT you have to have some way to program the pic.

• therian says:

2 transistors and 4 resistors do not cost that much. unless you get stuff from radioshack

• sk says:

I built this exact circuit a few months ago for an alarm panel.

• Will says:

There is no PIC involved with this at all, so the need to program one does not exist :)

• Ivan says:

Now go make 100,000 products, half of them using the PIC and the other half using this. See which one goes cheaper. It’s all about quantity.

• Ray says:

Hi dbear, I use mouser more often. Here is the total unit price for purchasing two 2N3904, four resistors, and two 1uF capacitor, all through-hole: \$0.3 for quantity 1, \$0.228 for 100, \$0.182 for 1000.

10F200: \$0.49 for quantity 1, \$0.34 for 100, \$0.34 for 1000.

• dbear says:

My point was that the micro is more expensive for low quantities. But the old way is very often the best way. Not everything needs a micro. And I cut my teeth on this stuff from old Forest Mims books.

• Bill says:

You’re forgetting 555 timers (in case you want a blinky-light technology in between multivibrators and microcontrollers), and you’re forgetting LEDs on the serial/parallel/USB port of a multi-core multi-GHz PC, and graphical emulations of LEDs as an iPhone app :-)

For the 555 design contest (www.555contest.com) I built a multivibrator using a circuit pretty much like this one, and fed taps from both sides into the inputs of a 556 (dual 555) timer which drove some more LEDs. It turns out that the input impedance of a 555 isn’t very high, because it’s in fact three 5kOhm resistors, so even with a diode and resistor it slowed down the multivibrator a lot. I really need to try it with a CMOS 555 and see if that behaves differently than the silicon versions.

• AussieTech says:

Actually you’re talking about the CV point which is intended as a by-pass point, not an input. The actual inputs of a 555 are Trig and Thresh which are comparator inputs. The Trig input current is 0.5uA typ to 0.9uA max, and the Thresh input current is 0.1uA typ to 0.25uA max, which represents a much higher input resistance than the CV point (which is basically 5k in parallel with 2*5k). These figures are lower again for the CMOS 555.

An astable flip-flop like this can be reasonably stable, provide reasonable mark/space or duty cycle, and oscillate up to MHz if required. The basic stability of a 555 is no better because it also depends on the same sort of external components, is harder to get equal mark/space, and limited in upper freq.

3. dbear says:

Or you can use an arduino for \$30 ;)

4. Darren says:

In high-school, I generalized the circuit upwards to produce a three-state multivibrator.

My electronics-genius friend didn’t like it because he expected it would transition between the three states with one LED on at a time… instead it transitioned between three states with one LED off at a time.

Grad school limits my time for recreating it, but anyone out there want to do so and make a video?

four-state? more-state?

• Ray says:

That’s awesome, I would love to know or think about how to extend the two-state to three-state or more. Would you mind sharing your three-state design?

• AussieTech says:

2 state

Two stages cross-connected…

–in—out—in—out–
| |
<———————-

3 state

Three stages in a ring…

–in—out—in—out–in—out—
| |
<———————————

…etc…

• Tyler says:

Maybe go digital with a counter and shift register?

• Ray says:

Well, that wouldn’t be as fun and challenging as building something out of basic discrete components, isn’t it?

5. Darren says:

Crud. It was a momentary-switch triggered multi-stable circuit, not a multi-vibrator.

6. DerAxeman says:

I used one of these circuits for a customer. Since I needed the high power transistors to drive the LED lights it was a no brainer vs microprocessor based solution. I finished the project with a total of 7 transistors. This raised and lowered a boom as well and kept the lights flashing while the boom was being raised and lowered. It also fit on a single layer PCB. Considering with a mcu you would have had to program every one or paid to have them all preprogramed, the entirely analog solution was the cheapest possible.

7. Infidellic says:

I wouldn’t rely on this for decent

8. Infidellic says:

as I was saying:

I wouldn’t rely on this for a decent square wave. Unless the components are very tightly matched and exposed to the same thermal conditions etc your duty cycle will wander

9. Carlos says:

Finally a decent explanation.

Man, if I had a penny for every time I’ve seen this circuit explained incorrectly…

10. Microguy says:

This circuit is easily modified with a center tap transformer, so you can make a nice little DC/DC converter when you need one. Isolated power, higher voltage, negative voltage….

Not really efficient, but it works for powered applications.

I’ve been using it for decades.

Just put about 16 or more center tapped windings on a toroid, send one center tap to V+, it’s ends to the collectors. Then you have a center tapped winding free floating, depends on you how you hook it up.

You might have to play with some values to get it working, but it works well.

• Ray says:

Very interesting to know that. In fact I first got interested in the multivibrator when I reverse engineered a boost converter that employs a multivibrator to generate boosting PWM signals. One interesting thing I noticed (which I’ve never seen elsewhere) is that it puts an inductor in series with R4 (i.e. T2’s collector resistor). This leads to a voltage boosting effect itself, producing a high-voltage pulse wave output from O2 (up to 13V from only 2.4V battery power). The high-voltage pulse is then fed to a simple boost converter to produce 24V output. This design has quite impressive efficiency, which I was never able to beat by either using the mcu’s PWM or even a monolithic booster converter.

11. johndavid400 says:

this is cool and useful… might add a dual pole potentiometer in place of those 100kohm resistors to create a delay control, making the LEDs blink faster/slower.

12. gvelasquez85 says:

I won’t rely my TTL logic to a Multibrivator… I would preffer a piezo-electric crystal oscillator as well, but the 2N2222 will be always my best-electronic-friend

13. DjKiDD says:

What is the fastest you could get a circuit like this to blink?

The smaller the capacitor the faster it will blink?

• space says:

@DjKiDD That depends on transistors. You could probably get megahertz out of it with general purpose transistors.

• Ray says:

Yup, smaller resistors and capacitors will make it faster. Recall that the frequency is determined roughly by: 0.721/(R*C) (assuming R2=R3=R, and C1=C2=C).

As space pointed out, there is a limit on the frequency imposed by the capability of a transistor. Say, if you want GHz waves, this is not going to work. But I can’t think of any reason why anyone would want to blink LEDs at that frequency.

• NewCommenter1283 says:

… the LED has a max feq too, if i remember correctly.

but i might just be thinking about it’s capacitive effect bleeding RF …

I built a multivibrator awhile back. I was looking for a very low power way to create a trigger pulse once a minute for 1 second. I got a pretty good prototype working, but it ended up drawing 20-30mA. Then i found the ICM7555 an ultra low power 555 that only uses 60uA!!! There is still a few mA draw from the resistors and capacitor but it was much lower power

15. Johan says:

A tip is to use some software to play around with this (LTSpice, ngspice or something like that) to see what happens. For some (me at least) it is a more accessible way to play with electronics.

16. anyone says:

well suck me sideways! this website with an analog circuit and no adrunio? i dont fucking believe it…

• JohnBailey says:

It’s ok.. Someone has already posted how much cheaper a PIC is.

• anyone says:

whats ok? that this can be done in a pic/tiny/msp430/8051/68k/etc/etc too? who said there is anything wrong with that?

im confused…

I don’t know if I would call this an analog circuit…. how about a Discrete Component Circuit?

• anyone says:

how isnt this analog? just because it has active components, that makes it digital? or is it because they are running in saturation?

still, i argue that it is an analog circuit.

I’ve wired this CKT time and time again… PICs and Adrunios may be nice and programmable, but when you need to dissipate 100W of power you will need some external components.
Build this with 2N3055s and you are looking at 115W per side at up to 2.5MHz
As per earlier question, the 2N2022s run up to about 250MHz and remain fairly stable

17. p0e says:

…. how do you program the transistors….?

• dbear says:

They are pre-programed from the factory in a programming language called physics. The programming is permanent and non-volatile. 8)

18. Jason says:

Its funny I actually buit this circuit (i believe i got the info from his site) Anyway my goal however, was to ultimately replace the leds with electro magnets, for a type of clock I wanted to make. However, as soon as there is a load the current stops switching, Anyone know how I could modify it so that it works?

• dbear says:

Drive mosfets with the outputs and drive the electromagnets with them.

• matt says:

Could it be used in that way to make a metronome instead of a clock?

19. raako71 says:

I can just imagine anyone over the age of 30 would just crash into a defeated heap reading “it stems from our discomfort with analog circuits” … poor kids with their wireless phones that can play movies for fun

20. Miroslav says:

This circuit is marginal at best. With transistor gain of 100 it will barely saturate. Collector resistors must be larger, or base resistors smaller, for this to reliably work. 2N3904 has guaranteed gain less than 100 at low collector currents, I believe.

• Ray says:

Using a darlington transistor (such as MPSA14) in place of 2N3904 can improve it.

21. Aaron says:

So, If I wanted to use this circuit to run two sets of 12V led strips in place of the leds on the board,(So, 4 12v yellow/amber 1ft strips total) what changes would I need to make?
I’m thinking of using it on my snow truck as warning lights.

• Ray says:

Use a MOSFET that can sustain the total current required by the LEDs. Connect the MOSFET gate pin to the multivibrator output (O1 or O2), source pin to ground, and drain pin to the led negative. The led positive should be connected to +12v.

Note that if you want to power the multivibrator with the same 12v power supply, you need protecting diode (in series with the base or emitter) to avoid the transistors from being driven into reverse breakdown voltage (which is typically only 6V for 2n3904). Alternatively, you can step the 12V down to 5V (say, by using a 7805 regulator) to power the multivibrator.

• Aaron says:

Thank you, I’m fairly new to electronics, I will whip up an eagle cad drawing of it and submit it back here to see if I did it right. (It should be simple enough that even I can pull it off :P )

• Aaron says:

When you say a protecting diode in series with the base, what do you mean? Just a run of the mill diode in series with the transistors somehow?

• Ray says:

Check this webpage:

http://www.sentex.ca/~mec1995/tutorial/xtor/xtor7/xtor7.html

Figure 13 and the related description. This is needed when your supply voltage is higher than 9V.

As I said: the alternative method is to user a voltage regulator to step 12V down to something like 5V to power the oscillator circuit. You can still use the 12V to drive the LED (through MOSFET).

22. Aaron says:

First off, I REALLY appreciate your help.
On that link you sent, it shows this circuit (with slightly different resistors) accepting up to 20v; since my voltage doesn’t spike over 16, should I just give it a try?

I have the circuit laid out and working, when I went to radioshack, they had a kit to do exactly this, but with a variable resistor. It was rated for a 9v battery. Right now I have a 5v current flowing into the kit, and it will flash the led strips, but only at half power. I wired the source of the the mosfet to -12v, the drain to the – side of the led strips, and the gate I have just been probing around the circuit with. When I touch the flat side of a led (negative?) it will flash at 1/2 or 1/4 brightness, if I touch it to the other side of the led, it goes to full brightness, but doesn’t flash.. any ideas?

• Ray says:

Yes the circuit should work for your voltage. The different resistor values just give you different frequency. You can adjust them based on your desired frequency. Also, note that D3 and D4 in Figure 13 of that webpage are optional — these two are used to make sure the frequency is accurate. If you don’t care about a small amount of error (2%) in the frequency calculation, you don’t need them.

I don’t quite understand your current setup: where do you connect the MOSFET gate to? And where is the led positive connected to? When you say you ‘touch the flat side’ you mean connecting some pin to the flat side, or you mean using your hand to touch it.

• Aaron says:

The led strip positive is hooked to 12v positive.

When I say flat side of an led, on most there is one side sanded flat to denote either the positve or negative pin, I forgot which it denotes.

Right now, the mosfet gate is just connected to a wire I had and I was using it to probe different points on the board. I will post pics in a few minutes

• Aaron says:

This has everything labeled:

this is half power:

This is constant full power:

I know I need to actually solder them up for a final product, I just have not yet.

• Ray says:

I am not sure about the specific radioshack circuit you are using. But you should connect the MOSFET gate to the transistor’s collector, or the capacitor’s positive lead.

Also, it seems that your battery has bipolar outputs: +12V, ground, and also -12V. Is that right? Given that the MOSFET source is connected to -12V, you are subjecting the LEDs to 24V when the MOSFET is turned on. You should check if this will exceed the LED’s spec.

• Aaron says:

Well here is the schematic of the radio shack circuit.

As far as bi polar outputs, that is just my stupidity. Its a regular 12v battery; Its going in my truck. Sorry for that confusion, and thanks for the concern. That is good to know though, because I would have just assumed 12V- was ground in a future project.

You are saying connect where these red circles are, correct?

Right now I have it going
Battery > Circuit
Transistor Collector> MOSFET Gate
MOSFET Drain > LED
MSFET Source > Battery
the strips will flash about 1/2 power connected directly to the transistors, or they are staying in the full power position connected to Mosfets.

I am using the IRF510 Mosfet.

Here is a real quick video I shot just in case my description didnt make sense.

• Ray says:

All right, I guess the most productive way now is to draw a schematic. Here is the circuit with your added components (two IRF510 MOSFETS and two LED strips).

Note that the LED strips are connected to +12V line, and the oscillator circuit uses +5V. You can either use a 7805 voltage regulator to produce 5V from 12V (as shown in the drawing), or use separate batteries/supplies as long as they share a common ground. From the video it looks like you are using a PC power supply. That’s ok, since you have both 5V (red wire) and 12V (yellow wire) sharing a common ground (black wire).

Hopefully this can fix your problem.

23. Aaron says:

I actually had it hooked up that way in the video at one point.. The molex connection had ground, 12v and then the yellow and black that are next to each other are the connections to the transistors. It was easier to work with that way. I have tried it exactly as you have it set up, and for whatever reason, the mosfet did not seem to want to toggle.

At this point, I think Im just going to go hook it up directly the truck without mosfets or the regulator, and see how bright it gets/if it blows up. if it works, it works. If it blows up, there went \$3.

I really appreciate your help, Ray!

• Ray says:

No problem. Just one quick note: in the video at one point you mentioned that the MOSFET gate pin is not connected to anything. Not sure when you would ever want to do that, but leaving the gate pin float is sort of letting the MOSFET lose control. The gate should always be connecting to something.