
Main pcb
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
12CH340C
SOP-16-20℃~+70℃ 2Mbps 3.3V、5V 50uA 7mA Transceiver USB 2.0 SOP-16 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersESP32-S3
QFN-56-EP(7x7)-40℃~+105℃ -98.4dBm 150Mbps 2.412GHz~2.484GHz 2.4GHz 21dBm 340mA 3V~3.6V 88mA SPI、USB、UART、ADC、I2C、I2S、PWM WiFi transceiver QFN-56-EP(7x7) RF Transceiver ICs ROHSEspressif SystemsRF Transceiver ICs6N137-L
DIP-8-40℃~+85℃ 0.6V 1 1.38V 15Mbps 15kV/us 15mA 2.7V~5.5V 50mA 5V 5kV 75ns 85mW 90ns DC DIP-8 Logic Output Optoisolators ROHSLite-OnLogic Output OptoisolatorsMCP23017-E/SS
SSOP-28(5.3x10.2x0.65)-40℃~+125℃ 1.7MHz 1.8V~5.5V 16 1uA 600mV 8 8mA I2C Interrupt Output Reset function、Cascading and address extension SSOP-28 I/O Expanders ROHSMicrochip TechnologyI/O ExpandersPCM5102APW
TSSOP-20-25℃~+85℃ 1.8V~3.3V 2 32 384kHz 500uA 50MHz Audio Decoder Digital filtering、Power-down mode I2S TSSOP-20 ADCs/DACs - Special Purpose ROHSTexas InstrumentsADCs/DACs - Special Purpose1N4148WS
SOD-3231.25V@150mA 100V 150mA 1uA@75V 200mW 2A 4ns Independent SOD-323 Switching Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Switching DiodesSK6805E-J
SMD,5.4x5mm-40℃~+85℃ 0.5mA 1.6mm 100mcd~200mcd 100ns 120° 1kHz 2000V 3.7V~5.5V 385mcd~697.5mcd 460nm~470nm 5.4mm 50ns 520nm~535nm 5mm 620nm~625nm 800Kbit/s 80mcd~160mcd 80ns Built-in power-on reset circuit Semi-transparent lens SMD,5.4x5mm RGB LEDs(Built-in IC) ROHSOPSCO OptoelectronicsRGB LEDs(Built-In IC)LESD5D5.0CT1G
SOD-523-55℃~+150℃ 100W 12pF 16V 1uA 5V 7A 7V Bidirectional ESD IEC 61000-4-2 SOD-523 ESD and Surge Protection (TVS/ESD) ROHSGOODWORKUncategorised1N5819HW-7-F-01
SOD-123Schottky DiodesDiodes IncorporatedKT-0603B
0603100mW 120° 175mcd 3.1V 460nm~475nm 469nm 5mA Blue Discrete Diode Water Clear 0603 LED Indication - Discrete ROHSHubei KENTO ElecLED Indication - DiscreteL8050QLT1G
SOT-23-55℃~+150℃ 1 NPN 100 150nA 225mW 25V 500mV 5V 800mA NPN SOT-23 Bipolar (BJT) ROHSLeshan Radio (LRC)Bipolar (BJT)TS-1088-AR02016
SMD,4x3mm-30℃~+80℃ 1.6N 100,000 cycles 12V 2mm 3.9mm 3mm 50mA Black Round Button SMD(SMT) Tab SPST Surface Mount,Vertical Without Bracket SMD,4x3mm Tactile Switches ROHSXUNPUTactile Switches
README
README.mdKeySynth
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:
calcfor the tiny programming language used for synthesis,replfor a simple REPL forcalcwhich is used for debugging and implementing new langauge features,synthfor the audio engine,keyboard_protocolfor interfacing between the RP2040 and the ESP32-S3 about keyboards and two of the three knobs over UART serial,keyboard_rp2040for running the keyboard matrix on the RP2040, andappfor 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 86 | 1N4148WS | Diode_SMD:D_SOD-323 | D11, D16, KD1, KD2, KD10, KD11, KD12, KD13, KD14, KD15, KD16, KD17, KD18, KD19, KD20, KD21 +70 |
| 84 | SW_Push | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u | KSW1, KSW2, KSW10, KSW11, KSW12, KSW13, KSW14, KSW15, KSW16, KSW17, KSW18, KSW19, KSW20, KSW21, KSW22, KSW23 +68 |
| 12 | SK6805 | LED_SMD:LED_SK6805_PLCC4_2.4x2.7mm_P1.3mm | D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28 |
| 10 | LESD5D5.0CT1G | TVS_LESD5D5.0CT1G:TVS_LESD5D5.0CT1G | D1, D2, D5, D6, D7, D8, D9, D10, D14, D15 |
| 9 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C5, C10, C24, C25, C26, C30, C32, C34, C37 |
| 6 | 0 | Resistor_SMD:R_1206_3216Metric | R10, R11, R12, R13, R14, R34 |
| 4 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C9, C16, C17, C20 |
| 4 | 10uF | Capacitor_SMD:C_0603_1608Metric | C7, C12, C22, C23 |
| 4 | 10uF | Capacitor_SMD:C_0402_1005Metric | C31, C33, C35, C38 |
| 4 | 5k1 | Resistor_SMD:R_0402_1005Metric | R8, R9, R17, R18 |
| 3 | 100 | Resistor_SMD:R_1206_3216Metric | R19, R23, R27 |
| 3 | 1uF | Capacitor_SMD:C_0603_1608Metric | C1, C8, C21 |
| 3 | 4.7k | Resistor_SMD:R_0402_1005Metric | R2, R3, R4 |
| 3 | NC | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C13, C18, C19 |
| 2 | 0 (1%) | Resistor_SMD:R_1206_3216Metric | R25, R28 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R15, R16 |
| 2 | 10k (1%) | Resistor_SMD:R_0402_1005Metric | R26, R31 |
| 2 | 16pF | Capacitor_SMD:C_0603_1608Metric | C3, C11 |
| 2 | 1N5819HW-7-F | 1N5819HW-7-F:SOD3715X145N | D3, D4 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R22, R37 |
| 2 | 2.2nF | Capacitor_SMD:C_0603_1608Metric | C27, C29 |
| 2 | 2.2uF | Capacitor_SMD:C_0603_1608Metric | C28, C36 |
| 2 | 200 | Resistor_SMD:R_0402_1005Metric | R20, R33 |
| 2 | 22 | Resistor_SMD:R_0402_1005Metric | R6, R7 |
| 2 | 220 | Resistor_SMD:R_0603_1608Metric | R21, R36 |
| 2 | 470 | Resistor_SMD:R_0805_2012Metric | R24, R32 |
| 2 | 600Ω @ 100MHz | Inductor_SMD:L_0805_2012Metric | FB1, FB2 |
| 2 | 6N137-L | Package_DIP:DIP-8_W7.62mm | U5, U8 |
| 2 | KT-0603B | LED_SMD:LED_0603_1608Metric | D12, D13 |
| 2 | L8050QLT1G | L8050QLT1G:SOT-23_LRC | Q1, Q2 |
| 2 | Midi in TRRS | Connector_Audio:Jack_3.5mm_PJ320D_Horizontal | J6, J7 |
| 2 | TS-1088-AR02016 | TS-1088-AR02016:SW_TS-1088-AR02016 | SW2, SW3 |
| 2 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J3, J4 |
| 1 | 0 | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 10k 1% 0.25W | Resistor_SMD:R_1206_3216Metric | R30 |
| 1 | 10nF | Capacitor_SMD:C_0402_1005Metric | C2 |
| 1 | 1uF | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | 2.0nH (0.1 nH) 500ma | Inductor_SMD:L_0402_1005Metric | L2 |
| 1 | 2.2uF | Capacitor_SMD:C_0402_1005Metric | C6 |
| 1 | 2.4nH | Inductor_SMD:L_0201_0603Metric | L3 |
| 1 | 2.4pF | Capacitor_SMD:C_0603_1608Metric | C14 |
| 1 | 2.7k | Resistor_SMD:R_0603_1608Metric | R35 |
| 1 | 2.7pF | Capacitor_SMD:C_0603_1608Metric | C15 |
| 1 | 2450AT18D0100E | 2450AT18D0100E_JOT:2450AT18D0100E_JOT | ANT1 |
| 1 | 24nH | Inductor_SMD:L_0805_2012Metric | L1 |
| 1 | 499 (1%) | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 7.5k | Resistor_SMD:R_0603_1608Metric | R29 |
| 1 | Audio out TRRS | Connector_Audio:Jack_3.5mm_PJ320D_Horizontal | J8 |
| 1 | CH340C | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U6 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Conn_01x08 | Connector_PinHeader_1.00mm:PinHeader_1x08_P1.00mm_Vertical | J1 |
| 1 | ESP32-S3 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mm | U4 |
| 1 | MCP23017-E/SS | mcp23017:SSOP28_MC_MCH | U3 |
| 1 | Midi out TRRS | Connector_Audio:Jack_3.5mm_PJ320D_Horizontal | J5 |
| 1 | PCM5102A | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U7 |
| 1 | Q22FA12800101 | Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mm | Y1 |
| 1 | RotaryEncoder_Switch | Rotary_Encoder:RotaryEncoder_Alps_EC12E-Switch_Vertical_H20mm | SW1 |
| 1 | TLV76733DRVx | Package_SON:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm_ThermalVias | U2 |
| 1 | W25Q128JVSIQ TR | W25Q128JVSIQ TR:SOIC_208MIL_WIN | U1 |
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 mm

- 2 layers30 × 61 mm

EKMC ESP32C3
Konstantin-Dudersky/plc-modules
После открыть файл в Inkscape и изменить размер страницы
25 parts - 4 layers115 × 55 mm

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 mm

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 mm

- 4 layers93 × 72 mm

- 2 layers86 × 50 mm

- 4 layers50 × 40 mm
