Dandelion is a programming framework of phone-centered body sensor
applications. It enables phone developers transparently write body
applications, without learning how to program sensors.
Many innovative mobile health applications can be enabled by augmenting wireless body sensors to mobile phones, e.g. monitoring personal fitness with on-body accelerometer and EKG sensors. However, it is difficult for the majority of smartphone developers to program wireless body sensors directly; current sensor nodes require developers to master node-level programming, implement the communication between the smartphone and sensors, and even learn new languages. The large gap between existing programming styles for smartphones and sensors prevents body sensors from being widely adopted by smartphone applications, despite the burgeoning Apple App Store and Android Market.
To bridge this programming gap, we present Dandelion, a novel framework for developing wireless body sensor applications on smartphones. Dandelion provides three major benefits: 1) platform-agnostic programming abstraction for in-sensor data processing, called senselet, 2) transparent integration of senselets and the smartphone code, and 3) platform-independent development and distribution of senselets.
We provide an implementation of Dandelion on the Maemo Linux smartphone platform and the Rice Orbit body sensor platform. We evaluate Dandelion by implementing real-world applications, and show that Dandelion effectively eliminates the programming gap and significantly reduces the development efforts. We further show that Dandelion incurs a very small overhead; in total less than 5% of the memory capacity and less than 3% of the processor time of a typical ultra low power sensor.
The figure above shows our motivation to design Dandelion.
While treating sensors as dumb suppliers is easy to smartphone developers, it incurs high energy overhead (frequently wake up the phone's processor, transfer the raw data over the wireless link, etc.). Directly programming both sensors and the phone ensures the energy-efficiency, however it is very difficult for phone developers to manage. In addition, computing fixed features in sensors does not offer full programmability of in-sensor processing.
By enabling transparently developing sensor body applications,
Dandelion seeks to achieve both the energy-effiency and the ease-of-programming.
Please refer to our Wireless Health '10 paper for more technical details.
We build Dandelion prototype based on Nokia N900 smartphone and Rice Orbit sensor platform. We are working to make Dandelion codebase publicly available.