Talk: Liberating Wireless Sensor Data

C++

Wireless sensors networks are a central feature of the Internet of Things. Unfortunately, many useful sensors are proprietary designs which use undocumented wireless protocols, locking our data into the vendor’s devices or services. The closed nature of these protocols inhibits interoperability of these devices within larger systems, and might even be considered ethically dubious.

I will tell the story of a small-scale, industrial reverse engineering effort to liberate our data from a proprietary solar irradiance meter which transmits measurements over a wireless link to an equally proprietary remote base-station. By combining protocol analysers developed in Python and Excel with a logic analyzer, oscilloscope and a large measure of obstinate tenacity, we illustrate how the signal protocol was ultimately figured out. This information was used to inform an open-source protocol implementation in C++, designed to run on a simple open-source hardware device comprising an 8-bit microcontroller and a radio receiver connected to a Raspberry Pi.

Curiously, the forensic process revealed several design flaws in the upstream sensor software, one of which results in silent correctness failures of the system, calling into question the more widespread use of unpublished proprietary protocols in areas where there may be safety implications.

This session should be of interest to anybody interested in the Internet of Things, wireless sensors, embedded systems, hardware hacking, openness and puzzle solving.