Skip to the content
PCBKitNew board
2 layers60 × 150 mmKosmo multitool, the printed circuit board in 3D

Arduino Nano Every based development platform for DIY synthesizer enthusiasts.

Size
60 × 150 mm
Copper layers
2
Thickness
1.6 mm
Parts
131
Nets
81
Pads
288
Tracks, vias
417, 8
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
28 May 2021
Updated
8 Oct 2021

Overview

Kosmo multitool is an open-source printed circuit board by polykit, from the polykit/kosmo-multitool repository on GitHub. It is a 2-layer board of 60 × 150 mm with 131 parts on 81 nets, routed with 417 tracks and 8 vias.

It is built around the 74LS14PC and L7805. Its parts include 37 resistors, 19 diodes, 12 connectors, 10 capacitors and 4 ICs. It belongs with the audio and music boards of this library.

Main components

2

README

README.md

Kosmo Multitool

This repository contains schematics, PCB and source code for a synthesizer module in Kosmo format. This module consists of an Arduino Nano Every, CV and gate input and output options, MIDI, rotary encoder and an OLED display. It is meant as a development platform for DIY synthesizer enthusiasts.

Here is a full list of features:

  • 4x CV input (0-10V)
  • 4x CV output (0-10V)
  • 4x gate/trigger in
  • 4x gate/trigger out
  • 1.3" OLED display
  • DIN serial MIDI in/through/out
  • Rotary encoder with switch
  • 3 switches
  • 2 LEDs

Kosmo Multitool Assembled

Modules

  • ADSR
  • Arpeggiator
  • MIDI to CV
  • Multiple
  • Quantizer

Building

Gerbers for the main PCB can be found here and for the front panel here.

Kosmo Multitool Panel Kosmo Multitool PCB

BOM

ReferenceQuantityValueComment
A11Arduino Nano Every
C1 C2 C3 C4 C6 C7 C87100n
C5 C9 C10310uF
D17 D182LED 5mm
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D19171N4148
FB1 FB22Ferrite Bead
J11MIDI_INMolex KK 2.54mm 2 pin
J101CV_OUTMolex KK 2.54mm 5 pin
J21Display I2COLED display 1.3" 128x64 I2C SH1106
J31GATE_INMolex KK 2.54mm 5 pin
J41GATE_OUTMolex KK 2.54mm 5 pin
J51ADS1115 breakoutADC, pin order: VCC GND SCL SDA ADDR ALERT A B C D
J61MIDI_THRUMolex KK 2.54mm 2 pin
J71MIDI_OUTMolex KK 2.54mm 2 pin
J81MCP4728 breakoutDAC, pin order: VCC GND SCL SDA LDAC READY A B C D
J91CV_INMolex KK 2.54mm 5 pin
POWER11POWERIDC 10 pin
R1 R2 R3 R4 R11 R12 R15 R1681k*
R5 R8 R13 R14422k
R9 R10 R17 R18433k
R25 R26 R27 R29 R30 R31 R32 R338220
R28 R34 R35 R36 R37510k
R6 R7 R19 R20 R21 R22 R23 R2481k
SW1 SW2 SW33SW_PushTactile Push Button 6x6x15mm
SW41Rotary_Encoder_SwitchRotary encoder with switch, 20mm
U11TL074
U2174LS14
U316N137
U41L7805
Pin sockets, 2.54mmNeeded for the Arduino, OLED display, ADC and DAC
16Jack sockets 6.35mm
3DIN MIDI sockets

* match in pairs to get more accurate ADC readings

Installation and calibration

Clone the repository and open up the src/main folder in the Arduino IDE or whatever you use for compiling. You need to install the libraries mentioned below into you Arduino library folder. The ADC and the DAC need calibration to get proper results.

ADC calibration

Set CALIBRATE_CV_IN variable in main file to 1. Apply a fixed, known voltage to CV1 input, eg. 5.000V. On USB serial console (9600 baud) you get the actual reading from the ADC. Calculate the correction factor FIXED VOLTAGE / ACTUAL VOLTAGE, eg. 5.000 / 4.9884 = 1.0023. Enter the value in the CV_IN_CORRECTION array in the top lines of main.ino. Repeat this procedure for all CV inputs. In the end it should look something like this:

text
float CV_IN_CORRECTION[4] = {0.9995f, 0.9956f, 1.0013f, 1.0009f};

Notice the trailing f to tell the compiler that these are float values. Don't forget to set CALIBRATE_CV_IN back to 0.

DAC calibration

Make sure to calibrate the ADC first. Set CALIBRATE_CV_OUT variable in main file to 1. Plug in patch cables from all four CV inputs to the CV outputs. Calibration is done automatically and stored in a look-up table. Set CALIBRATE_CV_OUT back to 0. This step is only needed once, from now on calibration values are loaded from EEPROM on start up.

Development

Source code is in src/main. If you want to develop your own module just copy the files example_module.h and example_module.ino and rename all functions and variables that are globally available. Include your header file in the main.ino file and add your entry to the main menu. Take a look at the already existing modules on how it works in general. If you created a nice module please file a pull request and I would be happy to merge it.

Libraries

https://github.com/adafruit/Adafruit_MCP4728

https://github.com/adafruit/Adafruit_ADS1X15

https://github.com/olikraus/u8g2

https://github.com/FortySevenEffects/arduino_midi_library

https://github.com/neu-rah/ArduinoMenu

https://github.com/thomasfredericks/Bounce2

https://github.com/mathertel/RotaryEncoder

https://github.com/ivanseidel/LinkedList

References

https://www.lookmumnocomputer.com/modular

https://www.ti.com/lit/ds/symlink/ads1115.pdf

http://ww1.microchip.com/downloads/en/devicedoc/22187e.pdf

https://github.com/DylanMeeus/GoAudio

License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

Parts

131
QtyValueFootprintReferences
21LOGOPolykit:blitz-silk-supertinyG***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G*** +5
171N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D10, D11, D12, D13, D14, D15, D16, D19 +1
14LOGOPolykit:star-silk-tinyG***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***
81kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR6, R7, R19, R20, R21, R22, R23, R24
81k*Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R11, R12, R15, R16
8220Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR25, R26, R27, R29, R30, R31, R32, R33
7100nCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C2, C3, C4, C6, C7, C8
510kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR28, R34, R35, R36, R37
422kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5, R8, R13, R14
433kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9, R10, R17, R18
310uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC5, C9, C10
3SW_PushButton_Switch_THT:SW_PUSH_6mm_H13mmSW1, SW2, SW3
2Ferrite_BeadResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalFB1, FB2
2LEDLED_THT:LED_D5.0mmD17, D18
2LOGOPolykit:logo-silk-2.5cmG***, G***
2LOGOPolykit:bärG***, G***
16N137Package_DIP:DIP-8_W7.62mm_Socket_LongPadsU3
174LS14Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU2
1A7 A6Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ12
1ADS1115 breakoutConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ5
1Arduino Nano EveryModule:Arduino_NanoA1
1CV_INConnector_Molex:Molex_KK-254_AE-6410-05A_1x05_P2.54mm_VerticalJ9
1CV_OUTConnector_Molex:Molex_KK-254_AE-6410-05A_1x05_P2.54mm_VerticalJ10
1Display I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1GATE_INConnector_Molex:Molex_KK-254_AE-6410-05A_1x05_P2.54mm_VerticalJ3
1GATE_OUTConnector_Molex:Molex_KK-254_AE-6410-05A_1x05_P2.54mm_VerticalJ4
1I2CConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ11
1L7805Package_TO_SOT_THT:TO-220-3_VerticalU4
1LOGOPolykit:star-silkG***
1LOGOPolykit:blitz-silk-smallG***
1MCP4728 breakoutConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ8
1MIDI_INConnector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_VerticalJ1
1MIDI_OUTConnector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_VerticalJ7
1MIDI_THRUConnector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_VerticalJ6
1POWERConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalPOWER1
1Rotary_Encoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW4
1TL074Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU1

Questions

How big is the Kosmo multitool PCB?

It measures 60 × 150 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Kosmo multitool use?

131 parts, built around the 74LS14PC and L7805. 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 Kosmo multitool KiCad files?

From the polykit/kosmo-multitool repository on GitHub, at the commit this page was made from: the board is kosmo-multitool.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Kosmo multitool design in my own project?

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

Similar boards

  • 2 layers183.9 × 111.3 mmC1581, the printed circuit board in 3D

    C1581

    sjgray/C1581

    Commodore 1581 Disk Drive

    80 parts20
  • 2 layers99.7 × 149.9 mmBeta128 r0.3, the printed circuit board in 3D

    Beta128 r0.3

    alvaroalea/betadisk-clone

    Clone of the Beta 128 Disk Interface for ZX Spectrum

    89 parts7
  • 2 layersGB2, the printed circuit board in 3D

    GB2

    Andy18650/GB2-2025-team4

    GitHub repository for Cambridge University Engineering part IIA project GB2: Electrical Power, Team 4

    167 partsGPL-3.0
  • 4 layers103.7 × 78.5 mmSnarkBarker, the printed circuit board in 3D

    SnarkBarker

    computerguy096/snark-barker-mini

    A miniaturized version of the Snark Barker

    180 partsCC-BY-SA-4.0
  • 2 layers175 × 47 mmPCB MIDI THRU, the printed circuit board in 3D

    PCB MIDI THRU

    twinturbo/PCB-MIDI-THRU

    61 parts
  • 2 layers246.3 × 138.9 mmTester, the printed circuit board in 3D

    Tester

    hprd/z80-fpga-drop-in-replacement

    UT Austin Fall 2025-Spring 2026 Senior Design Project for developing a Zilog Z80 CPU drop-in replacement using an FPGA.

    103 parts1
  • 2 layers231.1 × 106.7 mmSnark barker, the printed circuit board in 3D

    Snark barker

    schlae/snark-barker

    A 100% compatible replica of the famed SB 1.0 sound card

    199 parts687
  • 2 layers304.8 × 165.1 mmComix-35, the printed circuit board in 3D

    Comix-35

    schlae/comix-35

    The COMIX-35 is an improved clone of the COMX-35 1802 home computer

    173 parts138