# Notes on making a keyboard Instructions for making a [60% keyboard](http://deskthority.net/wiki/60%25) with an abbreviated [navigation cluster](http://deskthority.net/wiki/Navigation_cluster). ## Parts & Tools * A __keycap__ is the part of the key that the user touches. It is non-mechanical, it is just a piece of plastic. It sits on top of a __switch__. * A __switch__ is the electro-mechanical component that, when compressed, makes an electronic connection. * Switches are wired to a __controller__, which aggregates keypress info and tells the target device (e.g. Macbook Pro) what to do over USB. * Switches sit on either a __PCB__ or a piece of metal. * The __PCB__ or piece of metal sits inside a __case__. * __Female USB connector__ * [1n4148 diodes](http://www.radioshack.com/silicon-switching-diodes-50-pack/2761620.html#.VQbMX2TF875), one per switch * 22 AWG solid core __wire__ for connecting things * __Wire cutters__ * __Soldering iron__ and __solder__ ## Purchase list [104-Key Cherry MX Keycap Set](http://www.wasdkeyboards.com/index.php/104-key-cherry-mx-keycap-set.html) [Cherry MX Black switches](http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=1031) and [spec sheet](http://cherrycorp.com/product/mx-series/) [Stabilizer clips](http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=317), two for each stabilized key. Stabilizer springs, one for each stabilized key. [For 2x keys](http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=314) and [for the spacebar](http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=315)). [Stabilizer inserts](http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=316), two for each stabilized key. [Teensy 3.1 controller](https://www.sparkfun.com/products/12646) [1n4148 diodes](http://www.radioshack.com/silicon-switching-diodes-50-pack/2761620.html#.VQbMX2TF875), one for each switch. [Hook-up wire](http://www.adafruit.com/product/1311) [Soldering iron](https://www.sparkfun.com/products/9507) [Solder](http://www.radioshack.com/high-tech-rosin-core-silver-bearing-solder-1-5-oz-/6400013.html#start=1&q=solder&sz=12&srule=Best+Sellers) [Soldering vaccuum](https://www.sparkfun.com/products/13203) for mistakes. [Female USB connector](http://www.mouser.com/Search/ProductDetail.aspx?R=MUSBB551042virtualkey52350000virtualkey523-MUSBB551042)? ## Details notes on parts ### Keycaps and Switches Keycaps physically interface with its underlying switch at the [keycap mount](http://deskthority.net/wiki/Keycap_mount). Only keycaps and switches with compatible keycap mounts can be used together. #### Keycap sizing from "custom" Cherry MX Keycap set in purchase list 13x1 (` to =) + 2 (backspace) = 15 1.5x1 (tab) + 12x1 (q to ]) + 1.5x1 (\) 1.75x1 (caps lock) + 11x1 (a to ') + 2.25 (enter) 2.25x1 (shift) + 10x1 (z to /) + 2.75x1 (shift) 1.25x3 (fn to alt) + 6.25 (space) + 1.25x4 (alt to ctrl) ### Microcontroller [The Teensy 2.0](https://www.pjrc.com/store/teensy.html) is a USB-based microcontroller commonly used in the mechanical keyboard community. [Pin layout for various Teensy models](http://www.pjrc.com/teensy/pinout.html). The [Signal Charts section here](https://raw.githubusercontent.com/tmk/tmk_keyboard/master/keyboard/hhkb/doc/HHKB.txt) hints at the controller's interpretation of a wired keyboard matrix to deduce which key is being pressed. [tmk_keyboard](https://github.com/tmk/tmk_keyboard) - keyboard controller firmware for Atmel AVR USB family. [How to build your very own keyboard firmware](http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html) lays out how to use TMK with Teensy. ### Case [Laser Cutting Acrylic](http://nyclasercut.com/materials/laser-cutting-plastic/laser-cutting-acrylic/) in NYC [LaserMaster seems cheap](http://www.lasermaster.co.uk/) The cutout area should be .551" squared for each key with 0.19678572" space in between ## External Resources matt3o posted verbosely about his process making a keyboard. He writes [high-level about the component parts](http://deskthority.net/workshop-f7/building-a-custom-keyboard-from-the-ground-up-t5761.html#p110127), [shared his finalized layout (in DWG format)](http://deskthority.net/workshop-f7/building-a-custom-keyboard-from-the-ground-up-t5761-90.html#p113420), [placing switches and wiring the matrix](http://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html#p116703), [wiring the controller](http://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html#p116902). [Deskthority wiki](http://deskthority.net/wiki/Main_Page) [Build your very own PC keyboard, Matteo Spinelli](http://cubiq.org/build-your-very-own-pc-keyboard) - high-level introduction to components. [Reddit So... I want to make my own keyboard](http://www.reddit.com/r/MechanicalKeyboards/comments/2iqlf1/so_i_want_to_make_my_own_mechanical_keyboard_yes/) - Reddit article with link drops [r/MechanicalKeyboards' overwhelming link drop](http://www.reddit.com/r/MechanicalKeyboards/wiki/mechanical_keyboard_overviews) ## Build Instructions Find a workspace. Need newspaper for a surface. Design the top plate. What tool should we design with? Illustrator, AutoCAD. We need to get the schematic for the Cherry MX switches to figure out what shape of hole to cut into the plates. We also need to take into account the size of the keycaps. Lars has a laser cutter at his work that accepts SVGs. Get the top plate cut. What material should we use? Acrylic? Where should we print it? http://nyclasercut.com/ ? Design the case Where should we get the case made? We need to make sure to cover the inner bottom of the case with non-conductive material. Get the case cut How do we attach the switches to the top plate? Follow this step by step re: diodes and wires http://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html [How a matrix works and why were using diodes](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) Bend the diodes en masse Solder the diodes to the switches in a matrix fashion Firmware Read this: http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html What do we need to do to hasu's code? ### Extra links [Building a custom Phantom keyboard](https://www.youtube.com/watch?v=gdLAdci6p-w) [Attaching a keycap with stabilizer inserts to the stabilizer spring at 11:10](https://www.youtube.com/watch?v=NADlUip6lMY) Edit DWG files with [Draftsight](https://www.3ds.com/products-services/draftsight-cad-software/) [Threads Of Interest](http://deskthority.net/workshop-f7/workshop-threads-of-interest-t7192.html) [Custom Waterjet vendor](http://www.fedtech.com/resources/compare.html) - seems too inaccurate of a process though. Maybe a company like this I can design stuff and make them make it https://www.rpproto.com/ I should just draw a keyboad in Sketch Up and then send it to proto labs https://www.rpproto.com/get-a-quote/ I'll wait to hear back about others experiences because I have no idea where to start with getting a plastic mold made http://deskthority.net/keyboards-f2/making-a-custom-keyboard-case-out-of-plastic-t11278.html Maybe these dudes - http://www.toollessplasticenclosures.com/ Manufacturers that might be able to help: Papp Plastics Order a piece of plastic Mcmaster-carr pastics car and go to a waterjet shop machine shop