
Type d
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

Chordial is a small, portable electronic instrument that lets you play musical chords with just a turn and a press of a knob.
Chordial is an open-source printed circuit board by ye8um, from the ye8um/Chordial repository on GitHub. It is a 2-layer board of 94 × 74 mm with 14 parts on 31 nets, routed with 176 tracks and 7 vias.
Its parts include 3 connectors, 3 switches, 2 capacitors and 2 ICs. It belongs with the ESP32 boards of this library.
Chordial is a small, portable electronic instrument that lets you play musical chords with just a turn and a press of a knob. I wanted to create something that makes playing chords simple and fun, even for someone who doesn't know much about music theory.
Instead of having a full keyboard with dozens of keys, Chordial uses a rotary encoder to choose a chord. Once you've found the chord you want, you can press the knob to hear it play through a built-in speaker.
The whole instrument is designed to fit inside a compact 3D printed enclosure, making it easy to keep on a desk or bring around.
I've always found it interesting how different musical notes can come together to create a completely different sound. However, most musical instruments take quite a bit of practice to learn.
That gave me the idea of making an instrument that could play entire chords without needing to learn complicated finger positions.
I also wanted to challenge myself by designing my own PCB, figuring out how electronic components work together, and creating an enclosure that would make everything feel like one complete product.
Chordial combines my interests in music, electronics, programming, and 3D modeling into one project.
Chordial is controlled using two main inputs: a rotary encoder and a mechanical key.
Turning the rotary encoder scrolls through 24 different chords, including all 12 major chords and all 12 minor chords. The selected chord appears on a small OLED display, along with its notes and playback duration.
Pressing the rotary encoder plays the selected chord through the speaker. The sound is generated by the ESP32 and sent to a MAX98357A amplifier, which drives the speaker.
The mechanical key changes how long the chord plays. There are four duration settings: 0.5 seconds, 1 second, 2 seconds, and 4 seconds.
The goal is to make the controls simple enough that anyone can pick up Chordial and start experimenting with different sounds.
Chordial uses a Seeed Studio XIAO ESP32 S3 as its main microcontroller. It handles the rotary encoder, OLED display, and audio generation.
The display is a 128 × 64 SSD1306 OLED, which shows the current chord and its settings.
For sound, I chose a MAX98357A digital audio amplifier connected to an 8 ohm speaker. This allows the instrument to play multiple notes simultaneously and produce a soft, sustained synth sound.
The controls consist of an EC11 rotary encoder with a built-in push button and a Cherry MX compatible mechanical switch.
Chordial is powered by a rechargeable 3.7 V LiPo battery. It also includes a slide switch for controlling battery power, while the XIAO provides USB C connectivity.
All the electronics are designed to fit onto a custom PCB that I made in KiCad.
I designed the enclosure in Fusion 360 with the goal of making Chordial compact, comfortable, and easy to use.
The top has openings for the OLED, rotary encoder, mechanical key, and speaker grille. I also added the Chordial name and an acoustic guitar engraving to give the instrument a little more personality.
The enclosure consists of separate top and bottom pieces that are secured using screws and nuts. The bottom contains compartments for the battery and speaker.
I also plan to use a custom 3D printed rotary knob so the instrument feels more comfortable to control.
The firmware is written in Arduino C++ for the XIAO ESP32 S3.
It reads the rotary encoder to determine which chord is selected, updates the OLED display, and generates the audio signals needed to play each chord.
Instead of relying on prerecorded audio files, Chordial generates the musical notes directly through code. This means the instrument doesn't need an SD card or stored sound samples.
The firmware currently includes 24 major and minor chords, with four selectable playback durations.
I started by creating the schematic and PCB layout in KiCad. This involved figuring out how to connect the microcontroller, amplifier, display, switches, speaker, and battery.
After finishing the PCB design, I created the enclosure in Fusion 360. I had to consider the placement and height of each component to make sure everything would fit together properly.
The firmware was then developed to control the chord selection, display, and sound generation.
The next part of the project is assembling the electronics, testing the firmware on the physical hardware, and making any adjustments needed.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 100nF | Capacitor_SMD:C_0805_2012Metric | C1 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | Conn_01x02 | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J3 |
| 1 | Conn_01x02_Pin | Connector_Molex:Molex_PicoBlade_53261-0271_1x02-1MP_P1.25mm_Horizontal | J2 |
| 1 | Conn_01x04_Pin | Imported Parts:Display_128x64_096_I2C | J1 |
| 1 | MAX98357A | Package_DFN_QFN:TQFN-16-1EP_3x3mm_P0.5mm_EP1.23x1.23mm | U2 |
| 1 | RotaryEncoder_Switch | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_MountingHoles | SW1 |
| 1 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW2 |
| 1 | SW_SPDT | Button_Switch_SMD:SW_SPDT_Shouhan_MSK12C02 | SW3 |
| 1 | XIAO-ESP32-S3-SMD | Seeed Studio XIAO ESP32S3:XIAO-ESP32-S3-SMD | U1 |
The 10 most common of 14 parts.
It measures 94 × 74 mm and has 2 copper layers, 1.6 mm thick.
14 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.
From the ye8um/Chordial repository on GitHub, at the commit this page was made from: the board is Hardware/Chordial.kicad_pcb and its schematic Hardware/Chordial.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ye8um before reusing the design.

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards


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



Twotoz/C5VRX
Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

