

Mochaboard
A dvorak 60% keyboard with linear switches for when you've had one too many mochas and need to type as fast as possible.
- Size
- 328.7 × 122.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 128
- Nets
- 101
- Pads
- 487
- Tracks, vias
- 562, 4
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 3 Jul 2026
- Updated
- 6 Jul 2026
Overview
Mochaboard is an open-source printed circuit board by OneJame, from the OneJame/Mochaboard repository on GitHub. It is a 2-layer board of 328.7 × 122.3 mm with 128 parts on 101 nets, routed with 562 tracks and 4 vias.
Its parts include 66 switches and 61 diodes. It belongs with the keyboards and input boards and the RP2040 boards of this library.
README
README.mdMochaboard
A keyboard. Just a keyboard...
I started designing the 'Mochaboard' (named after the best caffieneted drink) because I feel most keyboards now are full of unnescary features and don't achieve what a good keyboard is - allow for extremely fast typing. The mochaboard is purely a keyboard, nothing else. No screens, no knobs, just keys.
Project is extremely simple but sometimes it's the simplest things in life that just work... and that's what I'm looking for in a keyboard, something that works.
"The design of the keyboard was perfected like 20 years ago" - Some random person who goes to the same hackerspace as me, 2026
Now to go drink a mocha
Schematic!
The schematic is quite simple with just a key matrix and the Pi Pico. This is good, simple is good.
PCB!
The PCB is also simple with a very basic layout and a small silk-screen coffee cup. Sometimes you just have to purely focus on one feature (typing) and ignore or entirely leave out any bells and whistles.
Case!
The case is simple. It is set up for sandwich mounting because of the simplicity of sandwich mounting. It has holes for all the keys, one for the Pico and and last one to show off the silkscreen.
firmware...
Firmware is probably my second-to-least favourite thing in the world, because of how complicated it is. Because of my smol brain I did enlist the help of some AI to assist in making the firmware. I attempted to make the QMK firmware as simple as possible and include all comments from the AI so if I do realise I need to change something I could atleast be looking in the right spot. It's all a learning experience I guess, maybe one day I'll enjoy doing this, just definitely not today
BOM
| Reference | Qty | Value | DNP | Exclude from BOM | Exclude from Board | Footprint | Datasheet |
|---|---|---|---|---|---|---|---|
| A1 | 1 | RaspberryPi_Pico | Module:RaspberryPi_Pico_Common_THT | https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf | |||
| D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,D21,D22,D23,D24,D25,D26,D27,D28,D29,D30,D31,D32,D33,D34,D35,D36,D37,D38,D39,D40,D41,D42,D43,D44,D45,D46,D47,D48,D49,D50,D51,D52,D53,D54,D55,D56,D57,D58,D59,D60,D61 | 61 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | https://assets.nexperia.com/documents/data-sheet/1N4148_1N4448.pdf | |||
| S1 | 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_P_2u | ||||
| S2,S3 | 2 | MX_stab | PCM_marbastlib-mx:STAB_MX_2.25u | ||||
| S4 | 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_2.75u | ||||
| S5 | 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_P_6.25u | ||||
| SW1,SW2,SW3,SW4,SW5,SW6,SW7,SW8,SW9,SW10,SW11,SW12,SW13,SW14,SW15,SW16,SW17,SW18,SW19,SW20,SW21,SW22,SW23,SW24,SW25,SW26,SW27,SW28,SW29,SW30,SW31,SW32,SW33,SW34,SW35,SW36,SW37,SW38,SW39,SW40,SW41,SW42,SW43,SW44,SW45,SW46,SW47,SW48,SW49,SW50,SW51,SW52,SW53,SW54,SW55,SW56,SW57,SW58,SW59,SW60,SW61 | 61 | SW_Push | PCM_marbastlib-mx:SW_MX_1u |
Parts
128| Qty | Value | Footprint | References |
|---|---|---|---|
| 61 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +45 |
| 61 | SW_Push | PCM_marbastlib-mx:SW_MX_1u | SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +45 |
| 2 | MX_stab | PCM_marbastlib-mx:STAB_MX_2.25u | S2, S3 |
| 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_P_2u | S1 |
| 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_P_6.25u | S5 |
| 1 | MX_stab | PCM_marbastlib-mx:STAB_MX_2.75u | S4 |
| 1 | RaspberryPi_Pico | Module:RaspberryPi_Pico_Common_THT | A1 |
Questions
How big is the Mochaboard PCB?
It measures 328.7 × 122.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Mochaboard use?
128 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 Mochaboard KiCad files?
From the OneJame/Mochaboard repository on GitHub, at the commit this page was made from: the board is Source/Mochaboard.kicad_pcb and its schematic Source/Mochaboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Mochaboard design in my own project?
Its repository states no licence, so its author keeps all rights: ask OneJame before reusing the design.
Similar boards
- 2 layers98.4 × 190.5 mm

- 2 layers39.6 × 99.1 mm

ESP32-Eurorack Audio
ctag-fh-kiel/ctag-tbd
CTAG TBD >>to be determined<< an extendible open source Eurorack sound module
128 parts260 - 2 layers165 × 103.8 mm

Output pcb
QuinnFreedman/modular
A collection of free & open source DIY synthesizer module designs for Eurorack
128 parts116 - 2 layers141.4 × 115.9 mm

- 2 layers97.2 × 58.9 mm

- 2 layers264 × 141.2 mm

Korris
yanghu/unicorne
A one-piece 40% ortho keyboard design inspired by crkbd, Kyria and Ferris.
128 parts63MIT - 2 layers86 × 86 mm

Production
kerikun11/IR-Station
Infrared Remote Controller with ESP8266 WiFi-module. You can control your home appliances with your smartphone or laptop.
128 parts54MIT - 2 layers149 × 104 mm
