CEM3340 Voltage Controlled Analog Oscillator Module V2

by baritonomarchetto in Circuits > Audio

156 Views, 1 Favorites, 0 Comments

CEM3340 Voltage Controlled Analog Oscillator Module V2

IMG_20250311_105530_risultato.jpg
IMG_20250311_105437_risultato.jpg
IMG_20250311_105443_risultato.jpg
IMG_20250311_105451_risultato.jpg

The CEM3340 is a legendary voltage-controlled oscillator (VCO) integrated circuit developed by Curtis Electromusic Specialties in the late 1970s. It has been widely used in classic analog synthesizers, including the Sequential Circuits Prophet-5 (starting from Rev.3), Roland Jupiter-6, Roland SH101, Moog Memorymoog and others.

Since 2016, the chip has been reissued, making it available to Companies developing musical instruments, but also to DIY enthusiasts and synth designers (Yaiii! :)).

This "VCO in a package" offers several features that make it a powerful choice for analog synthesizer designs:

  1. Multiple, independent waveform outputs (sawtooth, triangle, and square/pulse waves)
  2. Exponential and linear frequency voltage control
  3. Built-in frequency temperature compensation
  4. Hard and soft waveform phase sync
  5. Small footprint
  6. Great analog sound!

There are plenty of very nice projects and general articles on this IC out there to take inspiration from, but I wanted to build mine keeping some constrains in mind:

  1. The module had to be as small as possible (I have polyphony in mind)
  2. Full eurorack compatibility
  3. Easy to build
  4. Use of common and cheap components

In this Instructables I will show you my optimized Eurorack analog oscillator module based on CEM3340. I will share with you all the files needed to have the PCBs manufactured (Gerbers) and have it ready waaaay faster than on perfboard ;)

Supplies

This module is made of three boards. One is the face plate and has no components. The other two (main board and front board) have to be populated.

Here is the bill of materials:


Main Board

Diodes and ICs

1x CEM3340 (AS3340)

1x TL074 generic op-amp

2x 1n4148 Zener diode

Resistors

2x 100K ohm multi-turn trimmer (3296W)

1x 10K ohm multi-turn trimmer (3296W)

8x 100K ohm resistor

2x 10K ohm resistor

3x 180K ohm resistor

3x 1K ohm resistor

1x 1K8 ohm resistor

1x 1M ohm resistor

1x 1M5 ohm resistor

1x 3M3 ohm resistor

1x 24K ohm resistor

1x 270K ohm resistor

2x 470 ohm resistor

2x 47K ohm resistor

3x 56K ohm resistor

1x 5K6 ohm resistor

2x 680 ohm resistor

Capacitors

3x 100nF non polarized capacitor

3x 10nF non polarized capacitor

2x 10pF non polarized capacitor

1x 1nF non polarized (non ceramic) capacitor (timing cap)

2x 10uF electrolitic capacitor

Others

1x IDE connector, 5x2, 0.1 inch spaced

2x 10 pin header, female

1x 3 pin header, male

1x jumper


Front Board

Resistors

4x 100K ohm potentiometer (WH148)

1X 20K ohm resistor

Others

2x 10 pin header, male

10x PJ301M Female MONO Jack Connector 3.5 mm


You are also in the need for a soldering station, solder wire, a magnifying glass and... patience :)

The CEM3340 in Use

The CEM3340 is a feature-loaded oscillator. These include sawtooth, triangle and pulse wave generation, frequency control, voltage linearity control, high-frequency compensation, hard and soft sync, frequency modulation and voltage controlled PWM.

The CEM3340 datasheet provides a reference circuit that fully utilizes its capabilities, but there are some points one should keep in mind when designing the slavery circuits for this IC, in order to make it compatible with an eurorack environment.

One thing to notice is that each waveform output on the CEM3340 has a different amplitude. Sawtooth is 2/3 of the positive supply voltage, triangle is 1/3 of the positive supply voltage and square/pulse is equal to positive supply voltage minus 1.5V. For example, with a +12V power supply, the (maximum) output levels would be 8V for sawtooth, 4V for triangle and 10.5V for square.

Since these amplitudes are not uniform, it is common practice to use operational amplifier circuits to balance the levels at the final stage.

The square/pulse output has the additional quirk of being an open-collector output, meaning it requires an external pull-down resistor tied to ground to set the low level (nothing difficult to handle, but good to know!).

Waves out of the CEM3340 are positive biased, this means that they oscillate in positive voltage domain. This is not in line with eurorack standards.

The CEM3340 internal circuitry supports a maximum voltage difference of 24V between power supply pins. These where nonetheless +/-15V ready being the presence of a built-in Zener diode to limit the negative voltage to -6.5V when running from such a power supply. Eurorack works on +/-12V, so we are in a conservative ballpark here :)

The IC features two main sync options: hard and soft sync. Hard sync forces the oscillator to restart its phase whenever it receives a triggering signal, leading to harmonically rich timbres when modulated. Hard sync can be applied to the rising (plus) or falling (negative) edge of the waveform. Soft sync, on the other hand, pulls the oscillator into phase gradually, resulting in smoother and more subtle synchronization effects.

The CEM3340 includes an internal high-frequency tracking and linearity compensation circuit. High-frequency compensation helps counteract non-linearity at higher frequencies, ensuring consistent pitch tracking. This works at frequencies higher than 5 KHz (higher than C8 it is!), so it's not that critical.

To achieve accurate pitch scaling, designers often use a combination of external precision resistors and multi-turn trimmers to adjust the fine tuning tracking characteristics.

Module and Circuit Design

IMG_20250311_104553_risultato.jpg
IMG_20250311_104606_risultato.jpg
IMG_20250311_104614_risultato.jpg
IMG_20250311_104623_risultato.jpg
IMG_20250311_104630_risultato.jpg
IMG_20250311_113247_risultato.jpg
IMG_20250311_113305_risultato.jpg
IMG_20250311_113321_risultato.jpg

Given the high amount of details Curtis Electromusic put in the IC datasheet, it's not surprising than that most online circuit designs for modules built around the CEM3340 (or it's clones) are heavily based on those found there.

Modifications such as the use of buffers at the (already in-chip buffered) waves out, the normalization of waves amplitudes and some component value adjustment to face supply variations are common (and "due", if you ask me).

The circuit I have layed down here in particular takes inspiration from previous work by Eddy Bergman, which in turn is based on Digisound's "80" design.

For output stages, I took instead inspiration from Kassutronics CEM3340 oscillator module.

The PCB I layed down has all the CEM3340 features made available: frequency control (coarse and fine), three independent waves outs, soft and hard sync inputs, a main control voltage for V/oct input, a secondary, attenuated, linear control voltage input, FM input and pulse wave width control over modulation (PWM).

As I wrote in the previous Step, one point that deserves attention is that CEM3340 outputs positively biased waveforms, but Eurorack standard calls for unbiased oscillators. In my first iteration of the module I used decoupling capacitors in series with the outputs (a very common way to decouple audio signals), but this can lead to high pass filtering, to some extent. To keep the wave as "pure" as possible, this time I preferred to play with the output stage and operational amplifiers configuration, in a way similar to how Kassutronics did in his design.

These same output stages are in charge to amplify the waves coming from the IC. Here I cheated the Eurorack standard a little bit, keeping outputs in the 8-9Vpp ballpark instead of 10Vpp (who needs 10Vpp on audio waveform?).

>>HERE<< a Falstad simulation of one of the final stages I used.

With respect to my first module version I left out the attenuation stage for FM input. This way the oscillator module's dimension could stay whithin the 10HP. Not bad for a full-featured, CEM3340 based oscillator module!

An attenuation stage for FM, if necessary, can be easily added with an attenuator external module.

The moudle calls for dual rail supply (+12V and -12V). Suppply voltages are smoothed through capacitors as soon as they hit the module.

The CEM3340 eurorack module is made of three boards: a main board hosting most of the circuits, a front board with potentiometers and in/out jacks, and a panel "plate" board.

The panel board has no traces and should be made out of aluminum alloy, not FR4, for maximum strenght. Boards are intended to be stacked one over each other and are put into electrical comunication through male/female pinheaders.

Components values are directly silkscreened on the PCB, which makes the assembly way easier than consulting a reference sheet.

How to Tune

IMG_20250313_085531.png

A very nice but out-of-tune oscillator is useless. Having it in tune is fundamental to make the best use out of it.

In this Step a simple tuning procedure I drafted, for future reference.

Warning #1: the IC goes into the ultrasound realm with ease. Do not use valued speakers to tune the oscillator or you run the risk to damage them. Use earphones, but do not wear them (your ears are even more valued).

Warning #2: the oscillator output is HOT (8-9Vpp). Use an attenuator before hitting a line mixer desk, or you will likely damage it.

Now that you have been warned about risks, we can start :)

Hardware Needed

For the tuning procedure we are in the need for:

1) a variable voltage source

2) a tuner (software or hardware will do).

A keyboard with CV out will work perfectly as variable voltage source.

Tuning Elements

On the main-board, there are 3 multi-turn trimmers for tuning: trimpot TA, trimpot TB and trimpot TC.

"TC" has only effect at higher frequencies (remember the "high frequency compensation" thing?), so forget it.

"TB" is the trimmer actually affecting tune tracking, so we will concentrate on that one.

There's a jumper on the main board. It's use is to disable the coarse potentiometer during tuning procedure. In it's "normal" position the coarse frequency potentiometer is engaged; on "tune" position corse pot is disabled.

Tuning Procedure

1) Disable coarse pitch control by moving the jumper on the main board from "normal" position to "tune".

2) Set fine pitch control at half-way.

3) Get your output from the SAW wave. If you prefer to use pulse wave, don't forget to put PWM potentiometer at half way or you run the risk to have no output and start thinking something is wrong with your module ;)

4) Turn potentiometer TB fully clockwise. You have now fully compressed your tracking range, so you will hear nothing on the whole keyboard range.

5) Apply a 4V signal (or press C5 on your CV keyboard) to the V/oct input.

6) Turn trimmer TB clockwise untill you hear something. Use the fine pitch potentiometer to find a spot where the wave frequency is detectable by your tuner (or at least audible). Tracking is very sensible, so move TB in small steps. If you have problems finding the spot, go back to point #4 and give TA some counterclock wise turn.

7) Apply a 4V signal (or press C5 on your CV keyboard) to the V/oct input.

8) Tune to the closest note/pitch by rotating the Fine tuning potentiometer. Which note doesn't matter!

9) Apply a 2V signal (or press C3 on your keyboard).

10) If the pitch is higher than two octaves with respect to the previous one, turn TB clockwise by a small amount. If the pitch is lower thatn two octaves, turn TB counterclockwise.

11) Go back to point #7 and repeat untill your scaling is ok over the whole octaves range of your interest.


Please notcie that TB is very sensible. Even a small degree turn highly affects tracking.

If after going through the whole procedure the scaling is still not ok, give TA a turn.

When the scaling procedure has ended and your tuning is ok, re-enable the coarse tuning control by moving the jumper back to "normal" position.

Acknowledgments and Links

IMG_20250311_082929_risultato.jpg
IMG_20250311_082859_risultato.jpg
IMG_20250311_082554_risultato.jpg

Many thanks to the nice girls and guys at JLCPCB for sponsoring this module's PCBs. Without their contribution this project would have never reached it's actual level of developent.

JLCPCB is a high-tech manufacturer specialized in the production of high-reliable and cost-effective PCBs. They offer a flexible PCB assembly service with a huge library of more than 600.000 components in stock.

3D printing is part of their portfolio of services so one could create a full finished product, all in one place!

By registering at JLCPCB site via THIS LINK (affiliated link) you will receive a series of coupons for your orders. Registering costs nothing, so it could be the right opportunity to give their service a try ;)

All Gerber files and sketches I realized for this project are stored >>HERE<< (Github).

My projects are free and for everybody. You are anyway welcome if you want to donate some change to help me cover components costs and push the development of new projects.

>>HERE<< is my paypal donation page, just in case ;)