Wien Bridge Oscillator Design

Wien Bridge Oscillator  HPV testing for THD
Wien Bridge Oscillator HPV test­ing for THD

I found myself in need of a very low-dis­tor­tion 1,000 Hz sine wave
gen­er­a­tor for an upcom­ing project.
A quick search on Ebay found sev­er­al used pieces of test equip­ment that met or exceed­ed my require­ments, but were priced at well over $1,000 USD.
I did also find some low-cost China sourced 1 kHz gen­er­a­tor boards, but they had a dis­tor­tion of 0.1% which was way above my 0.005% lim­it.
My cur­rent test gear includes a Keithley 2015 THD Multimeter with a low dis­tor­tion sine wave gen­er­a­tor, but it is only capa­ble of 0.03% THD at 1 kHz.
It was time to see if I could build some­thing for under $100 that would meet my needs.

After break­ing out some of my old audio design books, I noticed a design for a Wien Bridge oscil­la­tor that used diodes to con­trol the sig­nal ampli­tude. After a bit more research I found a myr­i­ad of ways to con­trol ampli­tude and reduce dis­tor­tion.
A method described by Larned A. Meacham in 1937, using a fil­a­ment lamp for auto­mat­ic gain con­trol was used by William Hewlett, and David Packard, and found its way into the HP200A audio sig­nal gen­er­a­tor, the first prod­uct of Hewlett-Packard.
So I decid­ed to go down the Wien Bridge Oscillator rab­bit hole.

My first bread­board pro­to­type used a dual low-noise JFET-Input TL072 oper­a­tional ampli­fi­er and a 12 volt auto­mo­tive light bulb. The THD was around 0.75% and the bread­board lay­out was con­tribut­ing to some of that. A print­ed cir­cuit board for the TL072 along with some dif­fer­ent pas­sive com­po­nents and a 14 volt fil­a­ment bulb, got me down under 0.18% THD.

Prototype boards using the Texas Instruments OPA16XX series oper­a­tional amplifiers

While research­ing low-noise op-amps, I stum­bled across the Texas Instruments OPA16XX series of SoundPlus oper­a­tional ampli­fiers. These op-amps had some very impres­sive spec­i­fi­ca­tions, includ­ing a low of 1.1‑nV/√Hz noise den­si­ty with a dis­tor­tion of 0.000015% at 1 kHz for the OPA1612.
I designed and ordered a set of boards that would accom­mo­date some dif­fer­ent sized pas­sive com­po­nents, along with an OPA1612A and a cou­ple of OPA1662 op-amps.

Circuit board test­ing using dif­fer­ent pas­sive com­po­nents and bulb configurations

After exper­i­ment­ing with sev­er­al com­bi­na­tions of op-amps, lamps, and pas­sive com­po­nents, the board with a com­bi­na­tion of the OPA1612A along with low-noise pre­ci­sion thin-film resis­tors, and film capac­i­tors pro­duced the low­est THD read­ings.

They were so low that they exceed­ed the capa­bil­i­ties of my Keithley 2015 THD Multimeter.

0.000 THD reading on Keithley 2015 THD Multimeter
0.000 THD (through 3rd har­mon­ic) 2 Vrms, 20 Hz – 20 kHz read­ing on Keithley 2015 THD Multimeter.
THD (through 6th har­mon­ic) less than 0.003%, 2 Vrms, 20 Hz – 20 kHz

The cir­cuit uses the series and par­al­lel RC pairs along with two 14 volt fil­a­ment light bulbs in L1 and L2 posi­tions. I includ­ed trim­mers in both the series and par­al­lel cir­cuits and anoth­er trim­mer for the neg­a­tive feed­back adjust­ment.
The sec­ond sec­tion of the op-amp is set for a gain of 10, and the out­put ampli­tude is adjust­ed using VR4 a 10K ohm vari­able resis­tor that can be exter­nal­ly mount­ed.
The cir­cuit uses an exter­nal low noise pow­er sup­ply of +15 and ‑15 volts, and includes addi­tion­al fil­ter and de-cou­pling capac­i­tors on board.

Wien Bridge Oscillator HPV 1.1 schemat­ic with oscil­la­tor fre­quen­cy cal­cu­la­tion for­mu­la, and notes

The two 14 volt fil­a­ment bulbs are con­nect­ed in series to effec­tive­ly make a 28 volt bulb with a large fil­a­ment mass. I was ini­tial­ly wor­ried that dou­bling the bulbs would cre­ate more micro­phon­ics from vibra­tion of the fil­a­ments, but the effects of micro­phon­ics are almost non existent.

The cir­cuit worked very well for my project, and I am now work­ing on a 400 Hz ver­sion of the board.
Eagle CAD V7.7 Oscillator HPV 1.1 board and schemat­ic ZIP file
BOM Parts list for 1 kHz HPV 1.1

12 Replies to “Wien Bridge Oscillator Design”

  1. I have built this cir­cuit using 9V bat­ter­ies for my pow­er sup­ply. For now I am cal­cu­lat­ing the THD man­u­al­ly using a spec­trum ana­lyz­er app and the 24bit A/D on my sound card to mea­sure each har­mon­ic. Currently, I am get­ting a THD of 0.002% — not zero but still pret­ty good. For com­par­i­son, the HP200A had a spec­i­fi­ca­tion of “less than 1%” 

    Note: as I adjust­ed the feed­back gain with R1, I start­ed won­der­ing what the ide­al set­ting was to ensure oscil­la­tion while min­i­miz­ing dis­tor­tion. I did some search­ing on this top­ic but failed to find any ref­er­ences. Do you have any thoughts on this?

    1. Hi Jerry,
      For the max­i­mum out­put on my +/- 15 volt pow­ered sys­tem, I set R1 to give me a 2.1 volt RMS out­put on pin 1.
      Any high­er and I start clip­ping the out­put on the X10 stage, with lots of distortion.
      For audio pre-amp work I have set­up a sec­ond unit with a 1 volt RMS out­put on pin 1, and lim­it my gain man­u­al­ly to around times 2 on the X10 op-amp stage.

      Getting min­i­mum dis­tor­tion depends on the required out­put voltage.
      Less gain on the X10 stage means you will not ampli­fy any dis­tor­tion pro­duced in the oscil­la­tor stage.
      But there is a min­i­mum volt­age that the oscil­la­tor stage can oper­ate at where back­ground noise becomes a high­er per­cent­age of the total out­put sig­nal, increas­ing distortion.
      Also low­er oscil­la­tor volt­ages reduce the cur­rent flow­ing thru the lamp fil­a­ments which reduces stability.

      Greg (Barbouri)

  2. Have you read “Max Wein, Mr. Hewlett and a Rainy Sunday Afternoon” by Jim Williams? If not, you real­ly should. Williams achieved bet­ter than 0.0003% THD in an after­noon. Higher out­put lev­els make achiev­ing that hard, so you may already have reached the prac­ti­cal limit.

    Have Fun!
    Reg

  3. Hi,
    I’ve been check­ing your OSH park page and this cir­cuit is not avail­able. I want to build the project but with­out hav­ing to man­u­fac­ture the PCB’s. Of course, I can do a small run but I rather pre­fer to pur­chase the cir­cuits from you as you put all the effort on this.
    Wiring dia­gram is not avail­able nei­ther. On the oth­er hand seems pret­ty straight forward.
    About the out­put fre­quen­cy and sta­bil­i­ty, is there any cal­i­bra­tion procedure?
    Thanks for your time.
    Best regards,
    MentalMode.

  4. So, exact­ly a year lat­er and I have con­nect­ed this oscil­la­tor to my tar­get 24-bit ADC design. And, accord­ing to my cal­cu­la­tions, I am now get­ting 0.0003% THD.

  5. Bonjour.Sujet très intéres­sant et Bravo pour cette réalisation.Serait-il pos­si­ble de pou­voir acheter les CI pour la con­struc­tion de cet oscil­la­teur ou les pcb.A vous lire.Salutations

    English trans­la­tion:
    Hello, very inter­est­ing sub­ject and Bravo for this achieve­ment. Would it be pos­si­ble to be able to buy the ICs for the con­struc­tion of this oscil­la­tor or the pcb. Please read.

  6. Just in one evening I was able to build a copy of this oscil­la­tor and obtain an amaz­ing­ly clean 1000 Hz sig­nal. I am using a 24 bit Realtek audio card and Visual Analyzer 2021 soft­ware (free). The 12th har­mon­ic THD is about 0.003%. Kudos to the Author!

  7. can the 400Hz board be used for the 1K osc. ie. are the traces dif­fer­ent? I got the wrong one somehow.

    I apol­o­gize if this not the right place for questions.

    1. Hi David,
      The board schemat­ic is the same for both boards with the excep­tion of val­ues and com­po­nent phys­i­cal sizes.
      You will just need to select com­po­nents that will fit the 1000 Hz board.

      Greg (Barbouri)

      1. Greg ,
        Thank you for con­firm­ing. You’ve saved me some seri­ous time in try­ing to com­pare the on-line image with the phys­i­cal board.

        Looking for­ward to some low distortion. 🙂

        Thanks again.
        David

Leave a Reply

Your email address will not be published. Required fields are marked *