ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
HardwarePrototyping?
forSoftwareDevelopers
AndyCarle,PhD?
@PrototypingAndy?
@Kinoma
kinoma.com
Scope:ConnectedDevices
TwoGoals
Expand the?
Developer Pool
Improve Outcomes for?
Existing Developers
TwoSolutions
ToolsProcess
@Kinoma
KinomaPL AT FO R M R U N T I M E
@Kinoma
Today¡¯sIoTDeveloperLandscape
Native
Language
Developers
Processing Developers
Node.js & Python Developers
Web Front-End Developers Product Designers
@Kinoma
ITERATE
ITERATE
ITERATE
MakingIt:TheOld(Current)Way
Ship it!
Get funding
Prototype on
Arduino
(Processing)
Prototype on
BeagleBone/Raspberry Pi
(Interpreted languages)
Prove concept Abandon
all progress
Learn that platform
isn¡¯t production-ready
Learn native
language
Re-build it all
on target platform
A YEAR
LATER
@Kinoma
ITERATE
ITERATE
ITERATE
MakingIt:TheOld(Current)Way
Ship it!
Get funding
Prototype on
Arduino
(Processing)
Prototype on
BeagleBone/Raspberry Pi
(Interpreted languages)
Prove concept Abandon
all progress
Learn that platform
isn¡¯t production-ready
Learn native
language
Re-build it all
on target platform
A YEAR
LATER
The Chasm of Despair
@Kinoma
Waterfall
Verification
Maintenance
Requirements Product requirements document
Design Software architecture
Implementation Software
@Kinoma
WeShouldBeDoingBetter
DESIGN PROTOTYPE TEST
ITERATE
SoftwareSimulation
HardwareSimulation
PrototypingHardware
CustomHardware
DESIGN PROTOTYPE TEST
ITERATE
DESIGN PROTOTYPE TEST
ITERATE
DESIGN PROTOTYPE TEST
ITERATE
@Kinoma
ProcessGoals
? Preserve progress between prototypes
¨C Application code
¨C I/O libraries
¨C Look and feel
? Make user tests as authentic as possible
? Small jumps between prototype generations
¨C Cost
¨C Time
@Kinoma
SoftwareSimulation
Software
Kinoma Platform?
Runtime (KPR)
Native
Interpreted
HTML
Mobile app?
framework
Android
iOS
@Kinoma
HardwareSimulation
Software
Simulated
Hardware
Kinoma Platform?
Runtime (KPR)
Native
Interpreted
HTML
Mobile app?
framework
Android
iOS
Kinoma simulator
Simulator?
for Arduino
CPU emulator
(e.g. QEMU)
Android simulator
iOS simulator
@Kinoma
Off-the-ShelfPrototypingHardware
Software
Simulated
Hardware
Prototyping
Hardware
Kinoma Platform?
Runtime (KPR)
Native
Interpreted
HTML
Mobile app?
framework
Android
iOS
Kinoma simulator
Simulator?
for Arduino
CPU emulator
(e.g. QEMU)
Android simulator
iOS simulator
Kinoma Create
Arduino
Galileo
PIC Dev
Raspberry Pi
BeagleBone
Android + IOIO
¡Á ¡Á
@Kinoma
(Affordable)CustomHardware
Software
Simulated
Hardware
Prototyping
Hardware
Custom
Hardware
Kinoma Platform?
Runtime (KPR)
Native
Interpreted
HTML
Mobile app?
framework
Android
iOS
Kinoma simulator
Simulator?
for Arduino
CPU emulator
(e.g. QEMU)
Android simulator
iOS simulator
Kinoma Create
Arduino
Galileo
PIC Dev
Raspberry Pi
BeagleBone
Android + IOIO
Marvell ARM
x86
MIPS
ARM¡Á ¡Á ¡Á
?
¡Á¡Á
¡Á
¡Á
?
@Kinoma
? Saving time allows you to focus on
? Industrial design
? Companion app
? User testing
? Community building
? Crowdfunding campaign management
? Investor relations
? Building a brand
Don¡¯tRe-engineer:ExpandPriorities
@Kinoma
Tools:GettingStarted
Language Platform
@Kinoma
The¡°Right¡±ToolsAreArcane
@Kinoma
¡°JustMakeitWork¡±vs¡°MakeitUseable¡±
@Kinoma
? Web (Desktop)
? Mobile (Apps and Web)
? Server
? Embedded
JavaScript¡¯sOneFrontierLefttoConquer
@Kinoma
We are preaching the religion of JavaScript for embedded and
Internet of Things development.
? Performance
? Memory
? User scripting
? Familiar syntax
? JavaScript coders build cool stu? fast
JavaScriptisReadyfortheChallenge
@Kinoma
PopularFrameworksAren¡¯tIoTReady
? Browser-based solutions: Too heavy for IoT devices
? Node.js: Server solution being shoehorned into the
embedded space
? Qt: Designed for desktop, too much of a catch-all of features
? Lua: Less popular than assembly and COBOL, so difficult to
find talent and no significant ecosystem
@Kinoma
Manage the
hardware
?Power
?Sensors
?Schedulers
@Kinoma
Manage the
hardware
Operate the?
user interface
?Power
?Sensors
?Schedulers
?Buttons
?Lights
?Screens
@Kinoma
Manage the
hardware
Operate the?
user interface
Coordinate?
communication
?Power
?Sensors
?Schedulers
?Buttons
?Lights
?Screens
?Network
?Devices
?Cloud
@Kinoma
Digital?
media
Manage the
hardware
Operate the?
user interface
Coordinate?
communication
?Photos
?Music
?Video
?Power
?Sensors
?Schedulers
?Buttons
?Lights
?Screens
?Network
?Devices
?Cloud
@Kinoma
@Kinoma
@Kinoma
UsabilityasaFirst-OrderDesignGoal
@Kinoma
Kinoma Create
@Kinoma
Hardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
Assemblingyour
RaspberryPi enclosure
isrelatively
straightforwardif
you¡¯veeverbuiltany?
t-slotbasedlasercut
stuffbefore,buthere¡¯s
afullguide¡­
@Kinoma
¡°
¡±
@Kinoma
Hardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
Kinoma Create
@Kinoma
Kinoma Create
@Kinoma
Hardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
Thankyou!
AndyCarle,PhD?
@PrototypingAndy?
@Kinoma
kinoma.com
? ¡°Inclinometer on Arduino¡± photo from flickr.com/27164521@N00, used under CC?Attribution
2.0 Generic license
? ¡°BeagleBone¡± photo from flickr.com/embecosm, used under CC?Attribution-ShareAlike 2.0
Generic license
? Programming languages image from http://geoawesomeness.com/learning-gis-
programming-an-overview/
? Raspberry Pi enclosure photo from http://www.built-to-spec.com/blog/kit-instructions/new-
raspberry-pi-enclosure-assembly/
? Raspberry Pi enclosure photo from http://www.raspberrypi.org/forums/viewtopic.php?
t=6424
? Raspberry Pi enclosure photo from http://www.ikeahackers.net/2013/05/raspberry-pi-pruta-
case.html
Credits

More Related Content

Hardware Prototyping for Software Developers