Working with ARM Ltd., Sensor Platforms has released an open source software framework for implementing sensor hubs in ARM CPU based mobile phones, wearables, and the things to which they may be connected.
The software, called Open Sensor Platform (OSP) is designed to simplify the integration of sensors across multiple applications, and provide a flexible framework for more sophisticated interpretation and analysis of sensor data.
According to Jim Steele, Vice President of Engineering, Sensor Platforms Inc. , the integration of sensors into smartphones, wearables and Internet-of-Things (IoT) devices is driving an exponential increase in the volumes of data created. OSP has been designed for the ARM architecture which is pervasive in sensor hub applications because of the low-power capabilities, simplicity of integration, and broad ecosystem.
“Until now, the use of sensors and sensor hubs in mobile devices has been fragmented and ad hoc,” he said. “OSP encourages developers to focus on creating innovative applications for sensors rather than reinventing the wheel for each sensor interface. It also enables OEMs to provide context-awareness to the Android HAL, which is important for the always-on demands of Android KitKat and Android Wear.”
The first sample OSP implementation is an Android KitKat-compliant sensor hub providing always-on sensor data up to the Android Hardware Abstraction Layer (HAL) on the Application Processor (AP). However, said Steele , the framework has been designed to be simple and flexible enough to be extended to more use-cases. OSP contains the following blocks to pass sensor and sensor hub data up to the Android sensors HAL:
1. Sensor Hub Driver: interface to the embedded sensor hub hardware;
2. Sensor Drivers: interface to sensors not connected to the sensor hub;
3. libSensors: the library in user-space that implements the Hardware Abstraction Layer (HAL) specified by Android;
4. Sensor Hub Daemon: a user-space process that can implement proprietary sensor algorithms through standard Linux interfaces. OSP contains a reference implementation of this daemon in source form;
5. Extended SDK: a software development kit (SDK) for features not currently supported in AOSP but which a Java App Developer would like to access.
The framework (see Figure below ) incorporates a a low-level interface for hardware abstraction such as SPI and I2C drivers, an application support framework for applications running on the embedded hub itself, and a “user-space” product specific area for proprietary algorithm libraries.
According to Steele, the processor-agnostic sensor driver framework also implements a number of features needed to send sensor data up to the Sensor Hub Application and beyond to the AP as available including
Timers/RTC for high-fidelity time-stamping of sensor data; UART I/F for debug and rapid prototyping; SPI master and slave I/F drivers from hub to sensors or AP; I2C master and slave I/F drivers from hub to sensors or AP; Debug and Instrumentation: used for standard UART based data logging and error reporting; an algorithm API for implementing sensor interpretation algorithms on the sensor hub.
In addition there is a sensor hub application that is used to associate the appropriate set of algorithms to host operating system sensor requirements as well as a generic Host I/F Driver protocol to send sensor to the the host.
He said the software's Application Support Framework (ASF) stitches together the various system components of OSP to provide sensor data to the application. This implementation keeps portability across hardware platforms, CPU architectures, and real-time operating systems. The ASF provides APIs, macros, and utility functions for managing tasks, timers, and message passing in the application.
“These methods have been created to abstract the underlying kernel or RTOS and allow porting of the existing application firmware to different platforms with minimal effort,” he said.
“Contextual, sensing information is becoming more important as end devices for the Internet-of-Things rapidly proliferate,” said Charlene Marini, Vice President of Marketing, Embedded Segment, ARM. “As an open source platform for sensor fusion fundamentals, OSP will enable a community of developers to accelerate new functionality for ongoing innovation in sensor hubs across applications. As a result, we should see devices and applications that are more aware of their user and their environment, making technology more useful for all.”
Steele said OSP developers will also be able to take advantage of higher-level sensor interpretation such as that available through Sensor Platforms’ own FreeMotion libraries for robust sensor fusion, always-on context awareness, and Pedestrian Dead Reckoning (PDR). OSP will be open sourced under Apache License, Version 2.0, and will actively manage and incorporate community contributions. The initial source code release, supporting documentation, and forum support will be available at GitHub.com on or before May 12th.