Fork me on GitHub

Project Notes

#089 BreatheLamp

Build and test a common LED visual effect circuit.


The “Breathing Lamp” is commonly found from sellers on ebay and aliexpress as a cheap parts kit, for example: M126 Blue Led 5MM Light LM358 Breathing Lamp Parts Kit

So what exactly is a “Breathing Lamp”? That’s what I wanted to know! It turns out to be quite prosaic: the circuit is just an op-amp oscillator controlling the intensity of an array of LEDs.

Most of these kits are based on an identical circuit and use the two op-amps from an LM358. The circuit diagram is published by most sellers.

But at first glance, the way the op-amp oscillator is wired looks a bit strange - so the primary purpose of this build is to understand how the oscillator is designed.

Note that in this build, I’ve used 2 quarters of an LM324 op-amp, since I don’t have an LM358 on hand.

A sample trace confirms that the two op-amp units are operating as a square wave multivibrator integrated to a triangle wave. The triangle wave is used to control the LED array (via Q1 BJT). The duty cycle is far from 50%, but this probably enhances the effect.

The lower trace is the square-wave output of the first stage (pin 7), and the upper trace is the triangle-wave output of the second stage (pin 1).

processing trace

What’s a little confusing is the fact that C1 is performing double-duty in both stages of the oscillator. I haven’t exactly untangled it all in my head yet, but its a curious thing that it works.

It also seems this could be simplified by reconfiguring as a comparator–based relaxation oscillator, and only require a single op-amp unit. I might try that later…

From a parts cost and count perspective, I’m not sure there’s much advantage in using an op-amp oscillator over, for example, a 555 timer-based triangle wave generator.



The Schematic

The Build

Credits and references

About LEAP#89 OpAmpLED
Project Source on GitHub Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is my personal collection of electronics projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.