for music synthesizers.


This VCO started out life as a replacement for the original VCOs in my '73 Serge, so it replicates a lot of the functionality of that module. Of course there have been numerous enhancements to the design as well, making it right at home in a 1 volt per octave synthesizer. The core chosen is the well known Electronotes ENS-76 VCO Option 1 as used in the ASM-1, Modulus, etc. This core was an obvious choice due to the amount of information, lists of suitable substitutes and so on that are available on the web.

It has AC and DC linear CV inputs as well as 1 V/oct. inputs and scalable/reversible CV inputs. It has sawtooth and pulse/square outputs, as well as a waveshape that is variable between sawtooth and a "sine-like" shape, and a fixed "sine-like" output too. It also includes a simple sub-oscillator for those who wish to experiment with that.

Note that the "sine-like" waveform is not a pure sine wave. There is a significant glitch in it that is almost impossible to trim out. As this is the recreation of a module that had such a waveshape, this is appropriate. If you require an accurate sine wave, this module is unsuitable for your purposes.

Please also note that there have been many variations of this PCB, and I no longer have copies of the artwork of the older variations. The variations are minor. I have no doubt there will be more variations as the module continues to evolve.

A little on how it works:

The schematic of the VCO. Click here for a larger version of this diagram.

Power rail decoupling for the VCO.

Take the time to look at the ASM-1 page where you will find suggested alternates for various components such as the dual transistor and the FET.

The sub-oscillator is based on that from an LM3900 app. note (NS AN-72), and will not cover the full range available from the VCO core itself.

The very top of the circuit diagram shows the inverting/non inverting scaling mixer as used in the original Serge VCO, while the bottom left hand corner shows the Saw to "Sine" converter from the same source. Some guestimation was needed when developing these sections of the circuit, as my original Serge VCOs are potted in epoxy.


The component overlay for the VER1.0 PCB. Click here for an enlarged, printable version. Print at 300dpi. Connections can be determined from the circuit diagram.

The tempco resistor needs to be in physical contact with the matched transistor pair (LM394, MAT02 etc). For this reason it has been positioned on the PCB so that it goes diagonally across this chip. Make sure that the wires of the tempco do not touch the body of the transistor pair if it is of the metal can variety. A small amount of thermal compound (heatsink grease) should be put between the body of the tempco and the transistor pair, then the two held together snugly with a common wire tie (not yet fitted in the photo at the top of this page).

The "Tune" input on the PCB is set for dual rate operation. The pot must be wired between the +VE and -VE supplies, with the wiper to the tune input. Clockwise from around 12 oclock, the response will be a finer than anti-clockwise from this point, where the 1N4148 diode and extra resistor come in to play. This is to allow the VCO to be easilly cranked down to LFO speeds. The diode can be omitted if you do not want this functionality. A fine-tune control can be added by wiring a second pot as per the tune control, but wiring the wiper to the CSVN via a high value resistor such as 4M7, or even 10M.

The best value for the pots is 100k lin, though 50k lin would be usable.


Changes you can make to the PWM circuit on earlier versions so you can add an initial setting pot and extra inputs: Increase the value of the existing 1k input resistor to 100k. Mix your second input via another 100k to pin 6. Add extra inputs in the same way. If you need extra range, increase the existing 100k pulldown to 470k. The latest version of the PCB (Ver 1.0) has two 100k resistors in place of the 1k, giving two inputs. The pulldown is still specified as 100k.

  • A simple modification has been made to the PWM input to allow simultaneous use of a pot and an external CV. These inputs will require adjustment depending on personal requirements. Note that due to a manufacturing error, one of the PWM input pads is not connected to it's resistor. The missing track is about .5mm long, so just bridge it with a blob of solder when you solder the wire in.
PCB connections
FM ACAC couple linear CV input
FM DCDC couple linear CV input
1V/O1 volt per octave input
1V/O1 volt per octave input
(1V/O)On the schematic, but not the PCB. Additional inputs can be added this way by using external 100k resistors connected to VG (CVSN), the virtual ground of the input mixer
TUNEWiper of Tuning pot. (CW end to +VE, CCW end to -VE)
CVSN (VG)CV Summing Node/Virtual ground, marked as CVSN or VG depending on PCB version.
PCCWCCW end of processor pots
PCWCW end of processor pots
PW1processor pot 1 wiper
PW2processor pot 2 wiper
CV2Processor CV input 1
CV1Processor CV input 2
PLSPulse output of the sub-oscillator
CVSControl voltage for the sub-oscillator (division)
CVSPWiper connection of the manual setting pot for the sub-oscillator. Wire the pot between +VE (CW) and GND (CCW). Pot can be anything from 20k to 100k linear.
STIClock input to the sub-oscillator
STOStaircase output of the sub-oscillator
SSYNCSub-oscillator sync input
SINE"sine" output. DC coupled (above 0 volts)
SP+CW end of initial shape pot. (CCW end goes to GND)
SPWWiper of initial shape pot
SCVShape CV for sawtooth to sine output
ATSOSawtooth to sine output (centered around 0v)
TSOSawtooth to sine output (above 0v)
SQPulse/Square output
PWMpulse width modulation input
SAW OUT (AC)-2.5V to +2.5V sawtooth out
SAW OUT (DC)0 to +5V approx sawtooth out
SYNCVCO hard sync input
GNDgeneral 0V connection points

Wiring diagrams for some of the VCO options. Not all options will be relevant, dependant upon the design of the front panel being used. The AC couple outputs are not shown above. The second processor (FREQ CV/LEVEL on diagram) is wired in the same manner as the first, sharing the PCCW and PCW connections.

Setting up

There are several trim pots that need to be adjusted. With no CV inputs connected, and the tune and frequency controls set to their center position, adjust the trim-pot marked "Zero" until there is 0 volts on pin 7 of IC1. The easiest place to connect to this pin is the end of the 100k resistor right next to the text "SP".

The next trimmer to adjust is the one marked "Span". Input 1.00 volts into one of the 1V/oct inputs, and adjust the trimmer until the output of the oscillator is exactly one octave higher than when the CV is removed. Now take the input voltage up to 3.00 volts or 4.00 volts, and fine tune this trimmer if needed. The best reference for this process is to have a second VCO or oscillator running at the same time at a fixed frequency. This way, the beat frequency can be used to fine tune. One the volt per octave ratio is correct, the Zero trimmer can be used to set the base frequency of the oscillator (e.g. to tune it to C with no inputs connected).

Don't be surprised if this process takes a few times to get right!

Once the oscillator is correctly tuned, connect 1.00 volts to one of the prosessor inputs (CV1 or CV2) and adjust the "PRO SP" trimmer until the oscillator runs 1 octave higher with the associated pot fully clockwise. Turning the pot fully anti-clockwise should result in an output frequency one octave lower than with no CV present, and a reversed responce to the CV.

"WS TRIM" should be adjusted so that TSO output varies between a sawtooth and a sine wave as the shape control is adjusted. A simpler alternative is to adjust this trimmer until the best sine wave possible is achieved at the "sine" output. Don't expect a perfect waveform - it will most likely have a substancial glitch in it at its best setting. Remember - this sine output is simply there to make use of a spare part of the LM3900 - it is not a key feature of the design.

The final adjustment is to "S TRIM". Play with it until the sub-oscillator responds the best over the best possible sweep range. Remember this will not follow the oscillator over its entire range. Again, it is simply there to make use of a spare part of the LM3900 - it is not a key feature of the design.


  • The PCB shown in the photograph is of one of my prototypes, actually designed to replace the oscillators in my Serge, thus it does have minor differences to the finished design.
  • The module will work on +/-12 volts if the 20k resistor connected to pin 3 of the LM311 is reduced to 14k.
  • For +/- 15V operation, you may prefer to replace the 330k/240k sawtooth bias resistors with 600k/200k as per the ASM-1. The ASM-1 sawtooth is centered around 0V, which would make the capacitive coupling to the second sawtooth output on this VCO redundant.
  • Dual transistors. Substitutes can be made for the LM394. Other dual transistors that should work are 2SC3381, 2SC1583, MAT02, SSM2210. Some will be of a physically different configuration.
  • Alternate FETs include 2N4091, 2N4391, PN4091 2N4391 PN4391 PN4856, MPF108.
  • PCB info: 6" x 2" with 3mm mounting holes 0.15" in from the edges.

Parts list

This is a guide only. Parts needed will vary with individual constructor's needs.

Article, art & design copyright 2003 by Ken Stone