Kosmodrome has a low frequency oscillator, the MFOS voltage controlled LFO, with a modification to give it a sync input. A pretty powerful module. I don’t really need more such fancy LFOs but a couple of basic, non synched, non voltage controlled LFOs would be useful. So this is my new Kosmo format dual LFO.
It’s basically a Kassutronics design,* offering multiple waveform outputs. There’s a knob to change the width of the pulse wave output, nothing unusual about that. But what is unusual is that the same knob has an effect on the other waveforms. The tri/ramp output varies from (rising) ramp to triangle to (falling) sawtooth as you turn the knob.
The sine output is a sine wave with the knob centered, and a sort of skewed sine with the knob away from center.
The one thing I didn’t go for in the Kassutronics design is the tri to sine converter, which is a JFET-based design, about the same as the one in the Kassutronics VCO 3340; in my 3340 VCO I replaced it with a differential pair design which uses easier to obtain and cheaper NPN transistors and which when I breadboarded it gave me more satisfactory results. It also uses one fewer op amp. I did the same substitution here. I also rearranged the LED driver. I’m not sure I needed to but this non inverting configuration is what I’m more used to. Two LFOs are behind a single 75 mm panel. I put footprints for a 220 nF integrating capacitor in one and a 2.2 µF capacitor in the other, so one has a frequency range 10x above the other. I thought of switch selectable 220 nF and 2.2 µF in both, but decided I didn’t want to try to squeeze two toggle switches into the panel design.
I found some problems during assembly — the Molex connector terminals for all four pots had their silkscreen labels backwards, and the shape pots were connected backwards relative to how I wanted them to behave, which functionally canceled out the silkscreen error for those.
Beyond that, the frequency pots had a problem at the low end. The Kassutronics post says “with the component values as shown, it goes up to about 40 Hz, and at the slowest setting one oscillation takes 10s of seconds” — but on re-examining the schematic I don’t see why at the slowest setting it shouldn’t take literally forever, the pot wiper being shorted to ground at that point. And in fact it did seem to stop oscillating completely at the low end. I found that adding a 200Ω resistor in series on the low end limited the minimum frequency (with the 2.2 µF capacitor) to about one cycle every two minutes — slow enough for me! At that (in)frequency the ramp waveform gets pretty distorted, but who’s going to pay attention long enough to notice?
The last problem was the behavior of the triangle/ramp waveform, at the highest frequencies and at the extremes of the shape pot. Over most of the range the wave was ±5 V, but right down at one end it suddenly became about -10 V to +5 V. This undershoot went away if I turned the knob just slightly from its endpoint. At the other end there similarly was some overshoot, but much smaller, maybe half a volt instead of 5 V.
I don’t know exactly what was going on, but upon zooming in I did discover some details of this behavior. As the pot was turned the pulse wave got narrower down to about 150 µs (independent of frequency). But at that point the pot still had a little range left, and continuing to turn the pot did not change the pulse width, but the moment it hit the minimum pulse width was also the moment the tri/ramp wave began to undershoot.
The Kassutronics post says “R5 [a comparatively small (100Ω) resistor in the capacitor charging path] is intended to limit the current a bit more than the opamp drive capability, to reduce frequency change when setting R1 to one of its extreme settings. But the value of R5 is a compromise, and can be adjusted or even omitted.” I don’t know about frequency change, but it seemed to me likely the undershoot had to do with the op amp drive capability. At the pot end point it was reversing the capacitor charge through R5 only, and it looked like that resistance was too low. I found that changing R5 to 300Ω prevented going past the minimum pulse width point and eliminated the undershoot/overshoot. Maybe the minimum usable resistance varies from one TL074 to another, though the two I used seemed about the same — or conceivably Kassutronics wasn’t even using a TL074; they didn’t specify.
I applied those fixes and now all works well!
Schematics, KiCad design files, Gerbers, and documentation in the GitHub repo: https://github.com/holmesrichards/kdlfo
* I labeled the front panel “Analog Output” but I’m not sure why — that’s claiming credit that isn’t due. A “Kassutronics” label would have been more appropriate. The sin shaper replacement is a major modification, but the basic design is still theirs.
Added: When the shape pot is turned all the way to one end, the resistor has about 11 V at the end connecting via a diode to the op amp and about -5 V to +5 V at the end connecting to the capacitor. So the voltage drop across the resistor varies from 16 V to 6 V. With a 100Ω resistor the current is 160 to 60 mA — I think that’s considerably more than a TL074 is capable of delivering. So I disagree that the resistor “limit[s] the current a bit more than the opamp drive capability” and I expect this is what causes the weird behavior. With 300Ω it’s 53 to 20 mA, which I think is within or at least closer to the op amp limit. (The TL07x datasheet does not list a short circuit circuit for TL07xC, but I saw a figure of 60 mA somewhere, and the datasheet does show 26 mA for TL07xH.)