Skip to the content
2 layers171.5 × 99.1 mmOpenVocakey, the printed circuit board in 3D

An open-source ESP32-based vocal synthesis keyboard

Size
171.5 × 99.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
32
Pads
114
Tracks, vias
187, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Apr 2026
Updated
22 May 2026

Overview

OpenVocakey is an open-source printed circuit board by Milk-Cool, from the Milk-Cool/OpenVocakey repository on GitHub, published under the MIT licence. It is a 2-layer board of 171.5 × 99.1 mm with 19 parts on 32 nets, routed with 187 tracks and 0 vias.

Its parts include 13 switches and 6 connectors.

README

README.md

OpenVocakey

An open-source ESP32-based vocal synthesis keyboard

Assembled keyboard

What is this?

This is exactly what it sounds like -- a DIY open-source keyboard capable of producing human-like speech in the form of singing. Yes, just like VOCALOID -- except it is live, so it would be closer to Pocket Miku or the VOCALOID Keytar.

What is this based on?

It uses espeak-ng at its core, with the wrapper being BackgroundAudio and the wrapper wrapper being tts.cpp. This means that the voices are actually very customizable! You can use formant settings to adjust the voice to your liking and then upload it to the device.

How do I use it?

You can buy a Cardputer if you wanna check the project out, or make a keyboard of your own with the provided gerber and KiCad files. Then, you can upload songs and files using the online tool (works best with Chromium-based browsers).

Song format

A song is just a text file containing Japanese characters (hiragana or katakana but NOT kanji), with each syllable on its own line, for example:

text
き
ら
き
ら
ひ
か
る

You can also add ending syllables after a base syllable, separated by a comma (will not be stretched):

text
こ,い

Note: you can input more than one syllable on one line, but then the vowel stretch won't work properly.

Voice format

This is just an espeak-ng voice, but without the pitch and language fields (those are added automatically). See the documentation for espeak-ng for specific instructions on how to create a voice.

Assembling the board

If you decided to make your own keyboard, first of all, you'd have to order a two-layer PCB. This is because one of the traces (yes, just one!) is on the other side of the PCB. Then, once it arrives, you have to solder MX-Cherry style keyboard switches into the holes on the bottom of the board (and add keycaps to your liking) and solder on female 2.54mm headers everywhere else. Then, you can insert a 30-pin ESP32-WROOM board into the double headers (with the USB port facing outwards), an i2c SSD1306 display into the middle headers (facing inwards) and a MAX98357a i2s audio amplifier into the remaining headers (facing outwards; don't forget to connect a speaker!!). Also don't forget to solder on the 10K resistors for pull-up below the ESP32. Then you can print out the case (case/), slide the board inside and screw it down on the sides with M6x20 bolts. Then you'd have to upload the firmware to the ESP32 and you're done!!

PCB

Schematic

Note: see bom.csv for the Bill of Materials.

Navigating the menus

You can press BOOT/G0 on your board to enter the menu. From there, you can press the two leftmost white buttons to move left or right, and the rightmost two white buttons for cancelling and confirming your actions (e. g. entering a submenu and then confirming the volume change using the rightmost button). You can also press G0 again to leave the menu.

Go on, play around with the menus and see what you can customize!!

Note: most settings are discarded upon reboot.

Using the website

Website screenshot

You can use the online tool to manage the files on your OpenVocakey. First, click "Connect" in the corner and select your board. Then, you can download the already existing files by clicking on them, or upload new files by first selecting the file, then giving it a name and then clicking "upload".

Note: that WILL overwrite the file! Be careful.

Why does this exist?

I was always fascinated by vocaloids and the two aforementioned products in paticular, hence I decided to make this. Those can be hard to get and rather unaffordable, especially in non-first-world countries, therefore I think people might find this useful.

Parts

19
QtyValueFootprintReferences
13SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13
3Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3, J5, J6
2Conn_01x15_SocketConnector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_VerticalJ1, J2
1Conn_01x07_SocketConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ4

Similar boards

  • 2 layers43.9 × 27.7 mmTcd1304-4v, the printed circuit board in 3D

    Tcd1304-4v

    OpnTec/open-spectrometer-hardware

    Open source VIS spectrometer

    19 parts1.5k
  • 2 layers50 × 60 mmDebate Device, the printed circuit board in 3D

    Debate Device

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    19 parts915
  • 2 layers102.9 × 96.7 mmISA adapter, the printed circuit board in 3D

    ISA adapter

    polpo/picogus

    Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support

    19 parts805
  • 2 layers60 × 39 mmPs2usb, the printed circuit board in 3D

    Ps2usb

    rasteri/HIDman

    Adapting USB devices to work on old computers

    19 parts432
  • 2 layers70.1 × 43.2 mmIaq device, the printed circuit board in 3D

    Iaq device

    nkitanov/iaq_board

    IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality

    19 parts396
  • 2 layers80 × 80 mmGB BRK CPU G1, the printed circuit board in 3D

    GB BRK CPU G1

    Gekkio/gb-hardware

    Game Boy -related custom hardware by gekkio

    19 parts379CC-BY-4.0
  • 2 layers25.4 × 25.4 mmIna169, the printed circuit board in 3D

    Ina169

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    19 parts282
  • 2 layers58.4 × 28.6 mmNew rele, the printed circuit board in 3D

    New rele

    zmaker/arduino_cookbook

    gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube

    19 parts269

Questions

How big is the OpenVocakey PCB?

It measures 171.5 × 99.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the OpenVocakey use?

19 parts. 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 OpenVocakey KiCad files?

From the Milk-Cool/OpenVocakey repository on GitHub, at the commit this page was made from: the board is kicad/board/board.kicad_pcb and its schematic kicad/board/board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the OpenVocakey design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).