SlideShare une entreprise Scribd logo
1  sur  158
Télécharger pour lire hors ligne
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

Contenu connexe

Plus de Jesse Vincent

K-9 Mail for Android
K-9 Mail for AndroidK-9 Mail for Android
K-9 Mail for AndroidJesse Vincent
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SDJesse 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 systemJesse 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
 
Beginning Kindle Hackery
Beginning Kindle HackeryBeginning Kindle Hackery
Beginning Kindle HackeryJesse Vincent
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopJesse 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 SauceJesse Vincent
 
A brief introduction to RTIR
A brief introduction to RTIRA brief introduction to RTIR
A brief introduction to RTIRJesse Vincent
 
An introduction to RTIR
An introduction to RTIRAn introduction to RTIR
An introduction to RTIRJesse 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 CloudJesse Vincent
 
Web 2.0 is Sharecropping
Web 2.0 is SharecroppingWeb 2.0 is Sharecropping
Web 2.0 is SharecroppingJesse Vincent
 
Hiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceJesse Vincent
 
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 databaseJesse Vincent
 

Plus 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
 

Dernier

Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FESTBillieHyde
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Muhammad Tiham Siddiqui
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 

Dernier (20)

Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FEST
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile Brochure
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 

Building a keyboard from scratch