WiFröst: Bridging the Information Gap for Debugging of Networked Embedded Systems
Will McGrath, Jeremy Warner, Mitchell Karchemsky, Andrew Head, Daniel Drew, and Bjoern Hartmann
WiFrst: Bridging the Information Gap for Debugging of Networked - - PowerPoint PPT Presentation
WiFrst: Bridging the Information Gap for Debugging of Networked Embedded Systems Will McGrath , Jeremy Warner , Mitchell Karchemsky, Andrew Head, Daniel Drew, and Bjoern Hartmann IoT Device Debugging Protocol error? Wiring issue?
WiFröst: Bridging the Information Gap for Debugging of Networked Embedded Systems
Will McGrath, Jeremy Warner, Mitchell Karchemsky, Andrew Head, Daniel Drew, and Bjoern Hartmann
Defective part? Peripheral not configured? Wiring issue? Protocol error? Program logic bug?
IoT Device Debugging
IoT Device Debugging
IoT System Debugging
Server Down or Overloaded? Router Off or Overloaded? Intermittent Radio Interference? Poorly Formatted API Request? Bad Server Address? Out of Range?
IoT System Debugging
Defective part? Peripheral not configured? Wiring issue? Protocol error? Program logic bug?
Bad Network Configuration or Credentials? Wrong or Invalid API Key?
API Key / Password Sent in Plaintext Abnormal Network Traffic? Using Deprecated API?
IoT System Security
Defective part? Peripheral not configured? Wiring issue? Protocol error? Program logic bug?
Insecure Protocol Usage? Outdated firmware?
Existing Approaches
JTAG debugger Logic analyzer Network analyzer
Each tool observes only a small slice of device state, and it is generally difficult to trace event causality across tool boundaries due to different representations different representations and a lack of time synchronization a lack of time synchronization
Ubiquitous instrumentation, Ubiquitous instrumentation, visualization, and checking visualization, and checking can help users more effectively debug and understand IoT systems across hardware, software, and device boundaries
Instrumentation
Program and library instrumentation Router and server Instrumentation WiFröst
10Server Router Device Capture PC DB WiFröst IDE (MITM proxy)
Our Approach
Logic analyzer Network analyzer
Introduction Related Projects Related Projects IDE Features Checks Walkthrough Implementation Future Work
Embedded Systems and Electronics Debugging
Embedded System Resource Usage
Network and Distributed System Debugging
Integrated Debugging Tools
Toastboard, 2016 WiFröst, 2018 Bifröst, 2017
15”Component is backwards” “Invalid parameter to web API call” “Reading from a pin set to output”
16Toastboard WiFröst BiFröst
Coverage
Introduction Related Projects IDE Features IDE Features Checks Walkthrough Implementation Future Work
Trace
18Network Connections User Code Function Stack Check Results
WiFröst IDE
Console User Code Event Information Application Health Bars
Trace
19Network Connections User Code Function Stack Check Results
WiFröst IDE
Console User Code Event Information Application Health Bars
Trace
20Trace
21Trace
22Trace
23Visual Debugging
24VS
ERROR OK (200)
Health Bars
25Introduction Related Projects IDE Features Checks Checks Walkthrough Implementation Future Work
Checks
27Wi-Fi chip connection broken
√
Incorrect Wi-Fi SSID
√
Incorrect Wi-Fi password
√ √
Bad host name
√
Weak connection to router
√
Buggy web API usage Can't access Internet Incorrect authentication
Generic Checks
28Custom Checks
29Introduction Related Projects IDE Features Checks Walkthrough Walkthrough Implementation Future Work
Walkthrough - Weather
Wunderground
Walkthrough – Connecting to WiFi
Walkthrough – Connecting to WiFi
Walkthrough – Incorrect Domain Name
Walkthrough – Incorrect Domain Name
Walkthrough – Incorrect Domain Name
Walkthrough – API Key
Walkthrough – API Usage
Walkthrough – Correct Behavior
Introduction Related Projects IDE Features Checks Walkthrough Implementation Implementation Future Work
WiFröst - Implementation
Server Router Device Logic Analyzer Capture PC DB WiFröst IDE (Mitmproxy)
Compilation
42User Code WiFröst IDE
Network Instrumentation
43GET / HTTP/1.1 Content-Type: application/ json Accept: */* x-wftag: 0123
Server Router Device
HTTP/1.1 200 OK Server: nginx Content-Type: application/ json Connection: close Expires: Mon, 1 Aug 2011 09:00:00 GMT HTTP/1.1 200 OK Server: nginx Content-Type: application/ json Connection: close Expires: Mon, 1 Aug 2011 09:00:00 GMT x-wftag: 0123
Connection Begin Connection End Request Received Response Received Request Handled (if instrumented) (Mitmproxy)
Time Domains
Server Router Device Logic Analyzer Capture PC DB WiFröst IDE
μs resolution ms resolution
(Mitmproxy) Ntp
Time Scaling
45Actual Logical
Automatic code and network instrumentation, checking, and trace visualization can help users better understand and debug their networked embedded devices.
Introduction Related Projects IDE Features Checks Walkthrough Implementation Future Work Future Work
Future Work
Instrumented Breadboard Microcontroller pin capture Program and library instrumentation Router and server Instrumentation
48Questions?
49buried/reference
Trace
51User Code Console Timeline Checks
WiFröst
More related work…
based on a desire for tying more projects together in a cohesive manner.
53Preliminary User Feedback
Interfacing with the Phillips Hue API from Arduino using WiFröst Users made effective use of the visualization and automatic checks for guidance ”Auto-formatting logs is nice, it’s work done for me.” ”Helpful for not only debugging, but also learning” ”Takes away the headache of finding [information] manually”
Our Integrated Electronic Debugging Tools
55Instrumented Breadboard Microcontroller pin capture Program and library instrumentation Router and server Instrumentation
Toastboard Wifröst BifröstInstrumentation Checking +
Trace
56Network Connections User Code Function Stack Check Results
WiFröst: Exploration
Console User Code Event Information Application Health Bars
Each tool observes only a small slice of a device's state and it's generally difficult to trace the causality of an event across tool boundaries due to different representations and lack of time synchronization
Instrumentation
Program and library instrumentation Router and server Instrumentation WiFröst
58