MFOS VCO build diary

OK, gonna write this complicated stuff up maybe more for my own benefit than anything else, but your thoughts welcome.

What happens in the pulse output is the ramp goes into a comparator and makes a pulse wave whose width depends on the reference voltage you set on the pulse width pot; and unlike for instance in the YuSynth VCO which uses fixed voltages for the two ends of that pot, Wilson sets those voltages using sample and holds of the extreme values of the ramp waveform. Which is a lot more complicated but I suppose he had good reasons, like perhaps to deal with supply voltage variations, or with frequency dependence of the ramp wave amplitude? Anyway, the PW voltage ranges from about -4.5 V to +4.5 V.

What happens at the extremes is complicated, because the pulse width vs voltage behavior varies with the value of R68, but also there is some voltage value at either end where the pulse output shuts down, and that also depends on R68. And obviously if the output shuts down that sets the minimum width you get, but if you reach the pot limit before shutdown happens, then that sets the minimum width.

Things are a little frequency dependent too. But at 200 Hz, here’s what I see. With the pot at the low end you get a narrow “on” and wide “off” (or really positive and negative, but let me call them on and off), at the other end you get a wide “on” and a narrow “off”; I’m interested in the minimum “on” width at the low end and minimum “off” width at the high end.

R68 Low end shuts off? Min “on” width High end shuts off? Min “off” width
1M Y ~0.2% Y 20%
2M Y ~0.2% N 12%
3M N 2% N 11%
10M N 5% N 10%

That last line seems to accord with Wilson’s 5% to 90% width claim.

So with 1M you’re constrained by where the output shuts off, with 3M or 10M you’re constrained by the voltage range. With 2M you have one situation on the low end and the other on the high end. I decided to try increasing the voltage range, by giving the width pot fixed ±12 V limits instead of the sample and hold values. I got this:

R68 Low end shuts off? Min “on” width High end shuts off? Min “off” width
1M Y ~0.1% Y 20%
2M Y ~0.2% Y 11%
3M Y ~0.1% Y 8%
10M Y ~0.2% Y 2%

So here it becomes clear if the voltage range is wide enough, increasing R68 has no effect on the low end and benefits you on the high end. But with the more limited range, the pot limits produce worse minimum widths at the low end and little effect at the high end. In that case you presumably want R68 to be the value that’s on the boundary between reaching shutdown and not reaching it, which I find to be 2M. As a reminder, Wilson started with 10M and changed to 1M so he could reach the shutdown region, but 2M is better from what I see.

Or you want to say to hell with Wilson’s sample and hold, just use 10M and a fixed voltage range large enough to get you to shutdown.

I wish I knew the rationale and the quantitative observations that led to his using the sample and hold scheme so I could decide if I find it worth keeping.


It looks as though the voltages from the sample and hold are rock steady over a period of hours if nothing else changes. But I tried changing the frequency from 200 Hz to 2000 Hz and both got larger in magnitude by about 60 mV. I didn’t time it but I think it actually took a couple of minutes or so to stabilize. (I don’t know if that was the ramp amplitude stabilizing or if for some reason it took the sample and hold that long.) So, apparently, yes, the ramp amplitude is frequency dependent and hence so is the pulse width with a fixed voltage threshold — but only at about the few percent level.

My gut feeling is I’d be happier with a fixed voltage range.

1 Like

I’ve just tried out a third option, which is to use Wilson’s sample and holds, but run their outputs through non inverting amps with a gain of 1.24. That, I can only presume, preserves whatever benefits his design has, but makes the pot voltages large enough to reach shutoff on either end with R68 at 10M. So I get pulse widths from 0% to 98%. This just needs a TL072 and four resistors which can go on a tiny auxiliary stripboard. I mean, one could even dead bug it, really…

1 Like



Soldered up the main board and power breakout

The (red) polypropylene cap I used for C6 was too wide for its footprint and it ended up sitting half on top of a nearby resistor. But the leads got through the holes, so it’s good.

SOIC transistors and tempco look good. Empty R24 footprint is for use if you’re not using a tempco.


Done wiring and mounting the board. To start with I didn’t add the op amp to increase the PW pot limits, because I wanted to verify my breadboard findings first. Turned it on and everything I’ve checked works. (I haven’t looked at sync or linear FM). PW behaves similarly to what I saw earlier, so I will be adding that op amp — might try free form soldering it (inspired by @dud), but not tonight.


Do we get to see your panel?

1 Like

I was gonna wait until the knobs were on, but if you must…


At least you added the capacitor after you had soldered in the resistors, instead of the other way around.


I guess I can wait :sweat_smile:

1 Like

I can give you a sneak preview


I tried freeform soldering the PW limits mod. I wasn’t too happy with how it turned out but it worked — kind of. It didn’t take the pulse width all the way to shutdown on the 100% end though. Despite thinking 1.24 gain would give me good margins, for whatever reason it wasn’t quite enough this time. I didn’t relish trying to change out two resistors on the precarious bug I’d made, so I redid it on stripboard using 33k and 100k resistors.

And yeah, I got the socket backwards. Now I reach shutdown on both ends of the pot, and therefore 0% to 98% width.

I tested sync and lin FM — my janky bench oscillator was flaking out on me (I gotta make a new one on good stripboard, or else PCB — I have a draft with sine shaping, suitable for either bench or module) so I dragged the Mother-32 over and used that. They worked. Got a nice capture of lin FM:

So I called testing complete and put the knobs on.

The waveshapes might need a bit more tweaking, and I haven’t tried V/Oct calibration yet, but it’s basically done!


I checked and as expected, the MFOS VCO has the same problem as the LFO: with an attenuator on the PWM CV, changing the attenuator changes the pulse width even with no CV plugged in. I applied the same fix, replacing the 100k pots with 25k and the 10k mixing resistors with 200k. I found that even with my PW mod in place to increase the PW pot limits, the PW range was smaller than before — not what I was expecting. Well, clearly the whole PW section could do with a complete redesign, but I decided to just declare victory and call it good. If I really need 98% pulse width I can get it with a suitably large DC control voltage.

(And I did do the calibration.)


My conscience got the better of me and I went ahead and improved the pulse width range by increasing the gain of the amplifier I’d added from 1.33 to 2.0. Now I get something like 3% to 93%.

1 Like

you are sick , but in a good way of course …