Skip to the content
PCBKitNew board
2 layersMain pcb, the printed circuit board in 3D

An equation synthesiser

Copper layers
2
Thickness
1.6 mm
Parts
299
Nets
244
Pads
1,108
Tracks, vias
530, 6
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Feb 2026
Updated
7 Oct 2026

Overview

Main pcb is an open-source printed circuit board by ostev, from the ostev/keysynth repository on GitHub. It is a 2-layer board with 299 parts on 244 nets, routed with 530 tracks and 6 vias.

It is built around the CH340C, ESP32-S3 and 6N137-L, with the MCP23017-E/SS, PCM5102APW and 1N4148WS among its other parts. Its parts include 112 diodes, 38 capacitors, 37 resistors, 8 ICs and 8 connectors. It belongs with the ESP32 boards of this library.

Main components

12

README

README.md

KeySynth

KeySynth is an equation synthesiser built around a traditional mechanical keyboard!

An equation synthesiser is a wavetable synthesiser that allows the user to input arbitrary mathematical expressions which can then be used to create sounds! It also features a basic low-pass filter, with more effects (hopefully) to come.

In addition, it can act as a regular computer keyboard.

This repository contains the open-source PCBs (missing non-open source components from UltraLibrarian and SnapMagic) as well as project's source code. The PCB contains an 80% keyboard, three knobs, a pinout for a display, an ESP32-S3 (used for audio, display and USB) and an RP2040 (used for interfacing with the keyboard matrix due to limited pin availability).

The source code is divided into the following crates:

  • calc for the tiny programming language used for synthesis,
  • repl for a simple REPL for calc which is used for debugging and implementing new langauge features,
  • synth for the audio engine,
  • keyboard_protocol for interfacing between the RP2040 and the ESP32-S3 about keyboards and two of the three knobs over UART serial,
  • keyboard_rp2040 for running the keyboard matrix on the RP2040, and
  • app for running the main application on the ESP32-S3.

Demo

There'll be a link to a video demo up on YouTube once I've filmed it.

:construction: :construction: :construction: Roadmap

This project isn't finished! Equation synthesis and keyboard input all work, but I want to implement some more features before considering it complete:

  • USB MIDI input from host
  • Improve PCB layout (as-is there are a couple of design flaws that don't inhabit the current set of functionality but limit the utility of 3.5mm audio output. I'm not sure when I'll be able to fix this: it'll be when I've made enough changes that I can justify the cost of ordering another set of PCBs.)
  • Add more audio effects, like reverb and chorus.
  • Add more audio synthesis engines, like subtractive or FM synthesis.

Parts

299
QtyValueFootprintReferences
861N4148WSDiode_SMD:D_SOD-323D11, D16, KD1, KD2, KD10, KD11, KD12, KD13, KD14, KD15, KD16, KD17, KD18, KD19, KD20, KD21 +70
84SW_PushPCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00uKSW1, KSW2, KSW10, KSW11, KSW12, KSW13, KSW14, KSW15, KSW16, KSW17, KSW18, KSW19, KSW20, KSW21, KSW22, KSW23 +68
12SK6805LED_SMD:LED_SK6805_PLCC4_2.4x2.7mm_P1.3mmD17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28
10LESD5D5.0CT1GTVS_LESD5D5.0CT1G:TVS_LESD5D5.0CT1GD1, D2, D5, D6, D7, D8, D9, D10, D14, D15
90.1uFCapacitor_SMD:C_0402_1005MetricC5, C10, C24, C25, C26, C30, C32, C34, C37
60Resistor_SMD:R_1206_3216MetricR10, R11, R12, R13, R14, R34
40.1uFCapacitor_SMD:C_0603_1608MetricC9, C16, C17, C20
410uFCapacitor_SMD:C_0603_1608MetricC7, C12, C22, C23
410uFCapacitor_SMD:C_0402_1005MetricC31, C33, C35, C38
45k1Resistor_SMD:R_0402_1005MetricR8, R9, R17, R18
3100Resistor_SMD:R_1206_3216MetricR19, R23, R27
31uFCapacitor_SMD:C_0603_1608MetricC1, C8, C21
34.7kResistor_SMD:R_0402_1005MetricR2, R3, R4
3NCCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC13, C18, C19
20 (1%)Resistor_SMD:R_1206_3216MetricR25, R28
210kResistor_SMD:R_0603_1608MetricR15, R16
210k (1%)Resistor_SMD:R_0402_1005MetricR26, R31
216pFCapacitor_SMD:C_0603_1608MetricC3, C11
21N5819HW-7-F1N5819HW-7-F:SOD3715X145ND3, D4
21kResistor_SMD:R_0603_1608MetricR22, R37
22.2nFCapacitor_SMD:C_0603_1608MetricC27, C29
22.2uFCapacitor_SMD:C_0603_1608MetricC28, C36
2200Resistor_SMD:R_0402_1005MetricR20, R33
222Resistor_SMD:R_0402_1005MetricR6, R7
2220Resistor_SMD:R_0603_1608MetricR21, R36
2470Resistor_SMD:R_0805_2012MetricR24, R32
2600Ω @ 100MHzInductor_SMD:L_0805_2012MetricFB1, FB2
26N137-LPackage_DIP:DIP-8_W7.62mmU5, U8
2KT-0603BLED_SMD:LED_0603_1608MetricD12, D13
2L8050QLT1GL8050QLT1G:SOT-23_LRCQ1, Q2
2Midi in TRRSConnector_Audio:Jack_3.5mm_PJ320D_HorizontalJ6, J7
2TS-1088-AR02016TS-1088-AR02016:SW_TS-1088-AR02016SW2, SW3
2USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J3, J4
10Resistor_SMD:R_0402_1005MetricR1
110k 1% 0.25WResistor_SMD:R_1206_3216MetricR30
110nFCapacitor_SMD:C_0402_1005MetricC2
11uFCapacitor_SMD:C_0402_1005MetricC4
12.0nH (0.1 nH) 500maInductor_SMD:L_0402_1005MetricL2
12.2uFCapacitor_SMD:C_0402_1005MetricC6
12.4nHInductor_SMD:L_0201_0603MetricL3
12.4pFCapacitor_SMD:C_0603_1608MetricC14
12.7kResistor_SMD:R_0603_1608MetricR35
12.7pFCapacitor_SMD:C_0603_1608MetricC15
12450AT18D0100E2450AT18D0100E_JOT:2450AT18D0100E_JOTANT1
124nHInductor_SMD:L_0805_2012MetricL1
1499 (1%)Resistor_SMD:R_0402_1005MetricR5
17.5kResistor_SMD:R_0603_1608MetricR29
1Audio out TRRSConnector_Audio:Jack_3.5mm_PJ320D_HorizontalJ8
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU6
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1Conn_01x08Connector_PinHeader_1.00mm:PinHeader_1x08_P1.00mm_VerticalJ1
1ESP32-S3Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mmU4
1MCP23017-E/SSmcp23017:SSOP28_MC_MCHU3
1Midi out TRRSConnector_Audio:Jack_3.5mm_PJ320D_HorizontalJ5
1PCM5102APackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU7
1Q22FA12800101Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mmY1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC12E-Switch_Vertical_H20mmSW1
1TLV76733DRVxPackage_SON:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm_ThermalViasU2
1W25Q128JVSIQ TRW25Q128JVSIQ TR:SOIC_208MIL_WINU1

Questions

What parts does the Main pcb use?

299 parts, built around the CH340C, ESP32-S3, 6N137-L and MCP23017-E/SS. 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 Main pcb KiCad files?

From the ostev/keysynth repository on GitHub, at the commit this page was made from: the board is hardware/main_pcb/main_pcb.kicad_pcb and its schematic hardware/main_pcb/keyboard_matrix.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Main pcb design in my own project?

Its repository states no licence, so its author keeps all rights: ask ostev before reusing the design.

Similar boards

  • 4 layers82.4 × 59.6 mmPixel click, the printed circuit board in 3D

    Pixel click

    Lee34667/PCB_Kicad_Projects

    Creating a L9110 module using PCB techniques.

    131 parts1
  • 2 layers30 × 61 mmEKMC ESP32C3, the printed circuit board in 3D

    EKMC ESP32C3

    Konstantin-Dudersky/plc-modules

    После открыть файл в Inkscape и изменить размер страницы

    25 parts
  • 4 layers115 × 55 mmRoamr motors, the printed circuit board in 3D

    Roamr motors

    uw-roamr/roamr

    turn your phone into a robot running SLAM with two motors, two control boards, and a bluetooth chip

    110 parts6
  • 2 layers36.6 × 57.1 mmESP32 S3 devkit test, the printed circuit board in 3D

    ESP32 S3 devkit test

    FrWA14/KiCad8_ESP32S3_DevModule_wroom-1_DevelopementBoard

    Contient tout les fichier KiCad nécessaire pour faire une carte ESP32S3 avec un module Wroom-1.

    44 parts1
  • 2 layers30 × 63 mmEsp32 s3 devkitc, the printed circuit board in 3D

    Esp32 s3 devkitc

    Juanse3/esp32_devkit

    Devkit for ESP32 S3 with all 0603 components

    51 parts
  • 4 layers93 × 72 mmPresstimer, the printed circuit board in 3D

    Presstimer

    mrksn/presstimer

    89 parts
  • 2 layers86 × 50 mmCYD NMEA, the printed circuit board in 3D

    CYD NMEA

    Mate8/NMEA-Tester

    Nmea0183 Sniffer basen on CYD PCB

    76 parts2
  • 4 layers50 × 40 mmNode.IO E1, the printed circuit board in 3D

    Node.IO E1

    dsimat/Node.IO-E1

    50 parts