LM358 Wien-Bridge Sine Oscillator

An RC bridge plus an op-amp produces a clean 1 kHz sine wave — the only oscillator topology that gives you sines instead of squares.

Difficulty: Breadboard. Estimated build time: about 40 minutes. Estimated parts cost: about US$3.80. 8-line bill of materials. Compare supplier offers when available. A Wien-bridge sine-wave oscillator built around the LM358 dual op-amp.

Build the Wien-bridge feedback network

From op-amp output → 10 kΩ → 16 nF (or 15 nF — any close value) → +input. From +input → 10 kΩ in parallel with 16 nF → GND. (Two parallel components each from +input to GND: a 10 kΩ resistor and a 16 nF cap.) This is the frequency-selective network — at f = 1 kHz it has zero phase shift and a gain of 1/3.

Set the op-amp gain to ~3

Non-inverting feedback: from output → 22 kΩ → −input. From −input → 10 kΩ → GND. Gain = 1 + 22/10 = 3.2. Slightly above 3 so oscillation starts up; the diodes will pull it back to 3.

Add the diode amplitude limiter

Across the 22 kΩ feedback resistor, place two 1N4148 diodes in anti-parallel (one pointing each direction). Below 0.6 V they're invisible. Above 0.6 V they conduct and reduce the effective resistance, dropping the gain. This soft-limits the output to ~1.2 V peak-to-peak.

Single-supply biasing

The LM358 is happy with a single 9 V rail, but the +input needs to sit at mid-supply (4.5 V) for symmetric swing. Add a virtual-ground reference: two 100 kΩ resistors from rail to GND, midpoint to a 10 µF cap to GND, and tie that midpoint into the bottom of the Wien bridge AND the bottom of the gain-set divider. The bridge now oscillates around 4.5 V instead of 0 V.

Power up and probe

Apply 9 V. Within a few hundred ms the output starts oscillating — small at first, growing until the diodes clamp it at ~1.2 V peak-to-peak around the 4.5 V bias. Probe with a scope at AC coupling: clean sine at 1 kHz. Tune the frequency by changing R: replace 10 kΩ with 1 kΩ → f = 10 kHz. Replace caps with 160 nF → f = 100 Hz. Use a dual-gang potentiometer for both Rs and you have a tunable sine generator.