Update : apr 16th, 2009


En français
back to summary


Should modular DIYing compare to a meal, the VCO is the main course ! It is the heart of the system, the module without which a system cannot be called a Music Synthesizer.

The design of such a module is not easy and building one with good accuracy, low drift and good thermal stability is not simple. I have tried various architectures and eventually came up with quite a classical design.

Herein I propose, three different PCB designs that let the builder choose the solution that matches best his/her needs or budget.
  • The first design uses high grade components such as LM394 or SSM2210 chips for the dual transistor of the exponential converter and an OPA2137 low bias OPA for the voltage summer and servo OPA.
  • The second design uses a Japanese 2SC1583 dual transistor which is much cheaper.
  • The third design uses a pair of hand matched BC547B.
This VCO provides also an input for SYNCing, on the PCB I provided two different inputs, one for SOFT SYNCH mode where the slave VCO is allowed to lock on the any harmonics of the master VCO, and the HARD SYNCH mode where the slave VCO is forced to lock on the fondamental of the master VCO.



I have received a lot of emails concerning the voltage regulators used in the circuit. Here is an explaination for the reason why they are there.

FAQs :
  • Are these two regulators useful here considering I am already using a regulated +/-15V ?
  • Considering that the 78L15 and 79L15 require an overhead of 3V to give the right voltage why are these for in this circuit ? Could not one just suppress them ?
The answer to these two questions is :
The aim of using these regulators is not to provide +15V and -15V as one would think first. As a matter of fact, because of the lack of voltage overhead and the low current draw they will rather deliver something like 14.2V and -14.2V. This is not a design error but was done on purpose : they are here to isolate the power supply circuit of the VCO core from the general power supply while providing a reference voltage of +/-14.2V. This helps very much in increasing the stability of the VCO.
As such, all the circuit of the VCO core was designed considering the voltage drop through the regulators, and it is a very important point. As such, if one would like to remove/bypass these regulators, one would need to recalculate many resistor values of the VCO core to have it working as expected.

In conclusion, they are there for a good reason ;-)

Printed circuit boards and component layout

LM394 version

PCB design

Component layout

Version +15/-15V

Version +12/-12V

2SC1583 version

PCB design

Component layout

Matched BC547s

PCB design

Component layout

Download the schematic as a PDF file

Download the PCB as a PDF file (LM394 version )

Download the PCB as a PDF file (2SC1583 version )

Download the PCB as a PDF file (BC547 version )

The document is formatted to be printed directly on a mylar for photo-etching or a "press & peel" paper. Make sure that when the printed face of mylar is in contact with the copper side of the PCB, the lettering can be read normally.

Components and building details

78L15 low power positive regulator (please read the DESIGN NOTE under the schematics)
78L12 for 12C version
79L15 low power negative regulator (please read the DESIGN NOTE under the schematics)
79L12 for 12C version
OPA2137 precision dual OPA (or TL072 for small budget) 1
LM394 or SSM2210 or MAT02 or MAT12 for PCB 1
New LM394 can be sourced at EricaSynth
A modern alternative is the LS312 by Linear Integrated Systems
2SC1583 for PCB2
2 x hand matched BC547B for PCB3
LM311N fast comparator 1
TL074 quad FET OPA
1N4148, * matched
J112 or J111
1K tempco resistor (PTC 3000ppm)
TYCO ELEC. model LT300014T261K0J or LT300016T261K0J or equivalent at www.farnell.com

even better : 1K tempco 3300ppm at Thonk
10 5% 1
1k 5%
1.5k 5%
R38 4.7k 5%
5.6k 5%
10k 5%    (R15 must be changed to 100K when using a SSM2210 instead of a LM394)
R36,R51 12k 5% for 15V version
or 7.5K for 12V version
15k 5%
22k 5%
33k 5%
47k 5%
50k 1%
100k 5%, *1%, note that R23 may need to be replaced by a 82k resistor
** R3, R4 and R5 are 1% but must be matched to 0.1% for best tracking
***R50 100k for 15V version, 70k for 12V version
200k 1%
220k 1%
270k 1%
10p ceramic
47p ceramic 3
100p ceramic 1
220pF or 270pF 1% styroflex or silver mica
100n polyester film 5
22µF/35 V polarized
10k 10 turn trimmer 1
22k or 25k 10 turn trimmer 1
47k or 50k 10 turn trimmer 1
200k or 220k 10 turn trimmer 1
22K ou 25K lin potentiometer
jack socket
IMPORTANT NOTE : for C8 use a high grade low temperature drift capacitor (styroflex or silver mica)
If you choose to use a SSM2210 instead of a LM394, the value of R15 (10K) must be increased to 100K.
Thermal coupling

Thermal coupling between the tempco resistor and the transistor pair of the exponential converter is an important condition for insuring a good stability of the VCO. The following pictures show how to install these critical components on the PCB.

Coupling LM394 and R12

The tempco resistor R12 is not installed on the PCB. It is directly soldered to pins 4 and 5 of the LM394. These pins are connected internally and then can be used to connect R12. The tempco resistor is directly glued on top of the LM394. Thermal grease must be used to improve thermal coupling.

Coupling 2SC1583 and R12

Bend the 2SC1583 legs as shown. Install and solder the 2SC1583 first. Then add some thermal grease on the 2SC1583. Then install and solder the tempco resistor in bridge over the 2SC1583 such that there is a close contact between the body of the resistor and the 2SC1583.

(Photo, curtosy of  Csaba Zvekan)
Coupling the BC547s and R12

Glue the transistors together by their flat side. Solder them to the PCB. Bend the legs of the tempco R12 such that the body of R12 can  touch the transistors. Apply thermal grease on the body of the transistors and solder R12. Press the body of R12 to make a tight contact with the transistors.

Proposed modification of the tempco section

Mariano from  Dallas, Texas has moded the VCO in order to use an easy to source NTC resistor as a replacement for the PTC tempco resistor. This mod is described as well as other mods in a PDF file located at the end of this page in the Gallery section. Thanks Mariano !

Wiring option : the SYNC IN jack may be either connected to the HARD SYNCH or the SOFT SYNCH connector depending on your taste. You may even add a switch on the front panel in order to select between the two hard synch modes.

Front panel
Panel design

Download the silkscreen mask as a PDF file

Download the silkscreen mask as a  JPEG file

Setting and trimming

For setting and trimming of the VCO, you need a good Oscilloscope, a good source of control voltage (calibrated CV/GATE 5 octave keyboard) a good voltmeter (at least 4000 pts), a digital tuner (I am using a Korg CA tuner) and/or a good frequency counter.


  1. Before powering up, set all the trimmers to their mid-range position, set the FREQUENCY pot to 5 (mid-range position), set the FINE TUNE pot to 0 (mid-range position), set the LIN FM LEVEL, EXP FM LEVEL, PWM potentiometers to min (counter clockwise position), and the PW potentiometer at 0 (mid-range position).
  2. Connect the SAWTOOTH output to the oscilloscope (2V per square). Power-up the circuit. You should observe a sawtooth signal. Adjust the T3 trimmer in order to balance the sawtooth around the 0V level. The sawtooth should ramp down from +5V to -5V.
  3. Connect the TRIANGLE output to the oscilloscope (2V per square). Adjust the T3 trimmer to refine the triangle shape. Then adjust the T4 trimmer in order to balance the triangle around the 0V level. The triangle should ramp down from +5V to -5V.
  4. Connect the SINEWAVE output to the oscilloscope (2V per square). Adjust the T4 trimmer to refine the sinewave shape. Then adjust the T4 trimmer in order to balance the sinewave around the 0V level. The triangle should ramp down from +4V to -4V. If necessary refine the setting of T3 .

  1. Connect the calibrated voltage source to one of the 1V/octave input. Set the CV to 0V. Connect the tuner / freq.counter to the SINEWAVE output. Adjust the FREQUENCY potentiometer such that the tuner displays A1 (55 Hz)
  2. Set the CV to 1V, check the pitch/freq, ideally we want it to be A2 or 110Hz. If the pitch is what we expected go to point 4. Otherwise, if the pitch is lower than expected : adjust the T2 trimmer (V/OCT) in order to lower the pitch/frequency  (NOTE this may not seem logical to lower the picth when it's already too low but that's the way it works !).  Conversely if the pitch was higher than expected, adjust the T2 trimmer in order to increase the picth/frequency.
  3. Set the CV to 0V, the picth is either lower or higher than A1/55Hz . Adjust the FREQUENCY potentiometer such that the tuner displays A1/55 Hz. Repeat points 2 and 3 until there is a perfect one octave shift when switching the CV from 0V to 1V.
  4. Repeat the same procedures but with the following CVs 0V and 2V in order to read A1/55Hz for 0V and A3/220Hz for 2V
  5. Apply the same procedure as above for the next voltages/octaves up to A6(1760Hz)/A7(3520Hz). Depending on your component tolerance you may expect also to achieve a good tracking up to A8 (7040Hz).

  1. Disconnect the CV source from the V/OCT input.
  2. Turn the FREQUENCY potentiometer to 0 (fully counter-clockwise position)
  3. Turn the FINE TUNE potentiometer to 0 (mid-range position)
  4. Adjust T1 in order to read a frequency of 16.2 Hz
  5. Plug a CV/GATE keyboard (starting at C, and giving 0V for lower C)
  6. Press A3 key, and check that the pitch is A3 / 220Hz. If not  adjust T1. 
Waveshapes - vertical scale : 2V/square, 0V on the middle horizontal line

sawtooth  1000Hz

sawtooth  20kHz

triangle 1000Hz

triangle 20kHz

sinewave 1000Hz

sinewave 20kHz

50% pulse 1000Hz

50% pulse 20kHz


Understanding TEMPCO
Ian Fritz Sawtooth VCO

The DIY builders' gallery
Here are the photographs of the yusynth MiniMoog VCF modules built by other synth geeks around the world.
Thank you  guys for sending me these nice photos.

In this PDF file Mariano gives some hints on how to add a range switch and moding the VCO in order to use regular NTC instead of the PTC tempco resistor.

Name : Mariano
Pseudo : Dhar2kma
Modular project :
Location : Dallas, Texas, USA
Name : Czaba ZVEKAN
Modular project
Location : Basel, Switzerland
Name  : Patrick
Pseudo : Baronrouge
Modular project: JHC live lab
Toulon, France
Web site : http://myspace.com/patjhc
Name : Julien
Modular project
Location :
Website :
Name :
Pseudo : Sebo
Modular project :
Location : Argentina
Website : http://www.cosaquitosenglobo.com.ar
Name : Julien
Modular project
Location :
Website :

Name : Zarko
Modular project :
Location : Gardanne, France
Website :
Name :
Pseudo : Tudy
Modular project : Yusynth 17U
Location : Brno, Czech Republic
Website :www.insania.freemusic.cz
Name : Balazs Varga
Pseudo : vinnui
Modular project : Overmind modular
Location : Hungary
Website : http://vinnui.blogspot.com/

Name : Jim Coun
Modular project :
Location : Belgium
Website :

back to summary