Dual-Wave LFO
One NE5532, a triangle and a square at once, and a knob that blends them · By Onion Madder · Mess O' Pedals
Two op-amps chasing each other. One integrates - it charges a capacitor at whatever rate you feed it, so its output ramps in a straight line. The other is a comparator with hysteresis: it watches that ramp and slams its own output to the opposite rail the moment the ramp crosses a threshold, which reverses the charging and sends the ramp back the other way. Neither one oscillates. Wired to each other they cannot do anything else. You get a triangle on pin 1 and a square on pin 7 at the same frequency, at the same time, and a 1K pot blends between them - all the way over is one shape, all the way back is the other, and the middle is whatever lopsided thing lives between. It is the same circuit as the breadboard Dual-Wave LFO, soldered down.
What you'll need
tap to expand / collapse
- 1× NE5532 dual op-amp, 8-pin DIP - spot it: 5532 in the part number, a notch at one end and a dot beside pin 1. An LM358 is the same pinout and is actually specified for a 9V supply - see the supply note below before you choose
- 1× 47K resistor (R1) - sets the fast end of the rate sweep. Spot it: bands yellow-violet-orange
- 2× 10K resistors (R3, R4) - the mid-rail divider; a matched pair matters more than the exact value. Spot them: bands brown-black-orange
- 1× 100K resistor (R5) - the comparator's feedback. It is the one part on this board that stands on end, across two holes. Spot it: bands brown-black-yellow
- 1× 1 µF film capacitor (C1) - the integrator cap. It sets the rate, so film, not ceramic. Spot it: a little box or oblong, either way around
- 1× 47 µF electrolytic, 16V or higher (C2) - holds the half rail still. Spot it: a little can; the stripe marks the minus leg, which goes to ground
- 1× 100nF ceramic (C3) - supply decoupling, one hole from pin 8. Spot it: printed 104
- Stripboard, at least 16 holes by 8 strips, and four short lengths of wire for the links
Off the board
- 1× 100K linear pot (VR1) - rate. Spot it: marked B100K. Only the wiper and lug 3 are used; the third lug stays empty
- 1× 1K linear pot (VR2) - blend. Spot it: marked B1K or B102. All three lugs, and its wiper is the LFO output - that wire never touches the board
- 1× output lead or jack - tip to the VR2 wiper, sleeve to GND
- 1× DC jack or battery snap - 9–15V, and 12 to 15V is the better choice here at no cost in rate. See the supply note
- An SPST toggle for power, in the positive supply lead between the DC jack or battery and the board's supply pad. Not in the layout file - it is off the board, and every build on this shelf gets one
The layout file is the guide
Like the 555 theremin and the Cicada NAND, the build document for this one is the file itself: ↓ Download Dual_Wave_LFO.json - import it into Copper Bottom and the editor gives you the board picture, the placement walkthrough, the electrical checks and a printable build sheet, all from the same file. No coordinates are written out on this page on purpose: the editor is the viewer, and a number typed twice is a number that can drift.
The chip, at a glance
The netlist
Quoted verbatim from the layout file. It was written from the board, so checking the board against it can only pass - what it is for is carrying the circuit somewhere else, and telling you what each strip is supposed to be doing while you stare at it.
The chip is doing most of the routing. The cut column splits each of the four strips the DIP straddles into two separate nodes, one pin on each side - so V+, ground, the triangle, the square, the integrator input and the comparator input are all just copper the chip is already sitting on. The one pair the circuit wants joined is pins 3 and 6, both of which want the half rail, and they are the one pair the cut separates. That is what J1 and J2 are for, and it is the only place this board needs a link at all.
The off-board wiring
Six pads leave the board: two pots, the supply and ground.
| Pad | Goes to |
|---|---|
| 9V / GND | The supply. 9 to 15V, positive to 9V and negative to GND. GND is also the output jack sleeve. The two pads sit on opposite edges of the board on purpose |
| VR1_3 / VR1_W | The rate pot, 100K linear. Lug 3 to VR1_3, the wiper to VR1_W, the third lug empty. It is a variable resistor in the charging path: the square wave drives lug 3, and how much of it reaches the integrator through R1 is the rate |
| VR2_1 / VR2_3 | The blend pot, 1K linear. Lug 1 to VR2_1 (the triangle) and lug 3 to VR2_3 (the square). Both outer lugs, both on the board |
| the VR2 wiper | This is the output, and there is no pad for it - the wiper goes straight to the jack tip and never touches copper. There is no OUT pad on this board because the pot is the output |
There is no 68K on this board any more. Earlier versions of this layout put a 68K at R2 between the triangle and pin 5, and it worked with R5 as a divider to set the comparator's trigger window - two thirds of the square's swing. J5 replaces it: pin 5 now sits directly on the triangle. That was found on the bench, not designed, and what it does to the triangle's height is the one thing on this page still open - see Built, and heard.
Built, and heard
Built on the bench 21 September 2026 and working. Two pots on flying leads with no knobs on them yet, the blend pot feeding the output jack, and nothing in a box.
As first built it was mostly clicks that speed up, and that is worth knowing before you decide something is wrong. An LFO monitored straight into an amp is not a note: at the slow end of the knob each cycle arrives as its own event, so you hear a click per cycle rather than a pitch, and winding the rate up runs the clicks together. That is the circuit doing its job. It is a modulation source and it sounds like one until it gets fast enough to be a tone.
Two things then went on the built board, and both are now in the layout file above.
- J5, the jumper. A wire from strip 1 to strip 6 on the right of the cut - the triangle to pin 5. Onion put it across the 68K on the finished board and the verdict was that it improves the sound significantly. It is drawn here as a link in the 68K's own two holes and R2 is gone, because a resistor with a wire across it has both legs on one net, which the checker calls a part-short and which is a part doing nothing.
- The rate LED. A new LED_A pad taps the square at pin 7, and the LED hangs off it through a 2K2 to ground, both off the board. It blinks at the rate, so the knob becomes something you can see.
What J5 does to the triangle is the open question on this page. With the 68K there, pin 5 sat at a mix of the triangle and the square and the triangle had to travel about two thirds of the square's swing to trip the comparator - that was the hysteresis, and the triangle's height. Tie pin 5 straight to the triangle and that window goes to nothing, which by arithmetic should collapse the triangle and push the frequency up hard. That would explain the clicks turning into a tone. It would also mean the blend knob has far less to blend. The arithmetic is mine and the bench is hers, and on this board the bench wins - but nobody has yet reported what the blend knob does from end to end since the jumper went in. If it still sweeps between two shapes, the arithmetic is missing something and this note needs rewriting.
The 9V problem
An NE5532 is specified from ±3V, which is 6V across the two supply pins, and it is below spec on a 9V battery once you account for the swing it is being asked to make. It will usually run. It will also be the first thing to blame when the triangle looks clipped or the rate goes strange as a battery sags. 12 to 15V is the better choice, and it costs nothing in rate: the comparator's threshold is a ratio against R5, so it scales with the supply and the frequency stays where it was.
If 9V is what you have, an LM358 drops into the same eight holes - same pinout, actually specified for a single 9V rail, and slower and noisier in a way that does not matter at all for something making a wobble. Four salvaged vape cells in series land at 14.8V nominal, inside the good window, though nobody has run this board on them.
How it works, in one breath
R3 and R4 make a half rail and C2 holds it still, and both non-inverting-ish inputs that need a reference sit on it - pin 3 for the integrator and pin 6 for the comparator. Op-amp B is the comparator: its output at pin 7 is already hard against one rail, R5 feeds some of that back to pin 5, and J5 ties the triangle straight to pin 5. So pin 7 flips the moment the triangle crosses the half rail. With a resistor in place of J5 the two would mix and the triangle would have to travel further before flipping, which is the hysteresis that makes it snap rather than dither; with the link there, there is none by design and what sets the swing is the loop itself. Op-amp A is the integrator: the square arrives through VR1 and R1 into pin 2, C1 sits between pin 2 and pin 1, and a constant current into a capacitor is a straight ramp. Each half produces exactly what the other one needs to keep going.
Things to try
- A bigger C1 for a slower sweep, or a smaller one to push it up toward audio. It is a straight trade against the rate pot and nothing else in the circuit cares
- The square is a rail-to-rail logic-level signal, so it will clock a Grub Divider or a Spider Sequencer straight off VR2_3 - take it before the blend pot, not after
- The triangle into a vactrol is the tremolo this board does not have. The Optical Tremolo builds its own LFO for exactly that job; this one would replace it and give you both shapes
- A second blend pot fed from the same two pads, so one box has two outputs at different mixes of the same wave. Untested, and it loads both outputs - the 1K is low enough that two in parallel is 500R across them
↓ Same box, jacks on top (PDF)
The second sheet keeps both pots where this one has them and moves the jacks - power and audio - to the top wall, so the cables leave upward. Two ways to drill one box; pick one.
Print at 100% / “Actual size”, never “Fit to page” - check the bar measures exactly 4″ before you touch a drill. The face is 66 by 121 mm but only 42 mm of it is drillable once the lid lip is clear.
Nobody has drilled this one yet. The hole sizes come from the parts; where they sit is this format applied to them. Offer the sheet up to the box and check it against your own parts before you make a hole.
The triangle-and-square pair is an old one and belongs to nobody - this version of it came from the Experimentalists Anonymous archive. The breadboard build, this layout and the box are Onion Madder's, drawn in Copper Bottom.