A Eurorack VCO module based on the AS3340 chip from Electric Druid — a drop-in clone of the classic Curtis CEM3340. Analog 1V/oct tracking with simultaneous saw, triangle, sine, and pulse outputs.
- 1V/oct tracking with two summed V/oct CV inputs (use both for transpose/unison)
- Course tune with jumper-selectable range (narrow / wide via JP1) plus Fine tune pot
- Linear FM input with attenuator pot (Lin FM, ±5V CV)
- PWM input with amount attenuator (±5V CV), feeds the chip's pulse-width modulator
- Hard / Soft Sync input with panel switch for selection (AC-coupled, 1 nF)
- Four simultaneous outputs (10 Vpp): Saw, Triangle, Sine (diode-shaped from triangle), Pulse
- Three calibration trims:
- Scale trim (RV1) — V/oct gain
- High-Frequency Tracking trim (RV7) — accuracy at high notes
- Sine amplitude trim (RV6) — tri-to-sine shape
- Polystyrene timing capacitor (C8, 1 nF) for low temperature drift
- Eurorack ±12V power via either 16-pin IDC or 3-pin JST connector
| Jack | Range | Notes |
|---|---|---|
| V/oct 1 | ±5V | Summed with V/oct 2 at the frequency-control node |
| V/oct 2 | ±5V | Summed with V/oct 1; direct (no attenuator) |
| Lin FM | ±5V | Through RV2 attenuator pot, AC-coupled into chip's Linear FM input |
| PWM | ±5V | Through RV3 amount pot, scaled to ~0–5V into chip's PWM-In |
| Sync | gate/audio | AC-coupled (1 nF), SW1 routes to Hard Sync (down) or Soft Sync (up) |
| Saw Out | 10 Vpp | Buffered, 1K series, ±5V swing |
| Tri Out | 10 Vpp | Buffered, 1K series, ±5V swing |
| Sine Out | 10 Vpp | Diode tri-to-sine shaper, amplitude trim, buffered |
| Pulse Out | 10 Vpp | Buffered, 1K series, ±5V swing |
V/oct 1 ─┐
V/oct 2 ─┼──[summing node, 10K + 10K + 47K (course) + 1M5 (fine)]─► AS3340 Freq Control
Course ─┤ ├─► Saw ─► [×2.09 buffer] ─► Saw Out
Fine ────┘ ├─► Tri ─► [×2.09 buffer] ─► Tri Out
│ └► [diode shaper + RV6 amp trim] ─► Sine Out
Lin FM ─► [×RV2 amount] ─► [bias network: 1M5/+12V, 470R/GND] ──► AS3340 Lin FM In
│
PWM CV ─► [×RV3 amount + 100K/200K/100K conditioner] ───────────► AS3340 PWM In ◄─── [10K hysteresis from Pulse Out]
│
Sync in ─► [1 nF AC-couple] ─► SW1 ─► Hard Sync / Soft Sync ────► AS3340 Sync
│
└─► Pulse ─► [×2.09 buffer] ─► Pulse Out
Calibration trims:
RV1 (Scale) → AS3340 Scale1/Scale2 pins (V/oct gain)
RV7 (HFT) → AS3340 HFT pin (high-frequency correction)
RV6 (Sine Amp) → tri-to-sine output buffer (sine amplitude)
Eurorack ±12V ─► U3 (78M05) / U4 (79M05) ─► ±5V rails (op-amp + chip VEE)
Timing cap: C8 = 1 nF polystyrene (critical: do not substitute ceramic)
- Eurorack ±12V via J10 (3-pin JST) or J11 (16-pin IDC) — populate one
- Local U3 (78M05) makes +5V from +12V
- Local U4 (79M05) makes −5V from −12V; this becomes the AS3340's VEE pin voltage
- R39 / R40 (10K) are optional minimum-load resistors
- D3 / D4 — reverse-polarity protection diodes
AS3340 VEE protection. The chip has an internal 7.4V Zener; the absolute max for VEE-to-GND is −6V. Because VEE here is driven from −5V (not −12V directly), no current-limiting resistor (REE) is needed.
If you ever modify the design to feed VEE directly from a more-negative rail, the datasheet formula is REE = (|VEE| − 7.4) / 0.008:
| VEE supply | REE |
|---|---|
| −5V | none |
| −12V | ~575 Ω |
| −15V | ~950 Ω (820 Ω works) |
The board has three trim pots that interact. Adjust in this order. You'll need: a multimeter, a frequency counter or tuner (a phone tuner app works), and a stable temperature environment (let the module warm up ~10 minutes first — the chip drifts thermally during warm-up).
Step 1 — Scale trim (RV1). Sets the V/oct gain. This is the most important trim for musical accuracy.
- With no CV patched and Course/Fine at 12 o'clock, note the output frequency.
- Patch a known reference voltage into V/oct 1 (e.g., 0V from a calibrated source or shorted to GND). Tune Course/Fine until the saw output matches a reference note — say C2 (65.41 Hz).
- Apply +1V to V/oct 1. The output should rise exactly one octave (C3 = 130.81 Hz). If it's high, lower RV1 slightly; if low, raise it.
- Step the input voltage up to +4V or +5V and verify the output is still tracking 1V/oct. Iterate RV1 + the tune knob until accurate across 5+ octaves.
Step 2 — High-Frequency Tracking trim (RV7). Compensates for internal comparator delay at very high notes.
- With the V/oct calibrated (Step 1), apply +6V or +7V to push the output to ~8 kHz+.
- Compare actual output frequency to expected (e.g., from 65.41 Hz baseline, +7 octaves = 8372 Hz).
- Adjust RV7 to correct the deviation. RV7 mostly affects high frequencies — it should not noticeably shift low-frequency tuning.
- Re-verify Step 1 calibration. If low-frequency tracking shifted, iterate.
Step 3 — Sine Amplitude trim (RV6). Sets the tri-to-sine shape and amplitude.
- Patch a scope on the Sine Out jack with a steady tone (e.g., A4 = 440 Hz).
- Adjust RV6 until the waveform looks like a clean sine — not too peaked (under-trimmed) and not flat-topped (over-trimmed).
- By ear: clean smooth fundamental, no harsh harmonics.
Local archived copies live in references/ so this repo stays useful if the upstream links die.
- AS3340 datasheet — local copy · upstream (alfatriode.lv)
- Kassutronics 3340 VCO docs (v2.4) — local copy · upstream (GitHub) — primary design inspiration
- Electric Druid AS3340 product page
- Electric Druid CEM3340 VCO designs
- YuSynth VCO
- Tri-to-sine shaping techniques (Tim Stinchcombe)
What's ready for builders today, and what's still on the TODO list:
Production assets (what you need to actually fabricate and assemble a final unit)
- Schematic — Rev 0.1.2 (PDF)
- PCB layout — in progress — single working layout in
kicad/, not yet separated for fab. The current rev is labeled "Prototype." - Gerber files for fabrication — none yet
- BOM — Rev 0.1.0 PDF (critical: use polystyrene for C8 timing cap, not ceramic)
- Final front panel (SVG/PDF for fab) — none yet
- License — none yet
Prototype assets (for breadboard / perfboard / 3D-printed-panel builds before final PCB)
- 3D-printed prototype panel STL — 3340_VCO.stl
- Falstad simulations of sub-circuits — falstad/
Documentation
- Photos of the assembled module — none yet (drop in
photos/) - Demo video — none yet
- Build / assembly instructions — none yet
- Calibration / tuning notes — see "Calibration" section above
Want to help fill a gap (build photos, gerbers, an assembly guide)? Open an issue or PR.