Past, Present and Future of IoT Device Prototyping Bjoern Hartmann Intel/NSF CPS-Security Final PI Meeting Stanford, CA July 13, 2018
How Technologies Take Off: The Web Source:Pingdom/Linda Carroll
What Made the Web Take Off? • Lots of people could create web pages and apps, not just Stanford/Berkeley/Michigan/UPenn/Duke PhDs • People with domain expertise (+CS undergrads) could create truly useful apps for their domain, within an established technology “genre”
The Web Development Stack start low, work your way up External stores/ APIs/Infrastructure logic etc. Server-side logic (*) Client-side logic (JS) Declarative Layout (HTML/CSS) Browser / User
Platform support for success • Gradual on-ramp: Good prototyping tools + low initial development complexity • A large corpus of exemplars: “View Source” (only works for client) • Inspection/debugging tools built into browsers • Moving to higher levels of abstraction (AppEngine, WordPress, etc.)
Technologies Taking Off, Part 2? IoT Hockeystick Graphs Everywhere…
…Or Not?
The IoT Stack Cloud Gateway Embedded Code Circuits Sensors Actuators Physical World / User
The IoT Stack High-level languages Cloud start low, work your way up Gateway Low-level languages Embedded Code EE Circuits Mechatronics Sensors Actuators Physical World / User
Mechanical Electronics Software Interaction
How might we enable a similar cambrian explosion of useful IoT applications in the face of these difficulties?
Prototyping is Key …it’s how designers work through ideas Early digital camera exploration, IDEO Apple IPhone Prototype
We build a lot of these…
Personal Environmental Control System (PECS) Michael Andersen, Joseph Bynoe
Anthony Sutardja Maxwell Micali Christine Dierk Zachary Gima
Sunita Venkatesh Lucy Corippo Adarsh Mani (w/ UCSF)
Simon Scott, Will Porter, Yi Tong, Mitchell Karchemsky
Augmented Power Tools Michelle Nguyen Eldon Schoop
Computation Laser Projector Distance Sensors
What did we learn over the past decade?
The Past Custom protocol Tx Rx Custom gateway Connect to Add a wireless Configure and run Design an module with serial server on circuit 8-bit MCU abstraction your own hardware
How to support IoT prototyping • Strategy #1: Help people reason about and bridge boundaries in the current approach.
The More-Recent Present Custom messaging on pre-defined channel IoT vendor-managed Sever on Connect to Design cloud Azure, Amazon, etc 32-bit SOC/SOM circuit w/ on-board radio Examples: Particle, ElectricImp
How to support IoT prototyping • Strategy #1: Help people bridge boundaries in the current approach • Strategy #2: Replace past practice with new tools offering a higher level of abstraction or integration.
How to support IoT prototyping • Strategy #1: Help people bridge boundaries in the current approach • Strategy #2: Replace past practice with new tools offering a higher level of abstraction or integration.
Bridging Boundaries Cloud WiFröst Gateway Embedded Code Circuits ToastBoard BiFröst Sensors Actuators Physical World / User
Bridging Boundaries Cloud WiFröst Gateway Embedded Code Circuits ToastBoard BiFröst Sensors Actuators Physical World / User
Toast board • Point measurements (Multimeter, Scope) require hypothesis about circuit problem. • Non-experts are bad at generating reasonable hypotheses. • Replace point measurements with ubiquitous instrumentation (measure everything, all the time) • Combine circuit model with real-world measurements to diagnose problems.
Client: Checker Functions Overcoming the debugging knowledge barrier by preemptively providing important information
Client: Checker Functions Can diagnose errors: Or provide information:
Bridging Boundaries Cloud WiFröst Gateway Embedded Code Circuits ToastBoard BiFröst Sensors Actuators Physical World / User
Trace The BiFröst IDE Digital Signals Analog Signals Variable Values User Program Time-linked console Code line at current time 37
Example: ADC Variable Overflow 38
Trace ⇔ Code ⇔ Console linkage Trace Trace View Time-linked User Program console 39
Code-based navigation 40
How to support IoT prototyping • Strategy #1: Help people bridge boundaries in the current approach • Strategy #2: Replace past practice with new tools offering a higher level of abstraction or integration.
Raising Abstraction Levels Cloud Fabryq Gateway Ravel Embedded Code Embedded Design Circuits Generation Sensors Actuators Physical World / User
Raising Abstraction Levels Cloud Fabryq Gateway Ravel Embedded Code Embedded Design Circuits Generation Sensors Actuators Physical World / User
EDG: Embedded Design Generation • Goal: Given a higher-level specification of an embedded system, automatically generate the hardware necessary to run the code. • What should the specification look like? We investigated 2 options: • Code that the hardware should run • High-level block diagram
Generating Hardware from Code Ramesh et al, SCF 2017
Option 2: Block Diagram Specs Student: Richard Lin Interesting research: Explore Pareto front of design alternatives - optimize for cost, part availability at different quantities, community documentation, etc.
Design Inspiration: Interview Study of 15 HW Designers Physical Device Parts Selection Ideas and ATmega Iteration Requirements System Architecture Part Number Size Vf +3.3v OVLFY3C7 5mm 2 V D0 Design APG1005SYC-T 0402 2.05 V Button J1 - or - D1 Micro- 5988140107F 0805 2 V SW1 ... D1 Flow controller Part Number Core LED Micro- ATmega32u4 AVR R1 U1 R2 GND controller LPC1549 ARM CM3 Final FE310-G000 RV32IMAC PCB Hand-built Schematic Prototype Prototypes Capture PCB Tools paper, drawing software breadboards EDA suites: Altium, EAGLE, KiCAD parts libraries, catalogs, spreadsheets Used more abstract, high-level more concrete, low-level fi fi fi Unsupported or under-supported by current tools
Related Trigger-Action Circuits, Scanalog - Analog circuits via FPAAs Autodesk 2017 Strasnick et al, Stanford 2017
Raising Abstraction Levels Cloud Fabryq Gateway Ravel Embedded Code Embedded Design Circuits Generation Sensors Actuators Physical World / User
Fabryq • Enable rapid prototyping of BLE sensor logging devices that stream data to the web • Motivation: Personalized medicine and home care - send patient home with monitoring device while medical team can read data remotely • Domain experts know about sensing, data transformation and interpretation, not the stack in the middle
Fabryq
Core Idea: Bridge Layers! Cloud Gateway Embedded Code Circuits Sensors Actuators Physical World / User
Security Implications • A perhaps inevitable consequence of many more people building ever more services/apps/devices: They don’t consider security in the way this room would. Many impactful breaches are not at all “sophisticated”: • Mirai: default username/password • Trendnet cameras: plaintext credentials transmitted • LocationSmart: Simple JSON edit exposes location of any cell phone in US
How can these tools help? • Tools that help you inspect and debug your IoT device can proactively check for problems • Example: WiFröst router detects unencrypted login/password passed over HTTP • Tools that raise the abstraction level can avoid these problems by design (application developers don’t write the critical code).
Open Steps • Today’s consumer IoT devices are largely single device-to-device- specific cloud. However, major value (and risk) is in interconnection. • Current Split: low-power systems (e.g., BLE, wearables) vs. full Linux systems (i.e., smartphone level or higher) when using audio/vision/ 3d point clouds, etc. But this is changing: ML co-processors are emerging in embedded space - yet another boundary - code split between general purpose and ML models. • How might we help designers and develop create these applications?
Q&A
Recommend
More recommend