building a keyboard from scratch

Post on 12-May-2015

69.884 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Building a keyboardfrom scratch Jesse Vincent

jesse@fsck.comhttp://keyboard.io

@obra / @keyboardioWednesday, July 24, 13

Why?

Wednesday, July 24, 13

My boss stole my keyboard

Wednesday, July 24, 13

WARNING

WARNING

There are no more cat pictures in this talk

Wednesday, July 24, 13

I couldn’t find a keyboard I wanted

Wednesday, July 24, 13

I tried

Wednesday, July 24, 13

So, you want tomake a keyboard?

Wednesday, July 24, 13

Tools you’ll need

Wednesday, July 24, 13

SolderingIron

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

$5+ ($86)

Wednesday, July 24, 13

Wirecutter

$0.99

Wednesday, July 24, 13

Tools you’ll want

Wednesday, July 24, 13

Wirecutter

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

$7

Wednesday, July 24, 13

Solder Sucker

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

Wednesday, July 24, 13

Fine-tipped tweezers

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

$4

Wednesday, July 24, 13

Wire-wrappingtool

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

$13

Wednesday, July 24, 13

Multimeter

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

$20

Wednesday, July 24, 13

Hot Glue Gun

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

$20

Wednesday, July 24, 13

Parts you’ll need

Wednesday, July 24, 13

Keyswitches

Wednesday, July 24, 13

Cherry MXKeyswitches

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

$0.80/ea

Wednesday, July 24, 13

Key Caps

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

$37

Wednesday, July 24, 13

Don’t makeyour own

Wednesday, July 24, 13

Wednesday, July 24, 13

26-30AWGEnamel-insulatedmagnet wire

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

Rosin-coreSolder

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

$6

Wednesday, July 24, 13

Teensy 2.0Microcontroller

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

$16

Wednesday, July 24, 13

ArduinoPro Microis also ok

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

$20

Wednesday, July 24, 13

WARNING

WARNING

There is no more Arduino in this talk

Wednesday, July 24, 13

MiniUSB cable

$0

Wednesday, July 24, 13

Parts you’ll want

Wednesday, July 24, 13

$9

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

26-30AWGKynar-insulatedwire-wrappingwire

Wednesday, July 24, 13

Jumper wires

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

$7

Wednesday, July 24, 13

IN4148Diodes

$12...for 500

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

Parts you’ll make

Wednesday, July 24, 13

The case

Wednesday, July 24, 13

Design your own!

Wednesday, July 24, 13

14mm square holes

Wednesday, July 24, 13

3+ mm apart

Wednesday, July 24, 13

Top plate:1.5 mm thick

Wednesday, July 24, 13

I designed my first keyboards inOmniGraffle

Wednesday, July 24, 13

14mm

14mm3+mm

3+mm

Wednesday, July 24, 13

Prototypewith paper

Wednesday, July 24, 13

Use lasers to cut out the pieces

Wednesday, July 24, 13

Use CAD to model the weirderstuff

Wednesday, July 24, 13

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

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

Wednesday, July 24, 13

What didn’t I mention?

Wednesday, July 24, 13

Printed Circuit Board

Wednesday, July 24, 13

You do know how to design and etch PCBs right?

Wednesday, July 24, 13

Can you teach me?

Wednesday, July 24, 13

Putting it together

Wednesday, July 24, 13

Try the keys & keycaps

Wednesday, July 24, 13

Start Soldering

Wednesday, July 24, 13

Flat pin:Connect Diode

Square pin: Connect wire

Wednesday, July 24, 13

Wire-wrap the keys in each row

Wednesday, July 24, 13

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

Solder the diodes in columns

Wednesday, July 24, 13

Why Diodes?

Wednesday, July 24, 13

Key Ghosting

Wednesday, July 24, 13

Credit: @pdcawleyWednesday, July 24, 13

Credit: @pdcawleyWednesday, July 24, 13

Credit: @pdcawleyWednesday, July 24, 13

Credit: @pdcawleyWednesday, July 24, 13

then trim the terminal wires

Wednesday, July 24, 13

Connect them in parallel

Wednesday, July 24, 13

Connect the black ends to the keys

Wednesday, July 24, 13

Don’t solder the diodes to each other

Wednesday, July 24, 13

You want thewire-wrapping wire

Wednesday, July 24, 13

Solder a wire to each column

Wednesday, July 24, 13

Solder a wire to each row

Wednesday, July 24, 13

Connect those wires to the microcontroller

Wednesday, July 24, 13

Firmware

Wednesday, July 24, 13

Install avr-gcc

pjrc.com/teensy/gcc.html

Wednesday, July 24, 13

InstallTeensyLoader

pjrc.com/teensy/loader.html

Wednesday, July 24, 13

Configure some keyboard firmware

Wednesday, July 24, 13

github.com/humblehacker/keyboard

Wednesday, July 24, 13

% vi config.kspec

Wednesday, July 24, 13

Wednesday, July 24, 13

% make

Wednesday, July 24, 13

Wednesday, July 24, 13

Install your firmware

Wednesday, July 24, 13

Test your keyboard

Wednesday, July 24, 13

(This is why you want a multimeter)

Wednesday, July 24, 13

My experiences

Wednesday, July 24, 13

Mark 1 KeyboardWednesday, July 24, 13

shell from ergodox.org

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 2 Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 3 Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 4Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 5Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 6 Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 7 Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 8Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Mark 9 Keyboard

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

Wednesday, July 24, 13

What have I learned?

Wednesday, July 24, 13

Hardware is not scary

Wednesday, July 24, 13

3D printers are almost there

Wednesday, July 24, 13

Iterating on hardwareisn’t much harder than iterating on software

Wednesday, July 24, 13

Patching hardware is a lot harder

Wednesday, July 24, 13

Patching hardwareis a lot more satisfying

Wednesday, July 24, 13

Keyboards don’t have to suck

Wednesday, July 24, 13

Make one

Wednesday, July 24, 13

...or nine

Wednesday, July 24, 13

What’s next?

Wednesday, July 24, 13

Figuring out a mousing solution

Wednesday, July 24, 13

Learning aboutPCB design

Wednesday, July 24, 13

Learning aboutcontract manufacturing

Wednesday, July 24, 13

Learning how to makea Kickstarter video

Wednesday, July 24, 13

Questions?

Wednesday, July 24, 13

Thanks!

Jesse Vincenthttp://keyboard.io

jesse@fsck.com /@obraWednesday, July 24, 13

top related