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: DIY Interesting Product Suite 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

Project Source on GitHub Project Gallery Return to the LEAP Catalog

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

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - 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
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.