thesis pitch: interstice
a networking approach to enable intuitive, zero-conf ubiquitous computing
The project of pervasive computing and sensing is not succeeding. We imagined a future where the whole world is instrumented with cheap sensors and tiny computers — where data about the environment, machines, and humans is ubiquitous and easy to access; where these tiny computers can distribute work between them, in many cases obviating the need for dedicated computing devices.
The reality we inhabit has made strides towards this vision but is far from attaining it. Components are inexpensive, firmware is open, and vendors provide cheap integrated solutions, yet in practice deploying a nontrivial networked embedded system requires substantial application-specific technical design and integration. The landscape of networked sensor systems remains one of bespoke, fragmented solutions and walled gardens — sensor instrumentation and compute embedding is routine in today's world but not commodity.
In analogy to manufacturing, we live in a time before the adoption of standardized parts: the story of electronics hardware and firmware development is one of reinventing the wheel over and over again and hand-fitting each system to its particular application. This is not an existential challenge to the field — it is still possible to produce and deploy embedded electronics that provide paradigm-shifting capabilities — just as it was once possible for artisans to craft intricate and precise mechanisms with hand tooling alone. But it is drastically more difficult and costly to do so than the underlying technologies suggest it could be. Over-the-air updates, signaling schemes, networking protocols, message formats, bootloaders — anything that can be reinvented and respecialized will be — and I argue that this is an essential unsolved problem on the critical path to a future replete with readily-deployed, low-cost, networked embedded systems.
A critical capability required for the broad deployment of these systems is transitive reachability across hetereogeneous node types through any variety of physical-layer interconnects (copper, radio, optical, etc.). If I can reach one node in the system, then I ought to be able to reach everything in the connected component of the network graph it belongs to. Further, this graph must be easy to extend — it can't require additional infrastructure to do so (hubs, access points, external servers, Internet access, etc.), except as physical reality dictates (range extension, signal conditioning due to distance or noise).
To this end, I am building easily-integrated firmware libraries and hardware designs that enable the construction of hotpluggable, modular, switched or routed (L2/L3), densely connected ad-hoc networks of embedded devices over a variety of physical-layer interconnects (including SPI, UART, I2C, RS-232, Bluetooth) using standard Internet protocols. The primary technical contributions in this thesis are:
- Protocol specifications and drivers for each supported PHY
- Arduino-compatible firmware switch library enabling the aggregation of L2-compatible PHYs
- Arduino-compatible router library based on BATMAN, enabling hotpluggable ad-hoc network construction and modification
- Demonstrator systems showcasing communication between my own PCBs, a variety of Responsive Environments historical projects, and external network clients under variable network conditions