
I found myself in need of a very low-distortion 1,000 Hz sine wave
generator for an upcoming project.
A quick search on Ebay found several used pieces of test equipment that met or exceeded my requirements, but were priced at well over $1,000 USD.
I did also find some low-cost China sourced 1 kHz generator boards, but they had a distortion of 0.1% which was way above my 0.005% limit.
My current test gear includes a Keithley 2015 THD Multimeter with a low distortion sine wave generator, but it is only capable of 0.03% THD at 1 kHz.
It was time to see if I could build something for under $100 that would meet my needs.
After breaking out some of my old audio design books, I noticed a design for a Wien Bridge oscillator that used diodes to control the signal amplitude. After a bit more research I found a myriad of ways to control amplitude and reduce distortion.
A method described by Larned A. Meacham in 1937, using a filament lamp for automatic gain control was used by William Hewlett, and David Packard, and found its way into the HP200A audio signal generator, the first product of Hewlett-Packard.
So I decided to go down the Wien Bridge Oscillator rabbit hole.
My first breadboard prototype used a dual low-noise JFET-Input TL072 operational amplifier and a 12 volt automotive light bulb. The THD was around 0.75% and the breadboard layout was contributing to some of that. A printed circuit board for the TL072 along with some different passive components and a 14 volt filament bulb, got me down under 0.18% THD.

While researching low-noise op-amps, I stumbled across the Texas Instruments OPA16XX series of SoundPlus operational amplifiers. These op-amps had some very impressive specifications, including a low of 1.1‑nV/√Hz noise density with a distortion of 0.000015% at 1 kHz for the OPA1612.
I designed and ordered a set of boards that would accommodate some different sized passive components, along with an OPA1612A and a couple of OPA1662 op-amps.

After experimenting with several combinations of op-amps, lamps, and passive components, the board with a combination of the OPA1612A along with low-noise precision thin-film resistors, and film capacitors produced the lowest THD readings.
They were so low that they exceeded the capabilities of my Keithley 2015 THD Multimeter.

THD (through 6th harmonic) less than 0.003%, 2 Vrms, 20 Hz – 20 kHz
The circuit uses the series and parallel RC pairs along with two 14 volt filament light bulbs in L1 and L2 positions. I included trimmers in both the series and parallel circuits and another trimmer for the negative feedback adjustment.
The second section of the op-amp is set for a gain of 10, and the output amplitude is adjusted using VR4 a 10K ohm variable resistor that can be externally mounted.
The circuit uses an external low noise power supply of +15 and ‑15 volts, and includes additional filter and de-coupling capacitors on board.

The two 14 volt filament bulbs are connected in series to effectively make a 28 volt bulb with a large filament mass. I was initially worried that doubling the bulbs would create more microphonics from vibration of the filaments, but the effects of microphonics are almost non existent.
The circuit worked very well for my project, and I am now working on a 400 Hz version of the board.
Eagle CAD V7.7 Oscillator HPV 1.1 board and schematic ZIP file
BOM Parts list for 1 kHz HPV 1.1
I have built this circuit using 9V batteries for my power supply. For now I am calculating the THD manually using a spectrum analyzer app and the 24bit A/D on my sound card to measure each harmonic. Currently, I am getting a THD of 0.002% — not zero but still pretty good. For comparison, the HP200A had a specification of “less than 1%”
Note: as I adjusted the feedback gain with R1, I started wondering what the ideal setting was to ensure oscillation while minimizing distortion. I did some searching on this topic but failed to find any references. Do you have any thoughts on this?
Hi Jerry,
For the maximum output on my +/- 15 volt powered system, I set R1 to give me a 2.1 volt RMS output on pin 1.
Any higher and I start clipping the output on the X10 stage, with lots of distortion.
For audio pre-amp work I have setup a second unit with a 1 volt RMS output on pin 1, and limit my gain manually to around times 2 on the X10 op-amp stage.
Getting minimum distortion depends on the required output voltage.
Less gain on the X10 stage means you will not amplify any distortion produced in the oscillator stage.
But there is a minimum voltage that the oscillator stage can operate at where background noise becomes a higher percentage of the total output signal, increasing distortion.
Also lower oscillator voltages reduce the current flowing thru the lamp filaments which reduces stability.
Greg (Barbouri)
Have you read “Max Wein, Mr. Hewlett and a Rainy Sunday Afternoon” by Jim Williams? If not, you really should. Williams achieved better than 0.0003% THD in an afternoon. Higher output levels make achieving that hard, so you may already have reached the practical limit.
Have Fun!
Reg
Hi,
I’ve been checking your OSH park page and this circuit is not available. I want to build the project but without having to manufacture the PCB’s. Of course, I can do a small run but I rather prefer to purchase the circuits from you as you put all the effort on this.
Wiring diagram is not available neither. On the other hand seems pretty straight forward.
About the output frequency and stability, is there any calibration procedure?
Thanks for your time.
Best regards,
MentalMode.
Here is the link to the shared OSH Park V1.2 shared page
So, exactly a year later and I have connected this oscillator to my target 24-bit ADC design. And, according to my calculations, I am now getting 0.0003% THD.
Bonjour.Sujet très intéressant et Bravo pour cette réalisation.Serait-il possible de pouvoir acheter les CI pour la construction de cet oscillateur ou les pcb.A vous lire.Salutations
English translation:
Hello, very interesting subject and Bravo for this achievement. Would it be possible to be able to buy the ICs for the construction of this oscillator or the pcb. Please read.
The IC’s are available from Digikey.fr OPA1612AIDR IC AUDIO 2 CIRCUIT 8SOIC
The boards can be ordered from OSH-Park.com
Wien Bridge Oscillator Rev. 1.1 HPV 1,000 Hz
Wien Bridge Oscillator Rev. 1.2 HPV 400 Hz
Greg (Barbouri)
Just in one evening I was able to build a copy of this oscillator and obtain an amazingly clean 1000 Hz signal. I am using a 24 bit Realtek audio card and Visual Analyzer 2021 software (free). The 12th harmonic THD is about 0.003%. Kudos to the Author!
can the 400Hz board be used for the 1K osc. ie. are the traces different? I got the wrong one somehow.
I apologize if this not the right place for questions.
Hi David,
The board schematic is the same for both boards with the exception of values and component physical sizes.
You will just need to select components that will fit the 1000 Hz board.
Greg (Barbouri)
Greg ,
Thank you for confirming. You’ve saved me some serious time in trying to compare the on-line image with the physical board.
Looking forward to some low distortion. 🙂
Thanks again.
David