Skip to the content
PCBKitNew board
2 layers147.3 × 108 mmModuleB, the printed circuit board in 3D

Building my own keyboard

Size
147.3 × 108 mm
Copper layers
2
Thickness
1.6 mm
Parts
66
Nets
63
Pads
268
Tracks, vias
402, 9
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
2 Oct 2016
Updated
8 Apr 2019

Overview

ModuleB is an open-source printed circuit board by qwelyt, from the qwelyt/Keyboard repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 147.3 × 108 mm with 66 parts on 63 nets, routed with 402 tracks and 9 vias.

Its parts include 33 switches, 32 diodes and 1 IC. It belongs with the keyboards and input boards of this library.

README

README.md

Keyboard

I'm building my own keyboard. It's as simple as that.

Why? Because I want to. And I've yet to find a keyboard that looks the way I want it to. The solution seems to be to build your own. So that's what I'm doing.

Layout

The layout is a split keyboard with the keys in a matrix. Here's a pic (v2) layout

Why split?

Every keyboard I've tried have always forced you to put your hands inwards, in a / \ way (pretend that's your arms). But I want to be able to keep my arms like | | or even \ /. With a split keyboard where you can move each module to where you want it to be you can achive this. I think this would give you better ergonomics, but we'll see. We might be using the one-module-fits-all approach for more than just cheaper-to-produce reasons. But if you never try, you never know.

Why a linear matrix layout?

As far as I've found, the only reason we use keyboards with slanted columns is because 'it has always been like that'. Like, from the typewriter-era. And then it was for mechanical reasons. But now that we no longer have metal arms that must be physically fit into the layout, we can design it just as we want. And apparently the slanted-columns-layout is bad for you. You stretch your fingers in an un-natural way which puts strain on your limbs and increases the odds of injury. That is just bad. So I'm going for a linear matrix layout because I like my fingers. They should have the best typing experiance they can have.

Raise and Lower?

Do you really use F1 so much that it needs its own dedicated key? I don't. So tucking it away under Raise+1 works well. I think. Also, doing it layered gives you way more keys than you actually have. Take module A. It has 30 keys. 2 of which are layer modifiers. This gives me 28 keys to play with, in three layers. So I actually got 28x3 keys, so thats 84 keys in total. I probably won't use that many, but it is nice to have the possibility. Mainly though, it cuts down on parts used and size, which is a big things given that 3D-printers (or at least mine) can't print super-mega-big things. Credit where it is due: The Planck keyboard has this (https://youtu.be/bEPg8kk84gw) which influenced me to have it as well.

Parts

This build is my first keyboard that I'm building from scratch. I've done a few mods, but never a complete build. To build this I'm using some mechanical switches (Black ALPS) that I 'rescued' from a to-be-thrown Dell AT101. I've got 104 keys from that old keyboard. Most of which still have the click sound. And I have the caps, ofc.

The modules cases is made to be 3D printed. I use a FlashForge Finder to print.

It's NKRO, so there is an 1N4149 diode for every switch.

The controller is an Arduino Micro (https://store.arduino.cc/arduino-micro).

Each module will be it's own keyboard. Meaning, each module will has it's own controller. So you don't need to plug in A to be able to use B and vice versa. This ofc means that, for 2 modules, you need 2 USB ports. One could build a USB hub as well to plug the modules into. Makes for a cleaner setup as you will only need 1 cable going to the computer. Might try building in retractable cables in everything if I take a stab at it, but well see how much of a pain that is.

Log

TodoDoingDone
Create basic working matrix
Create 3D sketches for modules
Create schematics for matrix
Get hands on a 3D printer
Get diods
Print test module
Assemble test module
Code test module
Get real controller board
Refactor
Print module A
Print module B
Assemble A
Assemble B
Code A
Code B
???
Refactor
Profit

Parts

66
QtyValueFootprintReferences
321N4149Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +16
30SW_PushButtons_Switches_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +14
1ARDUINO_MICROarduino_micro_shield:ARDUINO_MICRO_SHIELDU1
1SW_PushButton_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfileSW33
1SW_PushButtons_Switches_Keyboard:SW_Cherry_MX1A_2.00u_Vertical_PCBSW31
1SW_PushButtons_Switches_Keyboard:SW_Cherry_MX1A_2.00u_PCBSW29

Questions

How big is the ModuleB PCB?

It measures 147.3 × 108 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ModuleB use?

66 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 ModuleB KiCad files?

From the qwelyt/Keyboard repository on GitHub, at the commit this page was made from: the board is Design/Schematics/ModuleB/KiCAD/ModuleB.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the ModuleB design in my own project?

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

Similar boards

  • 2 layers126.5 × 83 mmPcb pro controller, the printed circuit board in 3D

    Pcb pro controller

    hackclub/OnBoard

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

    66 parts915
  • 2 layers94.6 × 46.1 mmHeaterMeterPI, the printed circuit board in 3D

    HeaterMeterPI

    CapnBry/HeaterMeter

    HeaterMeter and LinkMeter Arduino BBQ Controller

    66 parts557MIT
  • 2 layers56.9 × 35.2 mmAmoeba tp, the printed circuit board in 3D

    Amoeba tp

    mtl/keyboard-pcbs

    Keyboard PCBs

    66 parts485
  • 2 layers82 × 120 mmSample Numeric Keyboard, the printed circuit board in 3D

    Sample Numeric Keyboard

    famichu/MagLev_Switch_MX

    The 3D printable magnetic levitation contactless switch with the linear output hall effect sensor.

    66 parts467
  • 2 layers136.8 × 98.6 mmHillside, the printed circuit board in 3D

    Hillside

    mmccoyd/hillside

    Family of split ergonomic keyboards with three rows of six or five keys and a generous thumb arc

    66 parts448MIT
  • 2 layers115.7 × 95.7 mmFifi split keeb, the printed circuit board in 3D

    Fifi split keeb

    raychengy/fifi_split_keeb

    Fifi Keyboard 🐶 ⌨️

    66 parts334
  • 2 layers95.2 × 57.2 mmDomesdayDuplicator, the printed circuit board in 3D

    DomesdayDuplicator

    Domesday86/DomesdayDuplicator

    High-speed LaserDisc RF sampler

    66 parts325GPL-3.0
  • 2 layers96.5 × 66 mmBumperDuino, the printed circuit board in 3D

    BumperDuino

    Ardumower/ardumower

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

    66 parts282