building a keyboard from scratch

158
Building a keyboard from scratch Jesse Vincent [email protected] http://keyboard.io @obra / @keyboardio Wednesday, July 24, 13

Upload: jesse-vincent

Post on 12-May-2015

69.888 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Building a keyboard from scratch

Building a keyboardfrom scratch Jesse Vincent

[email protected]://keyboard.io

@obra / @keyboardioWednesday, July 24, 13

Page 2: Building a keyboard from scratch

Why?

Wednesday, July 24, 13

Page 3: Building a keyboard from scratch

My boss stole my keyboard

Wednesday, July 24, 13

Page 4: Building a keyboard from scratch

WARNING

WARNING

There are no more cat pictures in this talk

Wednesday, July 24, 13

Page 5: Building a keyboard from scratch

I couldn’t find a keyboard I wanted

Wednesday, July 24, 13

Page 6: Building a keyboard from scratch

I tried

Wednesday, July 24, 13

Page 7: Building a keyboard from scratch

So, you want tomake a keyboard?

Wednesday, July 24, 13

Page 8: Building a keyboard from scratch

Tools you’ll need

Wednesday, July 24, 13

Page 9: Building a keyboard from scratch

SolderingIron

http://www.amazon.com/dp/B000BRC2XU

$5+ ($86)

Wednesday, July 24, 13

Page 10: Building a keyboard from scratch

Wirecutter

$0.99

Wednesday, July 24, 13

Page 11: Building a keyboard from scratch

Tools you’ll want

Wednesday, July 24, 13

Page 12: Building a keyboard from scratch

Wirecutter

http://www.adafruit.com/products/147

$7

Wednesday, July 24, 13

Page 13: Building a keyboard from scratch

Solder Sucker

http://www.adafruit.com/products/148$5

Wednesday, July 24, 13

Page 14: Building a keyboard from scratch

Fine-tipped tweezers

http://www.adafruit.com/products/422

$4

Wednesday, July 24, 13

Page 15: Building a keyboard from scratch

Wire-wrappingtool

http://www.amazon.com/dp/B006C43VJU

$13

Wednesday, July 24, 13

Page 16: Building a keyboard from scratch

Multimeter

http://www.amazon.com/B000EVYGZA/

$20

Wednesday, July 24, 13

Page 17: Building a keyboard from scratch

Hot Glue Gun

http://www.amazon.com/dp/B0009XTPAO

$20

Wednesday, July 24, 13

Page 18: Building a keyboard from scratch

Parts you’ll need

Wednesday, July 24, 13

Page 19: Building a keyboard from scratch

Keyswitches

Wednesday, July 24, 13

Page 20: Building a keyboard from scratch

Cherry MXKeyswitches

http://www.cherrycorp.com/english/switches/key/mx.htm

$0.80/ea

Wednesday, July 24, 13

Page 21: Building a keyboard from scratch

Key Caps

http://www.wasdkeyboards.com/87-key-cherry-mx-keycap-set.html

$37

Wednesday, July 24, 13

Page 22: Building a keyboard from scratch

Don’t makeyour own

Wednesday, July 24, 13

Page 23: Building a keyboard from scratch

Wednesday, July 24, 13

Page 24: Building a keyboard from scratch

26-30AWGEnamel-insulatedmagnet wire

http://www.amazon.com/dp/B0082CUQEIWednesday, July 24, 13

Page 25: Building a keyboard from scratch

Rosin-coreSolder

http://www.amazon.com/dp/B008DEYEAW

$6

Wednesday, July 24, 13

Page 26: Building a keyboard from scratch

Teensy 2.0Microcontroller

http://www.pjrc.com/store/teensy.html

$16

Wednesday, July 24, 13

Page 27: Building a keyboard from scratch

ArduinoPro Microis also ok

https://www.sparkfun.com/products/11098

$20

Wednesday, July 24, 13

Page 28: Building a keyboard from scratch

WARNING

WARNING

There is no more Arduino in this talk

Wednesday, July 24, 13

Page 29: Building a keyboard from scratch

MiniUSB cable

$0

Wednesday, July 24, 13

Page 30: Building a keyboard from scratch

Parts you’ll want

Wednesday, July 24, 13

Page 31: Building a keyboard from scratch

$9

http://www.amazon.com/dp/B006C4ABR0

26-30AWGKynar-insulatedwire-wrappingwire

Wednesday, July 24, 13

Page 32: Building a keyboard from scratch

Jumper wires

http://www.adafruit.com/products/266

$7

Wednesday, July 24, 13

Page 33: Building a keyboard from scratch

IN4148Diodes

$12...for 500

http://www.digikey.com/product-detail/en/1N4148-T/1N4148DICT-ND/160623Wednesday, July 24, 13

Page 34: Building a keyboard from scratch

Parts you’ll make

Wednesday, July 24, 13

Page 35: Building a keyboard from scratch

The case

Wednesday, July 24, 13

Page 36: Building a keyboard from scratch

Design your own!

Wednesday, July 24, 13

Page 37: Building a keyboard from scratch

14mm square holes

Wednesday, July 24, 13

Page 38: Building a keyboard from scratch

3+ mm apart

Wednesday, July 24, 13

Page 39: Building a keyboard from scratch

Top plate:1.5 mm thick

Wednesday, July 24, 13

Page 40: Building a keyboard from scratch

I designed my first keyboards inOmniGraffle

Wednesday, July 24, 13

Page 41: Building a keyboard from scratch

14mm

14mm3+mm

3+mm

Wednesday, July 24, 13

Page 42: Building a keyboard from scratch

Prototypewith paper

Wednesday, July 24, 13

Page 43: Building a keyboard from scratch

Use lasers to cut out the pieces

Wednesday, July 24, 13

Page 44: Building a keyboard from scratch

Use CAD to model the weirderstuff

Wednesday, July 24, 13

Page 45: Building a keyboard from scratch

openscadmodule key(x,y,rotation) { translate([(x*key_spacing),(y*key_spacing),-0.01]) { rotate(rotation) key_inner(); }}

module key_inner() { union() { translate([0,0,-3.5]) key_support(); cube(size=[keyswitch_x,keyswitch_y,keyswitch_plate_thickness], center=true); }}

module key_support() { difference() {

cube(size=[key_spacing-2,key_spacing-2,6], center=true); interior_bevels(); }}

Wednesday, July 24, 13

Page 46: Building a keyboard from scratch

openscadmodule keyColumn(x,y) { translate([(x*key_spacing),(y*key_spacing),0]) { key(0,0); key(1,0); key(2,0); key(3,0); }}module hand() { rotate([0,0,-9]) keyColumn(0.5,-0.05); rotate([0,0,-13]) keyColumn(0.1,1.4); rotate([0,0,-15]) keyColumn(-0.2,2.7); rotate([0,0,-20]) { keyColumn(-0.2,4); keyColumn(0,5); key(2.2,6); key(3.2,6); } translate([165,24,0]) thumbKeys();}

Wednesday, July 24, 13

Page 47: Building a keyboard from scratch

Wednesday, July 24, 13

Page 48: Building a keyboard from scratch

What didn’t I mention?

Wednesday, July 24, 13

Page 49: Building a keyboard from scratch

Printed Circuit Board

Wednesday, July 24, 13

Page 50: Building a keyboard from scratch

You do know how to design and etch PCBs right?

Wednesday, July 24, 13

Page 51: Building a keyboard from scratch

Can you teach me?

Wednesday, July 24, 13

Page 52: Building a keyboard from scratch

Putting it together

Wednesday, July 24, 13

Page 53: Building a keyboard from scratch

Try the keys & keycaps

Wednesday, July 24, 13

Page 54: Building a keyboard from scratch

Start Soldering

Wednesday, July 24, 13

Page 55: Building a keyboard from scratch

Flat pin:Connect Diode

Square pin: Connect wire

Wednesday, July 24, 13

Page 56: Building a keyboard from scratch

Wire-wrap the keys in each row

Wednesday, July 24, 13

Page 57: Building a keyboard from scratch

http://en.wikipedia.org/wiki/File:Wire_Wrapping.jpgWednesday, July 24, 13

Page 58: Building a keyboard from scratch

Solder the diodes in columns

Wednesday, July 24, 13

Page 59: Building a keyboard from scratch

Why Diodes?

Wednesday, July 24, 13

Page 60: Building a keyboard from scratch

Key Ghosting

Wednesday, July 24, 13

Page 61: Building a keyboard from scratch

Credit: @pdcawleyWednesday, July 24, 13

Page 62: Building a keyboard from scratch

Credit: @pdcawleyWednesday, July 24, 13

Page 63: Building a keyboard from scratch

Credit: @pdcawleyWednesday, July 24, 13

Page 64: Building a keyboard from scratch

Credit: @pdcawleyWednesday, July 24, 13

Page 65: Building a keyboard from scratch

then trim the terminal wires

Wednesday, July 24, 13

Page 66: Building a keyboard from scratch

Connect them in parallel

Wednesday, July 24, 13

Page 67: Building a keyboard from scratch

Connect the black ends to the keys

Wednesday, July 24, 13

Page 68: Building a keyboard from scratch

Don’t solder the diodes to each other

Wednesday, July 24, 13

Page 69: Building a keyboard from scratch

You want thewire-wrapping wire

Wednesday, July 24, 13

Page 70: Building a keyboard from scratch

Solder a wire to each column

Wednesday, July 24, 13

Page 71: Building a keyboard from scratch

Solder a wire to each row

Wednesday, July 24, 13

Page 72: Building a keyboard from scratch

Connect those wires to the microcontroller

Wednesday, July 24, 13

Page 73: Building a keyboard from scratch

Firmware

Wednesday, July 24, 13

Page 74: Building a keyboard from scratch

Install avr-gcc

pjrc.com/teensy/gcc.html

Wednesday, July 24, 13

Page 75: Building a keyboard from scratch

InstallTeensyLoader

pjrc.com/teensy/loader.html

Wednesday, July 24, 13

Page 76: Building a keyboard from scratch

Configure some keyboard firmware

Wednesday, July 24, 13

Page 77: Building a keyboard from scratch

github.com/humblehacker/keyboard

Wednesday, July 24, 13

Page 78: Building a keyboard from scratch

% vi config.kspec

Wednesday, July 24, 13

Page 79: Building a keyboard from scratch

Wednesday, July 24, 13

Page 80: Building a keyboard from scratch

% make

Wednesday, July 24, 13

Page 81: Building a keyboard from scratch

Wednesday, July 24, 13

Page 82: Building a keyboard from scratch

Install your firmware

Wednesday, July 24, 13

Page 83: Building a keyboard from scratch

Test your keyboard

Wednesday, July 24, 13

Page 84: Building a keyboard from scratch

(This is why you want a multimeter)

Wednesday, July 24, 13

Page 85: Building a keyboard from scratch

My experiences

Wednesday, July 24, 13

Page 86: Building a keyboard from scratch

Mark 1 KeyboardWednesday, July 24, 13

Page 87: Building a keyboard from scratch

shell from ergodox.org

Wednesday, July 24, 13

Page 88: Building a keyboard from scratch

Wednesday, July 24, 13

Page 89: Building a keyboard from scratch

Wednesday, July 24, 13

Page 90: Building a keyboard from scratch

Wednesday, July 24, 13

Page 91: Building a keyboard from scratch

Wednesday, July 24, 13

Page 92: Building a keyboard from scratch

Wednesday, July 24, 13

Page 93: Building a keyboard from scratch

Wednesday, July 24, 13

Page 94: Building a keyboard from scratch

Mark 2 Keyboard

Wednesday, July 24, 13

Page 95: Building a keyboard from scratch

Wednesday, July 24, 13

Page 96: Building a keyboard from scratch

Wednesday, July 24, 13

Page 97: Building a keyboard from scratch

Wednesday, July 24, 13

Page 98: Building a keyboard from scratch

Wednesday, July 24, 13

Page 99: Building a keyboard from scratch

Wednesday, July 24, 13

Page 100: Building a keyboard from scratch

Wednesday, July 24, 13

Page 101: Building a keyboard from scratch

Wednesday, July 24, 13

Page 102: Building a keyboard from scratch

Mark 3 Keyboard

Wednesday, July 24, 13

Page 103: Building a keyboard from scratch

Wednesday, July 24, 13

Page 104: Building a keyboard from scratch

Wednesday, July 24, 13

Page 105: Building a keyboard from scratch

Wednesday, July 24, 13

Page 106: Building a keyboard from scratch

Wednesday, July 24, 13

Page 107: Building a keyboard from scratch

Wednesday, July 24, 13

Page 108: Building a keyboard from scratch

Mark 4Keyboard

Wednesday, July 24, 13

Page 109: Building a keyboard from scratch

Wednesday, July 24, 13

Page 110: Building a keyboard from scratch

Wednesday, July 24, 13

Page 111: Building a keyboard from scratch

Wednesday, July 24, 13

Page 112: Building a keyboard from scratch

Wednesday, July 24, 13

Page 113: Building a keyboard from scratch

Wednesday, July 24, 13

Page 114: Building a keyboard from scratch

Wednesday, July 24, 13

Page 115: Building a keyboard from scratch

Wednesday, July 24, 13

Page 116: Building a keyboard from scratch

Wednesday, July 24, 13

Page 117: Building a keyboard from scratch

Mark 5Keyboard

Wednesday, July 24, 13

Page 118: Building a keyboard from scratch

Wednesday, July 24, 13

Page 119: Building a keyboard from scratch

Wednesday, July 24, 13

Page 120: Building a keyboard from scratch

Wednesday, July 24, 13

Page 121: Building a keyboard from scratch

Wednesday, July 24, 13

Page 122: Building a keyboard from scratch

Wednesday, July 24, 13

Page 123: Building a keyboard from scratch

Mark 6 Keyboard

Wednesday, July 24, 13

Page 124: Building a keyboard from scratch

Wednesday, July 24, 13

Page 125: Building a keyboard from scratch

Wednesday, July 24, 13

Page 126: Building a keyboard from scratch

Wednesday, July 24, 13

Page 127: Building a keyboard from scratch

Wednesday, July 24, 13

Page 128: Building a keyboard from scratch

Wednesday, July 24, 13

Page 129: Building a keyboard from scratch

Wednesday, July 24, 13

Page 130: Building a keyboard from scratch

Wednesday, July 24, 13

Page 131: Building a keyboard from scratch

Wednesday, July 24, 13

Page 132: Building a keyboard from scratch

Wednesday, July 24, 13

Page 133: Building a keyboard from scratch

Wednesday, July 24, 13

Page 134: Building a keyboard from scratch

Mark 7 Keyboard

Wednesday, July 24, 13

Page 135: Building a keyboard from scratch

Wednesday, July 24, 13

Page 136: Building a keyboard from scratch

Mark 8Keyboard

Wednesday, July 24, 13

Page 137: Building a keyboard from scratch

Wednesday, July 24, 13

Page 138: Building a keyboard from scratch

Mark 9 Keyboard

Wednesday, July 24, 13

Page 139: Building a keyboard from scratch

Wednesday, July 24, 13

Page 140: Building a keyboard from scratch

Wednesday, July 24, 13

Page 141: Building a keyboard from scratch

Wednesday, July 24, 13

Page 142: Building a keyboard from scratch

Wednesday, July 24, 13

Page 143: Building a keyboard from scratch

What have I learned?

Wednesday, July 24, 13

Page 144: Building a keyboard from scratch

Hardware is not scary

Wednesday, July 24, 13

Page 145: Building a keyboard from scratch

3D printers are almost there

Wednesday, July 24, 13

Page 146: Building a keyboard from scratch

Iterating on hardwareisn’t much harder than iterating on software

Wednesday, July 24, 13

Page 147: Building a keyboard from scratch

Patching hardware is a lot harder

Wednesday, July 24, 13

Page 148: Building a keyboard from scratch

Patching hardwareis a lot more satisfying

Wednesday, July 24, 13

Page 149: Building a keyboard from scratch

Keyboards don’t have to suck

Wednesday, July 24, 13

Page 150: Building a keyboard from scratch

Make one

Wednesday, July 24, 13

Page 151: Building a keyboard from scratch

...or nine

Wednesday, July 24, 13

Page 152: Building a keyboard from scratch

What’s next?

Wednesday, July 24, 13

Page 153: Building a keyboard from scratch

Figuring out a mousing solution

Wednesday, July 24, 13

Page 154: Building a keyboard from scratch

Learning aboutPCB design

Wednesday, July 24, 13

Page 155: Building a keyboard from scratch

Learning aboutcontract manufacturing

Wednesday, July 24, 13

Page 156: Building a keyboard from scratch

Learning how to makea Kickstarter video

Wednesday, July 24, 13

Page 157: Building a keyboard from scratch

Questions?

Wednesday, July 24, 13

Page 158: Building a keyboard from scratch

Thanks!

Jesse Vincenthttp://keyboard.io

[email protected] /@obraWednesday, July 24, 13