

03 quad vca mixer
Plans for my modular synthesizer
- Size
- 70 × 100 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 153
- Nets
- 95
- Pads
- 430
- Tracks, vias
- 888, 53
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 8 Apr 2024
- Updated
- 6 Nov 2026
Overview
03 quad vca mixer is an open-source printed circuit board by bmurauer, from the bmurauer/cynthia repository on GitHub. It is a 2-layer board of 70 × 100 mm with 153 parts on 95 nets, routed with 888 tracks and 53 vias.
It is built around the TL072, 1N4148WS and BC847BS, with the SS14 among its other parts. Its parts include 84 resistors, 20 capacitors, 9 ICs, 9 connectors and 6 diodes. It belongs with the audio and music boards of this library.
Main components
4TL072
SOP-8-18V~18V 0℃~+70℃ 1.4mA 1.5nA 10V/us 10mV 2 2.5nA 3MHz 85dB SOP-8 Operational Amplifier ROHSGcoreOperational Amplifier1N4148WS
SOD-3231.25V@150mA 100V 150mA 1uA@75V 200mW 2A 4ns Independent SOD-323 Switching Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Switching DiodesBC847BS
SOT-363Bipolar (BJT)hongjiachengSS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky Diodes
README
README.mdCynthia
Plans for my modular synthesizer, named Cynthia.
I have split the modules into folders with numbered names. These numbers only correspond to the order that I included them into this project. Every project should at least contain:
- a
README.mdwith more information about the module schematicsfor the schematics, made in KiCADstripboardfor the design of the stripboard (you don't need this if you order proper PCBs). I use DIY Layout Creator for this.panel(orfront_panel) for the front panels. I use custom templates for OpenSCAD, which can be found inlib/openscad/:kosmo.scadfor the Kosmo-format (20cm height) panels andeurorack.scadfor the eurorack (3U, 128.5mm) panels. On linux, you can use the templates by copying them to:bash mkdir -p ~/.local/share/OpenSCAD/libraries cp lib/openscad/*.scad ~/.local/share/OpenSCAD/libraries/
Some modules have additional subfolders with sound samples or Arduino source code.
Collective BOM
tools/collective_bom.py collects the parts of all numbered (eurorack) modules
into a single markdown BOM, so that everything can be ordered in one go.
The KOSMO modules are not included.
tools/collective_bom.py # all modules, markdown on stdout
tools/collective_bom.py 01 03 # only these modules
tools/collective_bom.py -o BOM.md # write to a file
tools/collective_bom.py --refs # add the reference designators
tools/collective_bom.py --boards 2 # quantities for two sets of boardsIt reads the *.net netlists, which are exported from KiCad via
File > Export > Netlist (KiCad format).
Modules without a netlist are listed at the end of the document instead of
being silently dropped.
Test points and parts marked DNP or "exclude from BOM" are skipped, and
footprints of the same physical package are merged (a cynthia:R SMD 0805 and
a Resistor_SMD:R_0805_... resistor end up on the same line); the merges are
documented in the generated document.
Case, PSU, and Bus Boards
I made my own case, following the guide from Look Mum No Computer. Bought some wood, screwed everything together, and painted everything white.
I was not confident enough to build my own PSU since: 1. I'm really not an electrician, and I am afraid of things blowing up. 2. I have trouble sourcing reliable 12V AC/AC transformers. So, I decided to buy a Meanwell RT-65B, which has +12V, -12V, and +5V outputs, and is not too expensive. Perfect! It can also be used to power USB- or arduino-based modules.
For bus boards, I soldered some shrouded 16-pin headers on pieces of stripboard and connected everything using the same 16-pin eurorack cables that I use to power the modules. I include smoothing caps on each module rather than on the bus boards.
Cables
I found that the cheapest option to get cables is to just make your own. 1/4 inch jacks are cheap, and you have the benefit of making the sizes that you actually need. I bought a 30m microphone cable from which I snip off what I need.
OpenSCAD panels
Design the panels using OpenSCAD, because it is intuitive to me as a programmer.
I then print the panels using a standard filament 3D printer.
Both templates define the same basic modules (panel, jack, pot, led, switch, pushButton, ...),
so only include one of them per panel.
Eurorack panels
eurorack.scad sets the panel height to 128.5mm and provides hp(n) for the panel width
(n * 5.08mm - 0.3mm tolerance, so that neighbouring panels don't jam).
The mounting holes follow the Doepfer A-100 spec: 3mm from the top and bottom edges, the first hole 7.5mm from the
left edge, and further positions on the 5.08mm (1HP) grid. euroRackMountHoles(n_top, n_bot) places one hole at
the top and one at the bottom, each shifted n HP to the right of the first position. Shifting the two holes
to different positions lets neighbouring modules share a rail without their screws colliding.
The holes are 3.2mm wide (M3 clearance) and slotted horizontally by 3mm for tolerance.
For custom positions, use euroRackMountHole(x, y, d, slot) directly.
The following example generates the 4HP panel of the 05_midi_to_cv drum velocity player:
include <eurorack.scad>
difference() {
panel(hp(4));
euroRackMountHoles(0, 1); // top hole at 7.5mm, bottom hole at 12.58mm
jack(10, 19.75);
jack(10, 30.75);
microswitch((11.5+16)/2, 65.5);
led((6.5-1.27), 65.5);
jack(10, 97.75);
jack(10, 108.75);
}Kosmo panels
The following example generates a panel for the first module, the 01_poly_midi_2_cv:
width = 100;
include <kosmo.scad>
difference(){
panel(width);
midiSocket(width/2, panelHeight-35);
buffer=20; // space between border and first item
jack(buffer, 40);
switch(width/2, 40);
jack(width-buffer, 40);
jack(buffer, 70);
switch(width/2, 70);
jack(width-buffer, 70);
jack(buffer, 100);
switch(width/2, 100);
jack(width-buffer, 100);
jack(buffer, 130);
switch(width/2, 130);
jack(width-buffer, 130);
}
pcbHolders();This results in the following panel: 
I have included two tabs for the PCB that are printed with the panel, to which I can screw the PCB using M3 screws. The tabs have small indentations for the nuts. Since I have a crappy 3D printer, those holes are not very tidy, and I use my soldering iron to convince the nuts to go where they should. And since I am an even crappier woodcraftsman than I am an electrician, the panels are set to 197 mm height in the library file to compensate for the bad measuring I did when making the case.

[!NOTE] The distance between the tabs that I have used depends on the pre-drilled holes of the strip boards that I like to use. Please change this distance if you have other PCBs.
PCB Design and Build Notes
Lessons from the first batch of eurorack PCBs (#05 rev1), to keep in mind for every new board.
Layout
- Same orientation on sibling boards. Boards that share most of their circuit (like the #05 players) should place shared parts in the same orientation. On #05 rev1, the TL072 on the drum velocity player was rotated 180° compared to the melodic player, which cost me one botched soldering job. Across the whole project, keep IC pin 1 in the same corner wherever the layout allows.
- Align bus headers between coupled modules. When modules are connected by a ribbon cable (like the #05 player bus), put the bus header at the same vertical position on every PCB, so the cable runs straight across the case.
Releasing a board revision
- Put a silkscreen text on every board saying what it is and which revision it is, e.g.
#05: Conductor: Main Board/Rev. 2. Set the same title and revision in the schematic's title block, so the netlist carries them too. Boards of a multi-board module or sibling modules look alike once they are out of the bag, and a rev1 board in hand must be told apart from a rev2 one. - Commit the exact state that is sent to the fab, including the Gerbers, and tag that commit as
<module>-rev<N>(e.g.05-rev1). Start the next revision from that tag, so the ordered version can always be recovered.
Bring-up
- Measure every supply rail at the far end of a bus as well as at its source. On #05 rev1, a bad solder joint on the conductor meant that -12V never reached the players. Nothing on the conductor uses -12V, so the conductor tested fine, and the fault only showed up as a player op-amp stuck high.
Thanks to
I heavily relied on all material by Moritz Klein. Thanks for these awesome videos. These were the starting point for my project.
Further good sources that I recommend are:
P.S. I have built Cynthia using striboards, because I wanted to learn and prototype fast. Should you design some PCBs for any of the modules, I'd love to include them in this repository.
Parts
153| Qty | Value | Footprint | References |
|---|---|---|---|
| 43 | 100k | cynthia:R SMD 0805 | R1, R2, R3, R10, R11, R12, R13, R14, R21, R23, R33, R34, R39, R40, R41, R42 +27 |
| 18 | 100nF | cynthia:C SMD 0805 | C3, C4, C5, C6, C7, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20 +2 |
| 12 | 10k | cynthia:R SMD 0805 | R17, R18, R35, R36, R37, R38, R57, R58, R75, R76, R77, R78 |
| 9 | TL072 | cynthia:SOIC-8_3.9x4.9mm_P1.27mm | U1, U2, U3, U4, U5, U6, U7, U8, U9 |
| 8 | 100R | cynthia:R SMD 0805 | R25, R26, R31, R32, R65, R66, R71, R72 |
| 8 | 100k | cynthia:potientiometer | RV1, RV2, RV3, RV4, RV9, RV10, RV11, RV12 |
| 8 | 100k | cynthia:trimmer | RV5, RV6, RV7, RV8, RV13, RV14, RV15, RV16 |
| 8 | 20k | cynthia:R SMD 0805 | R27, R28, R29, R30, R67, R68, R69, R70 |
| 4 | 15k | cynthia:R SMD 0805 | R22, R24, R62, R64 |
| 4 | 1N4148WS | Diode_SMD:D_SOD-323_HandSoldering | D3, D4, D5, D6 |
| 4 | 240k | cynthia:R SMD 0805 | R15, R16, R55, R56 |
| 4 | 68k | cynthia:R SMD 0805 | R19, R20, R59, R60 |
| 4 | BC847BS | Package_TO_SOT_SMD:SOT-363_SC-70-6 | Q1, Q2, Q3, Q4 |
| 4 | CV in | cynthia:3.5mm jack mono switched | J2, J3, J6, J7 |
| 4 | TestPoint | TestPoint:TestPoint_Pad_2.0x2.0mm | TP1, TP2, TP3, TP4 |
| 4 | signal in | cynthia:3.5mm jack mono switched | J4, J5, J8, J9 |
| 2 | 22uF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C1, C2 |
| 2 | SS14 | Diode_SMD:D_SMA | D1, D2 |
| 1 | 1k | cynthia:R SMD 0805 | R4 |
| 1 | Eurorack 10 pin header | cynthia:Eurorack Header | H1 |
| 1 | Signal out | cynthia:3.5mm jack mono switched | J1 |
More from bmurauer/cynthia
12- 2 layers80 × 100 mm

- 2 layers38.5 × 100 mm

- 2 layers40 × 108 mm

- 2 layers30 × 100 mm

- 2 layers29 × 100 mm

- 2 layers20 × 109 mm

- 2 layers18 × 100 mm

- 2 layers28 × 100 mm

- 2 layers18 × 100 mm

- 2 layers

- 2 layers38.5 × 100 mm

- 2 layers50 × 50 mm

Similar boards
- 4 layers100 × 100 mm

TouchSynth
cpldcpu/TouchSynth
Analog Monophonic Synthesizer with a touch keyboard. Controller by CH32V00x
246 partsMIT - 2 layers58 × 110 mm

- 2 layers215 × 100 mm

- 2 layers21 × 31.5 mm

- 2 layers196 × 104 mm

- 2 layers66.7 × 85.7 mm

Opentaxus
OpenTaxus/opentaxus
Opentaxus is a permissively licensed set of hardware, software, and tooling to help as a starting point for customized conference badges.
54 parts19 - 2 layers144 × 143 mm

- 2 layers63 × 56 mm

Questions
How big is the 03 quad vca mixer PCB?
It measures 70 × 100 mm and has 2 copper layers, 1.6 mm thick.
What parts does the 03 quad vca mixer use?
153 parts, built around the TL072, 1N4148WS, BC847BS and SS14. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the 03 quad vca mixer KiCad files?
From the bmurauer/cynthia repository on GitHub, at the commit this page was made from: the board is 03_quad_vca_mixer/03_quad_vca_mixer.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the 03 quad vca mixer design in my own project?
Its repository states no licence, so its author keeps all rights: ask bmurauer before reusing the design.