It isn't what we say or think that defines us, but what we do.
—Jane Austen
There are several efforts underway to define and unify sensor abilities and parameters, both for normal (user) applications as well as for standardized (manufacturer) testing. Today it can be quite difficult to change sensor elements (either because newer, better sensor products become available, or because of the obsolescence of older, existing models) due to the amount of software changes involved. In this article, I'll discuss some of the evolving standards efforts underway, and what that means for those of us trying to keep up with the latest sensor technologies, and those of us trying to determine whether or not a particular sensor meets our requirements.
There has been a lot of activity around Micro-Electro-Mechanical Systems(MEMS) sensors in the last few years, enabling everything from self-leveling drone 'copters to exercise wristbands. While that is great news for product designers and consumers, one of the areas that has not kept pace with this explosion of new products and capabilites, has been a standardized method for comparing and contrasting the specifications of these new devices. The IEEE, in conjunction with the MEMS Industry Group (MIG) have been working on a specification to define Sensor Parameters in a more consistant and formal way, known as IEEE 2700-2014, the IEEE Standard for Sensor Performance Parameters.
IEEE 2700-2014 describes a set of definitions for the parameters of different sensor types, as well as terms, acronyms, symbols, measurement conventions and conversions. The recently ratified standard includes all the usual suspects, such as :
- Accelerometers
- Gyroscopes
- Magnetometers (i.e. MEMS Compass)
- Temperature
- Pressure
- Humidity
- Proximity
- Light
This is good news for developers, as standard "terms", like parameter names, units, and measurement techniques are very important for comparing "apples to apples" where sensor performance is concerned. So, what kind of parameters are defined in IEEE 2700-2014? The parameters can vary for each type of sensor element; a Magnetometer (i.e. MEMS Compass) for example can have parameters such as :
- Full Scale Range
- Offset at Zero Magnetic Field
- Offset Temperature Coefficient
- Sensitivity
- Sensitivity Temperature Coefficient
- Noise
- Current Consumption
- Filter-3DB Cutoff
- Cross-Axis Sensitivity
- Integral Non-Linearity
- Acquisition Time
This is a good first effort at defining all the important parameters, their units of measurement, and the conditions under which those parameters are specified. As more manufacturers adopt the IEEE 2700-2014 standard, it will make things much easier for designers and programmers to understand their data sheets and specifications.
In terms of software developments, there are a number of Sensor Fusion initiatives underway, including offerings from ST Microelectronics, Freescale, and many others. Most of these vendors refer to the collection of sensor hardware necessary to integrate all the disparate sensors as a Sensor Hub. Companies like Microsoft consider these efforts to be so critical that they have made it mandatory for Windows 8 and Windows 10 to support sensors in the Human Interface Device (HID) specification. And the MEMS Industry Group (MIG) is working on an Open Source Sensor Fusion initiative for Sensor Fusion, including a body of work donated by by Freescale.
For smaller, embedded systems, Kevin Townsend at Adafruit has developed a Unified Sensor Driver that is similar to how the Android Operating System abstracts all sensor parameters into a single unified type with standard, pre-defined SI units of measure. This is a very nice way to go, as users are now free to select any sensor model of a particular type, and their higher level software doesn't need to be rewritten when their hardware changes. And once IEEE 2700-2014 becomes more prevalent, it will become even easier to implement the underlying Unified Sensor Drivers.
In coming articles, I'll discuss using the DeviceTree to automatically discover and configure attached sensors, and to define their parameters in a method that is compatible with IEEE 2700-2014.