SlideShare una empresa de Scribd logo
1 de 158
Descargar para leer sin conexión
Building a
keyboard
from
scratch Jesse Vincent
jesse@fsck.com
http://keyboard.io
@obra / @keyboardio
Wednesday, 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 to
make a keyboard?
Wednesday, July 24, 13
Tools you’ll need
Wednesday, July 24, 13
Soldering
Iron
http://www.amazon.com/dp/B000BRC2XU
$5+ ($86)
Wednesday, July 24, 13
Wire
cutter
$0.99
Wednesday, July 24, 13
Tools you’ll want
Wednesday, July 24, 13
Wire
cutter
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-wrapping
tool
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 MX
Keyswitches
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 make
your own
Wednesday, July 24, 13
Wednesday, July 24, 13
26-30AWG
Enamel-insulated
magnet wire
http://www.amazon.com/dp/B0082CUQEI
Wednesday, July 24, 13
Rosin-core
Solder
http://www.amazon.com/dp/B008DEYEAW
$6
Wednesday, July 24, 13
Teensy 2.0
Microcontroller
http://www.pjrc.com/store/teensy.html
$16
Wednesday, July 24, 13
Arduino
Pro Micro
is 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-30AWG
Kynar-insulated
wire-wrapping
wire
Wednesday, July 24, 13
Jumper wires
http://www.adafruit.com/products/266
$7
Wednesday, July 24, 13
IN4148
Diodes
$12...for 500
http://www.digikey.com/product-detail/en/1N4148-T/1N4148DICT-ND/160623
Wednesday, 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 in
OmniGraffle
Wednesday, July 24, 13
14mm
14mm
3+mm
3+mm
Wednesday, July 24, 13
Prototype
with paper
Wednesday, July 24, 13
Use lasers
to cut out
the pieces
Wednesday, July 24, 13
Use CAD to
model the
weirder
stuff
Wednesday, July 24, 13
openscad
module 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.jpg
Wednesday, 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: @pdcawley
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, July 24, 13
Credit: @pdcawley
Wednesday, 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 the
wire-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
Install
Teensy
Loader
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 Keyboard
Wednesday, 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 4
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
Mark 5
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 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 8
Keyboard
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 hardware
isn’t much harder than
iterating on software
Wednesday, July 24, 13
Patching hardware
is a lot harder
Wednesday, July 24, 13
Patching hardware
is 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 about
PCB design
Wednesday, July 24, 13
Learning about
contract manufacturing
Wednesday, July 24, 13
Learning how to make
a Kickstarter video
Wednesday, July 24, 13
Questions?
Wednesday, July 24, 13
Thanks!
Jesse Vincent
http://keyboard.io
jesse@fsck.com /@obra
Wednesday, July 24, 13

Más contenido relacionado

Más de Jesse Vincent

K-9 Mail for Android
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for Android
Jesse Vincent
 
SD - A peer to peer issue tracking system
SD - A peer to peer issue tracking systemSD - A peer to peer issue tracking system
SD - A peer to peer issue tracking system
Jesse Vincent
 
Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)
Jesse Vincent
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
Jesse Vincent
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
Jesse Vincent
 
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret SauceBeijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Jesse Vincent
 
Prophet: a path out of the Cloud
Prophet: a path out of the CloudProphet: a path out of the Cloud
Prophet: a path out of the Cloud
Jesse Vincent
 

Más de Jesse Vincent (15)

K-9 Mail for Android
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for Android
 
Perl 5.12.0
Perl 5.12.0Perl 5.12.0
Perl 5.12.0
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
 
SD - A peer to peer issue tracking system
SD - A peer to peer issue tracking systemSD - A peer to peer issue tracking system
SD - A peer to peer issue tracking system
 
Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)Hacking your Kindle (OSCON Lightning Talk)
Hacking your Kindle (OSCON Lightning Talk)
 
Beginning Kindle Hackery
Beginning Kindle HackeryBeginning Kindle Hackery
Beginning Kindle Hackery
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
 
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret SauceBeijing Perl Workshop 2008 Hiveminder Secret Sauce
Beijing Perl Workshop 2008 Hiveminder Secret Sauce
 
A brief introduction to RTIR
A brief introduction to RTIRA brief introduction to RTIR
A brief introduction to RTIR
 
An introduction to RTIR
An introduction to RTIRAn introduction to RTIR
An introduction to RTIR
 
Prophet: a path out of the Cloud
Prophet: a path out of the CloudProphet: a path out of the Cloud
Prophet: a path out of the Cloud
 
Web 2.0 is Sharecropping
Web 2.0 is SharecroppingWeb 2.0 is Sharecropping
Web 2.0 is Sharecropping
 
Hiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret Sauce
 
Prophet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected database
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Building a keyboard from scratch