Five transistor version of the low distortion sine-wave oscillator

Apr 12, 2025 Last reply: 1 year ago 12 Replies

Edward Rawde posted an eight-transistor low distortion sine wave oscillator circuit recently, and John May pointed out that you could leave out half the transistors.



I couldn't immediately see exactly how either of the circuits worked, though I could get the simulations to run under LTSpice and see roughly what was going on.



I've now dug a bit deeper. Here is a five transistor version of John May's four transistor version.



Version 4 SHEET 1 3020 2548 WIRE 80 -208 -288 -208 WIRE 800 -208 160 -208 WIRE -288 -96 -288 -208 WIRE 80 -96 -288 -96 WIRE 400 -96 160 -96 WIRE -288 32 -288 -96 WIRE -176 32 -288 32 WIRE -32 32 -96 32 WIRE 48 32 -32 32 WIRE 208 32 128 32 WIRE 256 32 208 32 WIRE 400 32 400 -96 WIRE 400 32 320 32 WIRE 464 32 400 32 WIRE 608 32 544 32 WIRE 656 32 608 32 WIRE 800 32 800 -208 WIRE 800 32 720 32 WIRE -752 48 -816 48 WIRE -624 48 -688 48 WIRE -288 144 -288 32 WIRE -176 144 -288 144 WIRE 208 144 208 32 WIRE 256 144 208 144 WIRE 608 144 608 32 WIRE 656 144 608 144 WIRE -816 160 -816 48 WIRE -752 160 -816 160 WIRE -624 160 -624 48 WIRE -624 160 -672 160 WIRE -32 160 -32 32 WIRE -32 160 -112 160 WIRE 400 160 400 32 WIRE 400 160 320 160 WIRE 800 160 800 32 WIRE 800 160 720 160 WIRE 832 160 800 160 WIRE -176 176 -288 176 WIRE 256 176 224 176 WIRE 656 176 624 176 WIRE 224 208 224 176 WIRE 624 208 624 176 WIRE -1968 224 -1968 144 WIRE -1008 272 -1104 272 WIRE -816 272 -816 160 WIRE -816 272 -944 272 WIRE -736 272 -816 272 WIRE -624 288 -624 160 WIRE -624 288 -672 288 WIRE -544 288 -624 288 WIRE -416 288 -480 288 WIRE -288 288 -288 176 WIRE -288 288 -336 288 WIRE -208 288 -288 288 WIRE 208 288 -128 288 WIRE 400 288 400 160 WIRE 400 288 208 288 WIRE -736 304 -816 304 WIRE -816 336 -816 304 WIRE 400 336 400 288 WIRE -1968 400 -1968 304 WIRE -1856 400 -1968 400 WIRE -1664 400 -1776 400 WIRE 208 400 208 288 WIRE 208 400 -1600 400 WIRE 400 448 400 416 WIRE 544 448 400 448 WIRE 368 464 336 464 WIRE -1968 496 -1968 400 WIRE -1968 496 -2304 496 WIRE 368 496 368 464 WIRE 400 496 400 448 WIRE 544 496 544 448 WIRE -2432 544 -2432 496 WIRE -2304 560 -2304 496 WIRE -2240 560 -2304 560 WIRE -2144 560 -2176 560 WIRE -1360 576 -1360 480 WIRE 384 608 384 560 WIRE 544 608 544 576 WIRE 544 608 384 608 WIRE -1968 640 -1968 496 WIRE -32 656 -32 160 WIRE 208 656 208 400 WIRE 384 656 384 608 WIRE 800 656 800 160 WIRE -2304 672 -2304 560 WIRE -2256 672 -2304 672 WIRE -2144 688 -2144 560 WIRE -2144 688 -2192 688 WIRE -2032 688 -2144 688 WIRE -1360 688 -1360 656 WIRE -1104 688 -1104 272 WIRE -1104 688 -1360 688 WIRE -2432 704 -2432 624 WIRE -2256 704 -2432 704 WIRE -32 752 -32 720 WIRE 208 752 208 720 WIRE 384 752 384 720 WIRE 800 752 800 720 WIRE -2432 832 -2432 704 WIRE -2432 832 -2544 832 WIRE -2544 864 -2544 832 WIRE -2432 864 -2432 832 WIRE -1360 880 -1360 688 WIRE -32 880 -32 832 WIRE 208 880 208 832 WIRE 208 880 -32 880 WIRE 384 880 384 832 WIRE 384 880 208 880 WIRE 800 880 800 832 WIRE 800 880 384 880 WIRE -1968 928 -1968 736 WIRE -1424 928 -1968 928 WIRE -2544 960 -2544 928 WIRE -32 976 -32 880 WIRE -320 992 -416 992 WIRE -160 992 -256 992 WIRE -2432 1008 -2432 944 WIRE -416 1072 -416 992 WIRE -368 1072 -416 1072 WIRE -256 1072 -304 1072 WIRE -160 1072 -160 992 WIRE -160 1072 -176 1072 WIRE -2160 1152 -2160 1040 WIRE -1664 1152 -1664 1040 WIRE -160 1184 -160 1072 WIRE -160 1184 -240 1184 WIRE -32 1184 -32 1056 WIRE -32 1184 -160 1184 WIRE 48 1184 -32 1184 WIRE 176 1184 128 1184 WIRE 272 1184 240 1184 WIRE 368 1184 336 1184 WIRE 480 1184 432 1184 WIRE 576 1184 544 1184 WIRE 688 1184 640 1184 WIRE 816 1184 816 1168 WIRE 816 1184 752 1184 WIRE -1968 1200 -1968 928 WIRE -1968 1200 -2096 1200 WIRE -1904 1200 -1968 1200 WIRE -1728 1200 -1904 1200 WIRE -416 1200 -416 1072 WIRE -416 1200 -1088 1200 WIRE -304 1200 -416 1200 WIRE -2480 1216 -2480 1184 WIRE -2480 1216 -2528 1216 WIRE -208 1216 -240 1216 WIRE -2528 1232 -2528 1216 WIRE -1360 1232 -1360 976 WIRE -2480 1248 -2480 1216 WIRE -1664 1280 -1664 1248 WIRE -1424 1280 -1664 1280 WIRE -2160 1296 -2160 1248 WIRE -2160 1296 -2240 1296 WIRE -208 1328 -208 1216 WIRE -2240 1344 -2240 1296 WIRE -1664 1360 -1664 1280 WIRE -1360 1440 -1360 1328 WIRE -2240 1488 -2240 1424 WIRE -1664 1504 -1664 1440 WIRE -2160 1648 -2160 1296 WIRE -1648 1648 -2160 1648 WIRE -1088 1648 -1088 1200 WIRE -1088 1648 -1568 1648 WIRE -1904 1712 -1904 1200 WIRE -2160 1760 -2160 1648 WIRE -1968 1760 -2160 1760 WIRE -1904 1888 -1904 1808 FLAG 224 208 0 FLAG 624 208 0 FLAG 832 160 vout FLAG -272 1168 vcc FLAG -272 1232 vee FLAG -2528 1232 0 FLAG -2480 1104 vcc FLAG -2480 1328 vee FLAG -144 128 vcc FLAG -144 192 vee FLAG 288 128 vcc FLAG 288 192 vee FLAG 688 128 vcc FLAG 688 192 vee FLAG 336 464 0 FLAG 416 528 vcc FLAG 352 528 vee FLAG -2224 656 vcc FLAG -1968 144 vcc FLAG -2224 720 vee FLAG -1360 480 vcc FLAG -2432 496 vcc FLAG -2432 1008 0 FLAG -1360 1440 0 FLAG -704 256 vcc FLAG -704 320 vee FLAG -816 336 0 FLAG -1664 1504 vee FLAG -1904 1888 0 FLAG -1664 1040 vcc FLAG -2160 1040 vcc FLAG -208 1328 0 FLAG -2544 960 0 FLAG 816 1168 vee FLAG -2240 1488 vee SYMBOL res -80 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 SYMATTR Value 10K SYMBOL res 144 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R2 SYMATTR Value 16K SYMBOL res 560 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R3 SYMATTR Value 16K SYMBOL cap 320 16 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C1 SYMATTR Value 10n SYMBOL cap 720 16 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C2 SYMATTR Value 10n SYMBOL res 176 -224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R4 SYMATTR Value 10K SYMBOL res 176 -80 M270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R5 SYMATTR Value 82k SYMBOL cap -256 976 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C3 SYMATTR Value 1000n SYMBOL res 32 1200 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R10 SYMATTR Value 680K SYMBOL diode 176 1200 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D1 SYMATTR Value 1N914 SYMBOL res -48 960 R0 SYMATTR InstName R11 SYMATTR Value 40.2K SYMBOL res 560 592 R180 WINDOW 0 36 76 Left 2 WINDOW 3 36 40 Left 2 SYMATTR InstName R18 SYMATTR Value 10K SYMBOL res 416 432 R180 WINDOW 0 36 76 Left 2 WINDOW 3 36 40 Left 2 SYMATTR InstName R19 SYMATTR Value 10k SYMBOL diode -16 656 M0 SYMATTR InstName D2 SYMATTR Value 1N914 SYMBOL diode 224 656 M0 SYMATTR InstName D12 SYMATTR Value 1N914 SYMBOL diode 368 656 R0 SYMATTR InstName D13 SYMATTR Value 1N914 SYMBOL diode 816 656 M0 SYMATTR InstName D14 SYMATTR Value 1N914 SYMBOL res -48 736 R0 SYMATTR InstName R13 SYMATTR Value 68k SYMBOL res 192 736 R0 SYMATTR InstName R14 SYMATTR Value 68k SYMBOL res 400 736 M0 SYMATTR InstName R15 SYMATTR Value 68k SYMBOL res 784 736 R0 SYMATTR InstName R16 SYMATTR Value 68k SYMBOL voltage -2480 1088 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V3 SYMATTR Value 15 SYMBOL voltage -2480 1232 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V4 SYMATTR Value 15 SYMBOL OpAmps\\LT1679 -144 160 R0 SYMATTR InstName U5 SYMBOL OpAmps\\LT1679 288 160 R0 SYMATTR InstName U6 SYMBOL OpAmps\\LT1679 688 160 R0 SYMATTR InstName U8 SYMBOL res -112 272 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R8 SYMATTR Value 10k SYMBOL res -320 272 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R9 SYMATTR Value 560 SYMBOL cap -480 272 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C8 SYMATTR Value 1000n SYMBOL res -272 1088 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R6 SYMATTR Value 100k SYMBOL cap -304 1056 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 SYMATTR Value 10000n SYMBOL OpAmps\\LT1679 384 528 R90 WINDOW 3 37 22 VRight 2 SYMATTR InstName U1 SYMBOL pnp -2032 736 M180 WINDOW 3 84 0 Left 2 SYMATTR Value 2N3906 SYMATTR InstName Q4 SYMBOL res -1984 208 R0 SYMATTR InstName R12 SYMATTR Value 82k SYMBOL res -1760 384 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R25 SYMATTR Value 2.7Meg SYMBOL cap -2176 544 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C7 SYMATTR Value 10p SYMBOL npn -2096 1152 M0 SYMATTR InstName Q1A SYMATTR Value NSS40301MDR2G SYMBOL npn -1728 1152 R0 SYMATTR InstName Q1B SYMATTR Value NSS40301MDR2G SYMBOL npn -1424 1232 R0 SYMATTR InstName Q2B SYMATTR Value NSS40301MDR2G SYMBOL npn -1968 1712 R0 SYMATTR InstName Q2A SYMATTR Value NSS40301MDR2G SYMBOL res -1552 1632 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R28 SYMATTR Value 100k SYMBOL res -1376 560 R0 SYMATTR InstName R29 SYMATTR Value 100k SYMBOL res -2448 528 R0 SYMATTR InstName R32 SYMATTR Value 10k SYMBOL res -2448 848 R0 SYMATTR InstName R33 SYMATTR Value 15k SYMBOL cap -944 256 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C12 SYMATTR Value 1000n SYMBOL res -656 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R7 SYMATTR Value 14k SYMBOL cap -688 32 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C5 SYMATTR Value 10p SYMBOL cap -1600 384 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C6 SYMATTR Value 100n SYMBOL res -1648 1456 R180 WINDOW 0 31 76 Left 2 WINDOW 3 31 40 Left 2 SYMATTR InstName R17 SYMATTR Value 220k SYMBOL OpAmps\\LT1679 -704 288 R0 SYMATTR InstName U2 SYMBOL OpAmps\\LT1679 -272 1200 M0 SYMATTR InstName U3 SYMBOL OpAmps\\LT1679 -2224 688 R0 SYMATTR InstName U4 SYMBOL cap -2560 864 R0 SYMATTR InstName C9 SYMATTR Value 10n SYMBOL res -2224 1440 R180 WINDOW 0 31 76 Left 2 WINDOW 3 31 40 Left 2 SYMATTR InstName R20 SYMATTR Value 360k SYMBOL npn -1424 880 R0 SYMATTR InstName Q3 SYMATTR Value 2N3904 SYMBOL diode 272 1200 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D3 SYMATTR Value 1N914 SYMBOL diode 368 1200 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D4 SYMATTR Value 1N914 SYMBOL diode 480 1200 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D5 SYMATTR Value 1N914 SYMBOL diode 576 1200 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D6 SYMATTR Value 1N914 SYMBOL diode 688 1200 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D7 SYMATTR Value 1N914 TEXT -2792 1560 Left 2 !.tran 0 10 0 1u startup TEXT -2792 1504 Left 2 !.options plotwinsize=0 numdgt=15 TEXT -2248 -112 Left 2 ;Low distortion 1KHz oscillator. Edward Rawde 30 March 2025.\nBased on designs by JM and BS. Re-worked by JM, getting rid of half the transistors,\nand again by Bill Sloman, making Q1A/B and Q2A/B close matched transistor pairs\nand adding the cascode transistor at Q3, 12th April 2025.. TEXT -2896 16 Left 2 !.MODEL NSS40301MDR2G NPN\n+is=6.87023e-12 bf=445.496 nf=1.08926 vaf=60.529\n+ikf=7.23313 ise=2.38192e-09 ne=4 br=23.6872\n+nr=1.10701 var=8.89608 ikr=1.25064 isc=1e-16 \n+nc=1.13174 rb=905.334,irb=2.30349e-07 rbm=1e-10\n+re=0.00600548 rc=0.0300274 xtb=1.2219 xti=4,\n+eg=1.05 cje=3.80477e-10 vje=0.912237 mje=0.397194,\n+tf=5.90916e-10,xtf=0.0998483,vtf=7.09172,itf=0.010481,\n+cjc=8.35472e-11 vjc=0.702862 mjc=0.43477 xcjc=0.899998\n+fc=0.414631 cjs=0 vjs=0.75 mjs=0.5 \n+tr=5.64658e-08 ptf=0,kf=0 af=1



The circuit works by adding a portion of the sine wave output from U6 inside the ring oscillator to bigger DC current, and delivering as current from Q4 into an asymmetric current mirror formed by the dual transistor Q2A and Q2B.



Q2A and Q1A turned it into a voltage at V(n022) - once the circuit has settled this sits around 904mV about ground with a 727uV 1kz ripple, driven by the 1.83uA 1kHz current ripple going through Q2A



The actual voltage is set by the stable (but adjustable) base-emitter voltage of Q2A. The stable base-emitter voltage of Q1B applies a slightly smaller voltage (but with much the same variation) to the base of Q1B, whose output then has the 1.63uA 1kHz current ripple needed to keep the ring-oscillator running at a stable amplitude.



Q3 is a cascode to minimise Early effect distortion of the current coming out of Q1B.



The output of U3 adjusts base emitter voltage drop of Q2A by changing the current through it via R28.



During startup Q1B delivers more current to build up the oscillation.



The circuit take about 5 seconds to stabilise, and the output sine wave has a little harmonic content - the worst offender is a 4hKz spur about



140dB below the fundamental. Or at least this is what LTSpice 17.0.36 tells me.

At this distortion level LTSpice isn't all that credible.



The only other significant change to the circuit is the string of six diode (D1, D3, D4, D5, D6, and D7) which are intended to balance out the temperature dependent forward voltage drops across the rectifier diodes D2, D12, D13 and D14, which sit in series with a couple of volts of signal, rather less than the 15V from the negative rail.


Out of curiousity, I upped the currents through Q1A and Q1B by about an order of magnitude (R27 down to 27k, R17 down to 22kk and R28 down to

68k) and the worst case harmonic became the second at 2kHz, 155dB below the the fundamental. The fourth was close behind at at about 157dB down.

Essentially, their incremental resistance has dropped by an order of magnitude, and the ripple on the gain-control signal produces less voltage excursion.

Is that allowed Bill? I thought that making component changes to see if the circuit works better was design by evolution?

Did you mean R20? I don't see R27.

I think the only way forward with this circuit would be to build and test it.

I'd do a first prototype with everything through hole except LT1679 and NSS40301MDR2G.

I'd also put four more resistors in series with each 68k (maybe reduce them to 56k) for the four diodes so I can make the current pulses in the four diodes exactly equal. And add a capacitor (100n min) to ground where the resistors join.

And use the remaining LT4167 (two quad packs) as an output buffer so that whatever is connected to the output doesn't disturb the operation of D10.

I didn't make the change to see whether it worked better - I did it to see if I'd correctly understood what it was doing. The fact that it made it work better was incidental.

I did indeed.

Agreed.

Why?

Why? I can see an argument for removing all the 68k resistors so the current being fed through R11 is as high as possible, with the smallest possible ripple. There is a risk that the diode current will turn off fast enough to drive them into snap-recovery, but it is remote.

Increasing the 68k resisitors reduces the effect of the tolerance on the forward voltage drop through each diode, but choosing diodes with a closer tolerance on the forward voltage drop would be a better way to go. The 1N914 doesn't seem to have one at all.

The Infineon-BAS3007ASERIES diodes at least specify 350mV typical and

400mV max at 100mA. I think NExperia had something better back when it was Philips, but that's a long time ago.

Adding more phase delay along the feedback path and make the settling time even longer.

What D10?

Changing almost anything in this circuit in LTSPice changes the residual harmonic levels. Assuming the same is true in reality I'd want to be able to change components easily.

Changing to schottky diodes changes the distortion but not always down. So I'd want to be able to make changes easily on a real prototype.

One of us doesn't care if he has to wait 5 minutes for the purest sinewave. The other seems to put higher priority on the circuit settling in a few seconds. I think we'll just have to differ there.

The one that's D14 in your circuit.

I never had much trouble changing surface mount parts.

There are lots of different Schottky diodes. If I remember right they don't do step-recovery, which might help. The first thing I'd go for would be a tight tolerance on the forward voltage drop.

You might find that in a quad diode pack. I used to browse Farnell catalogue for that sort of stuff. Searching their data-base doesn't work as well.

The best I could do was the BAS40-05 common cathode dual from Nexperia and Infineon. That offers 250mV min, 310mV typical and 380mV max at 1mA, and looser tolerances at higher currents. Within the part the two diodes are matched to better than 20mV.

What I actually want is critically damped - dead-beat - settling. Having a long period while the amplitude is ringing down is evidence that the circuit designer doesn't know what they are doing. This isn't the first time I've called your attention to this.

If John May didn't bother it's probably not worth doing.

More to the point, it's easier fit complex layouts around dual op amps rather than quad packages, and you'd be better off using the LT1678.

formatting link
A very low distortion sine wave source does call for careful layout, and quad packs would be an invitation to disaster.

"Edward Rawde" snipped-for-privacy@invalid.invalid wrote in message news:vtlm0g$21p4$ snipped-for-privacy@nnrp.usenet.blueworldhosting.com...

As a first prototype I'd build the circuit below using only through hole components except where through hole is either not available or not desirable such as ceramic capacitors. Resistors may be done with pads so that through hole resistors can be soldered on in such a way that they're rather easier to remove than an 0402.

In recent years I've been asked if I can repair equipment such as a music keyboard. If the internals are surface mount and the problem isn't an obvious one (eg wrong power adapter) I will generally decline to try. Find someone who can get the dried up surface mount electrolytics off without damaging the board, if it hasn't been damaged already by leaking electrolyte. There may well be equipment which can do it but I don't have it.

The second prototype for this circuit would be all surface mount.

Unless I win a lottery I won't be either building it or figuring out what I need to test it.

I'm done with sinewave oscillators except for being curious about how to design a suitable sample and hold circuit in the other circuit JM posted. Use of a comparator to obtain the sampling signal might reintroduce all the harmonics we want to get rid of.

Version 4.1 SHEET 1 3020 2548 WIRE 80 -208 -288 -208 WIRE 800 -208 160 -208 WIRE -288 -96 -288 -208 WIRE 80 -96 -288 -96 WIRE 400 -96 160 -96 WIRE -288 32 -288 -96 WIRE -176 32 -288 32 WIRE -32 32 -96 32 WIRE 48 32 -32 32 WIRE 208 32 128 32 WIRE 256 32 208 32 WIRE 400 32 400 -96 WIRE 400 32 320 32 WIRE 464 32 400 32 WIRE 608 32 544 32 WIRE 656 32 608 32 WIRE 800 32 800 -208 WIRE 800 32 720 32 WIRE 848 32 800 32 WIRE 992 32 928 32 WIRE 1040 32 992 32 WIRE 1184 32 1120 32 WIRE -752 48 -816 48 WIRE -624 48 -688 48 WIRE -288 144 -288 32 WIRE -176 144 -288 144 WIRE 208 144 208 32 WIRE 256 144 208 144 WIRE 608 144 608 32 WIRE 656 144 608 144 WIRE 992 144 992 32 WIRE 1040 144 992 144 WIRE -816 160 -816 48 WIRE -752 160 -816 160 WIRE -624 160 -624 48 WIRE -624 160 -672 160 WIRE -32 160 -32 32 WIRE -32 160 -112 160 WIRE 400 160 400 32 WIRE 400 160 320 160 WIRE 800 160 800 32 WIRE 800 160 720 160 WIRE 1184 160 1184 32 WIRE 1184 160 1104 160 WIRE 1216 160 1184 160 WIRE -176 176 -288 176 WIRE 256 176 224 176 WIRE 656 176 624 176 WIRE 1040 176 1008 176 WIRE 224 208 224 176 WIRE 624 208 624 176 WIRE 1008 208 1008 176 WIRE -1968 224 -1968 144 WIRE -1008 272 -1104 272 WIRE -816 272 -816 160 WIRE -816 272 -944 272 WIRE -736 272 -816 272 WIRE -624 288 -624 160 WIRE -624 288 -672 288 WIRE -544 288 -624 288 WIRE -416 288 -480 288 WIRE -288 288 -288 176 WIRE -288 288 -336 288 WIRE -208 288 -288 288 WIRE 208 288 -128 288 WIRE 400 288 400 160 WIRE 400 288 208 288 WIRE -736 304 -816 304 WIRE -816 336 -816 304 WIRE 400 336 400 288 WIRE -1968 400 -1968 304 WIRE -1856 400 -1968 400 WIRE -1664 400 -1776 400 WIRE 208 400 208 288 WIRE 208 400 -1600 400 WIRE 400 448 400 416 WIRE 544 448 400 448 WIRE 368 464 336 464 WIRE -1968 496 -1968 400 WIRE -1968 496 -2304 496 WIRE 368 496 368 464 WIRE 400 496 400 448 WIRE 544 496 544 448 WIRE -2432 544 -2432 496 WIRE -2304 560 -2304 496 WIRE -2240 560 -2304 560 WIRE -2144 560 -2176 560 WIRE -1360 576 -1360 480 WIRE 384 608 384 560 WIRE 544 608 544 576 WIRE 544 608 384 608 WIRE -1968 640 -1968 496 WIRE -32 656 -32 160 WIRE 208 656 208 400 WIRE 384 656 384 608 WIRE 800 656 800 160 WIRE -2304 672 -2304 560 WIRE -2256 672 -2304 672 WIRE -2144 688 -2144 560 WIRE -2144 688 -2192 688 WIRE -2032 688 -2144 688 WIRE -1360 688 -1360 656 WIRE -1104 688 -1104 272 WIRE -1104 688 -1360 688 WIRE -2432 704 -2432 624 WIRE -2256 704 -2432 704 WIRE -32 784 -32 720 WIRE 208 784 208 720 WIRE 384 784 384 720 WIRE 800 784 800 720 WIRE -2432 832 -2432 704 WIRE -2432 832 -2544 832 WIRE -2544 864 -2544 832 WIRE -2432 864 -2432 832 WIRE -1360 880 -1360 688 WIRE -1968 928 -1968 736 WIRE -1424 928 -1968 928 WIRE -32 944 -32 864 WIRE 208 944 208 864 WIRE 384 944 384 864 WIRE 800 944 800 864 WIRE -2544 960 -2544 928 WIRE -2432 1008 -2432 944 WIRE -32 1120 -32 1024 WIRE 96 1120 -32 1120 WIRE 208 1120 208 1024 WIRE 208 1120 96 1120 WIRE 384 1120 384 1024 WIRE 384 1120 208 1120 WIRE 800 1120 800 1024 WIRE 800 1120 384 1120 WIRE -2160 1152 -2160 1040 WIRE -1664 1152 -1664 1040 WIRE -1968 1200 -1968 928 WIRE -1968 1200 -2096 1200 WIRE -1904 1200 -1968 1200 WIRE -1728 1200 -1904 1200 WIRE 96 1200 96 1120 WIRE -2480 1216 -2480 1184 WIRE -2480 1216 -2528 1216 WIRE -2528 1232 -2528 1216 WIRE -1360 1232 -1360 976 WIRE -2480 1248 -2480 1216 WIRE -1664 1280 -1664 1248 WIRE -1424 1280 -1664 1280 WIRE -2160 1296 -2160 1248 WIRE -2160 1296 -2240 1296 WIRE 96 1312 96 1264 WIRE -2240 1344 -2240 1296 WIRE -1664 1360 -1664 1280 WIRE -32 1424 -32 1120 WIRE -1360 1440 -1360 1328 WIRE -320 1440 -416 1440 WIRE -160 1440 -256 1440 WIRE -2240 1488 -2240 1424 WIRE -1664 1504 -1664 1440 WIRE -416 1520 -416 1440 WIRE -368 1520 -416 1520 WIRE -256 1520 -304 1520 WIRE -160 1520 -160 1440 WIRE -160 1520 -176 1520 WIRE -160 1632 -160 1520 WIRE -160 1632 -240 1632 WIRE -32 1632 -32 1504 WIRE -32 1632 -160 1632 WIRE 48 1632 -32 1632 WIRE 176 1632 128 1632 WIRE 272 1632 240 1632 WIRE 368 1632 336 1632 WIRE 480 1632 432 1632 WIRE 576 1632 544 1632 WIRE 688 1632 640 1632 WIRE 816 1632 816 1616 WIRE 816 1632 752 1632 WIRE -2160 1648 -2160 1296 WIRE -1648 1648 -2160 1648 WIRE -416 1648 -416 1520 WIRE -416 1648 -1568 1648 WIRE -304 1648 -416 1648 WIRE -208 1664 -240 1664 WIRE -1904 1712 -1904 1200 WIRE -2160 1760 -2160 1648 WIRE -1968 1760 -2160 1760 WIRE -208 1776 -208 1664 WIRE -1904 1888 -1904 1808 FLAG 224 208 0 FLAG 624 208 0 FLAG -272 1616 vcc FLAG -272 1680 vee FLAG -2528 1232 0 FLAG -2480 1104 vcc FLAG -2480 1328 vee FLAG -144 128 vcc FLAG -144 192 vee FLAG 288 128 vcc FLAG 288 192 vee FLAG 688 128 vcc FLAG 688 192 vee FLAG 336 464 0 FLAG 416 528 vcc FLAG 352 528 vee FLAG -2224 656 vcc FLAG -1968 144 vcc FLAG -2224 720 vee FLAG -1360 480 vcc FLAG -2432 496 vcc FLAG -2432 1008 0 FLAG -1360 1440 0 FLAG -704 256 vcc FLAG -704 320 vee FLAG -816 336 0 FLAG -1664 1504 vee FLAG -1904 1888 0 FLAG -1664 1040 vcc FLAG -2160 1040 vcc FLAG -208 1776 0 FLAG -2544 960 0 FLAG 816 1616 vee FLAG -2240 1488 vee FLAG 96 1312 0 FLAG 1008 208 0 FLAG 1216 160 vout FLAG 1072 128 vcc FLAG 1072 192 vee SYMBOL res -80 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R1 SYMATTR Value 10K SYMBOL res 144 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R2 SYMATTR Value 16K SYMBOL res 560 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R3 SYMATTR Value 16K SYMBOL cap 320 16 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C1 SYMATTR Value 10n SYMBOL cap 720 16 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C2 SYMATTR Value 10n SYMBOL res 176 -224 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R4 SYMATTR Value 10K SYMBOL res 176 -80 M270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R5 SYMATTR Value 82k SYMBOL cap -256 1424 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C3 SYMATTR Value 1000n SYMBOL res 32 1648 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R10 SYMATTR Value 680K SYMBOL diode 176 1648 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D1 SYMATTR Value 1N914 SYMBOL res -48 1408 R0 SYMATTR InstName R11 SYMATTR Value 40.2K SYMBOL res 560 592 R180 WINDOW 0 36 76 Left 2 WINDOW 3 36 40 Left 2 SYMATTR InstName R18 SYMATTR Value 10K SYMBOL res 416 432 R180 WINDOW 0 36 76 Left 2 WINDOW 3 36 40 Left 2 SYMATTR InstName R19 SYMATTR Value 10k SYMBOL diode -16 656 M0 SYMATTR InstName D2 SYMATTR Value 1N914 SYMBOL diode 224 656 M0 SYMATTR InstName D12 SYMATTR Value 1N914 SYMBOL diode 368 656 R0 SYMATTR InstName D13 SYMATTR Value 1N914 SYMBOL diode 816 656 M0 SYMATTR InstName D14 SYMATTR Value 1N914 SYMBOL res -48 768 R0 SYMATTR InstName R13 SYMATTR Value 56k SYMBOL res 192 768 R0 SYMATTR InstName R14 SYMATTR Value 56k SYMBOL res 400 768 M0 SYMATTR InstName R15 SYMATTR Value 56k SYMBOL res 784 768 R0 SYMATTR InstName R16 SYMATTR Value 56k SYMBOL voltage -2480 1088 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V3 SYMATTR Value 15 SYMBOL voltage -2480 1232 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V4 SYMATTR Value 15 SYMBOL OpAmps\\LT1679 -144 160 R0 SYMATTR InstName U5 SYMBOL OpAmps\\LT1679 288 160 R0 SYMATTR InstName U6 SYMBOL OpAmps\\LT1679 688 160 R0 SYMATTR InstName U8 SYMBOL res -112 272 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R8 SYMATTR Value 10k SYMBOL res -320 272 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R9 SYMATTR Value 560 SYMBOL cap -480 272 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C8 SYMATTR Value 1000n SYMBOL res -272 1536 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R6 SYMATTR Value 100k SYMBOL cap -304 1504 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C4 SYMATTR Value 10000n SYMBOL OpAmps\\LT1679 384 528 R90 WINDOW 3 37 22 VRight 2 SYMATTR InstName U1 SYMBOL pnp -2032 736 M180 WINDOW 3 84 0 Left 2 SYMATTR Value 2N3906 SYMATTR InstName Q4 SYMBOL res -1984 208 R0 SYMATTR InstName R12 SYMATTR Value 82k SYMBOL res -1760 384 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R25 SYMATTR Value 2.7Meg SYMBOL cap -2176 544 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C7 SYMATTR Value 10p SYMBOL npn -2096 1152 M0 SYMATTR InstName Q1A SYMATTR Value NSS40301MDR2G SYMBOL npn -1728 1152 R0 SYMATTR InstName Q1B SYMATTR Value NSS40301MDR2G SYMBOL npn -1424 1232 R0 SYMATTR InstName Q2B SYMATTR Value NSS40301MDR2G SYMBOL npn -1968 1712 R0 SYMATTR InstName Q2A SYMATTR Value NSS40301MDR2G SYMBOL res -1552 1632 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R28 SYMATTR Value 68k SYMBOL res -1376 560 R0 SYMATTR InstName R29 SYMATTR Value 100k SYMBOL res -2448 528 R0 SYMATTR InstName R32 SYMATTR Value 10k SYMBOL res -2448 848 R0 SYMATTR InstName R33 SYMATTR Value 15k SYMBOL cap -944 256 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C12 SYMATTR Value 1000n SYMBOL res -656 144 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R7 SYMATTR Value 14k SYMBOL cap -688 32 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C5 SYMATTR Value 10p SYMBOL cap -1600 384 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 32 32 VTop 2 SYMATTR InstName C6 SYMATTR Value 100n SYMBOL res -1648 1456 R180 WINDOW 0 31 76 Left 2 WINDOW 3 31 40 Left 2 SYMATTR InstName R17 SYMATTR Value 22k SYMBOL OpAmps\\LT1679 -704 288 R0 SYMATTR InstName U2 SYMBOL OpAmps\\LT1679 -272 1648 M0 SYMATTR InstName U3 SYMBOL OpAmps\\LT1679 -2224 688 R0 SYMATTR InstName U4 SYMBOL cap -2560 864 R0 SYMATTR InstName C9 SYMATTR Value 10n SYMBOL res -2224 1440 R180 WINDOW 0 31 76 Left 2 WINDOW 3 31 40 Left 2 SYMATTR InstName R20 SYMATTR Value 27k SYMBOL npn -1424 880 R0 SYMATTR InstName Q3 SYMATTR Value 2N3904 SYMBOL diode 272 1648 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D3 SYMATTR Value 1N914 SYMBOL diode 368 1648 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D4 SYMATTR Value 1N914 SYMBOL diode 480 1648 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D5 SYMATTR Value 1N914 SYMBOL diode 576 1648 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D6 SYMATTR Value 1N914 SYMBOL diode 688 1648 R270 WINDOW 0 32 32 VTop 2 WINDOW 3 0 32 VBottom 2 SYMATTR InstName D7 SYMATTR Value 1N914 SYMBOL res -48 928 R0 SYMATTR InstName R21 SYMATTR Value 22k SYMBOL res 192 928 R0 SYMATTR InstName R22 SYMATTR Value 20k SYMBOL res 368 928 R0 SYMATTR InstName R23 SYMATTR Value 20k SYMBOL res 784 928 R0 SYMATTR InstName R24 SYMATTR Value 18k SYMBOL cap 80 1200 R0 SYMATTR InstName C10 SYMATTR Value 1000n SYMBOL res 944 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R26 SYMATTR Value 10k SYMBOL OpAmps\\LT1679 1072 160 R0 SYMATTR InstName U7 SYMBOL res 1136 16 R90 WINDOW 0 0 56 VBottom 2 WINDOW 3 32 56 VTop 2 SYMATTR InstName R27 SYMATTR Value 10k TEXT -2792 1560 Left 2 !.tran 0 10 0 1u startup TEXT -2792 1504 Left 2 !.options plotwinsize=0 numdgt=15 TEXT -2248 -112 Left 2 ;Low distortion 1KHz oscillator. Edward Rawde 30 March 2025.\nBased on designs by JM and BS. Re-worked by JM, getting rid of half the transistors,\nand again by Bill Sloman, making Q1A/B and Q2A/B close matched transistor pairs\nand adding the cascode transistor at Q3, 12th April 2025.. TEXT -2896 16 Left 2 !.MODEL NSS40301MDR2G NPN\n+is=6.87023e-12 bf=445.496 nf=1.08926 vaf=60.529\n+ikf=7.23313 ise=2.38192e-09 ne=4 br=23.6872\n+nr=1.10701 var=8.89608 ikr=1.25064 isc=1e-16 \n+nc=1.13174 rb=905.334,irb=2.30349e-07 rbm=1e-10\n+re=0.00600548 rc=0.0300274 xtb=1.2219 xti=4,\n+eg=1.05 cje=3.80477e-10 vje=0.912237 mje=0.397194,\n+tf=5.90916e-10,xtf=0.0998483,vtf=7.09172,itf=0.010481,\n+cjc=8.35472e-11 vjc=0.702862 mjc=0.43477 xcjc=0.899998\n+fc=0.414631 cjs=0 vjs=0.75 mjs=0.5 \n+tr=5.64658e-08 ptf=0,kf=0 af=1

Then you haven't changed very many or you have better equipment than I do.

You might still want to equalise the currents because the four diodes aren't driven 100% exactly the same.

There's no need to state the obvious, which is that I don't care if it takes 5 minutes for the circuit to settle. You have it heavily damped, under damped, over damped, lightly damped, critically damped, slightly damped or whatever damped you want. I'm ok with that.

John may did show that separately buffering the signals to the four diodes improves performance. This is similar to equalising the currents through them.

Yes I have to agree that use of the dual version (four packages or five with some unused) would be a good idea here.

Then you don't know enough about what's going on. This low distortion sine wave exercise is - to an appreciable extent - an exercise in keeping audiophools happy, and you need to give them a product that doesn't make them anxious.

Loading the op amps in the ring oscillator with a rectifier diode is going to affect the output current a little - op amps don't have zero output impedance. Buffering everything might be the ideal, but it is extravagant and offers extra interactions which you may have to tame separately.

It isn't. Even if you equalise the current drawn (and they should be very similar) the current is only being drawn during when the sine wave is appreciably positive, and that's going to generate some distortion, though probably not enough to get excited about.

Too true. I once got stuck with cleaning a comparator-heavy board in fairly old Cambridge Instruments electron microscope.

Final test hated it because the comparators tended to talk to one another, and burst into collective oscillation. The original prototype might not have done it, but as the manufacturer improved the parts and built them with smaller dies the design got more and more twitchy.

I worked over the layout to minimise the interactions as much as I could, but while final test liked what I'd done, it merely reduced the problem and made it easier to fix when it did show up.

LOL I'm no audiophool but I do know that you would seize on any opportunity to tell someone else that they don't know what they're doing Bill.

Actually the low distortion sine wave exercise was an exercise in finding out whether you can make a low distortion 1Khz oscillator without using lamps, thermistors, opto devices or FETs as voltage variable resistors. It has nothing whatsoever to do with audiophoolery. If any aspects of the circuits make you anxious then I'd advise consulting a doctor for the appropriate meds.

Like John Larkin, you are fishing for flattery, and resent it when you don't get it.

It's an interesting intellectual exercise, but it wouldn't be all that interesting if there weren't audiophools out there to buy an eventual product.

Nothing that you can see.

More bad advice, and it reflects - once again - your poor grasp of message you think you are responding to. The anxiety was in the audiophool potential customers. I do get mildly anxious from time to time, but it's a rational and appropriate response to imperfectly predictable reality and no doctor (certainly not my admirable GP) would prescribe anything to reduce it.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required