FreeMotion Provides Sensor Fusion For SmartPhone

May 2, 2012
Sensor Platforms' FreeMotion Library is designed to improve the use of sensor suites like those found on smartphones using algorithms and heuristics to deliver improved results on position, attitude and movement.

Sensor Platforms' FreeMotion Library is designed to improve the use of sensor suites like those found on smartphones using algorithms and heuristics to deliver improved results on position, attitude and movement. It can also provide virtual peripherals like a virtual gyroscope using sensor fusion.

A virtual peripheral provides information based on other sensors. It may be a front end to a real peripheral that may be offline or idle. For example, a MEMS gyroscope is power hungry device using 5 to 10 mA. It also typically has a 50 to 100ms wakeup time. Other sensors like a MEMS accelerometer use less power and wake up faster but provide less accurate results. Still, many applications do not need the same level of accuracy all the time such as when a device is idle.

A FreeMotion virtual peripheral would always provide sensor information its response time and accuracy would vary depending upon the source of the information. This is transparent to the application. It can significantly reduce power consumption (Fig. 1).

Figure 1. A virtual 9-axis sensor uses less power than a regular sensor that would be on all the time.

Another way FreeMotion can provide more information is to indicate a device's context with respect to a user. For example, it could provide information about when a device is in motion (Fig. 2). This could be used by applications such as the phone application to take a message if the user is running.

Figure 2. Integrated sensors can provide user context information such as when a device is being carried or not.

The FreeMotion library can handle a range of industry standard sensors. It can also integrate with applications or operating environments such as Android. Standard APIs exist for many environments but they are often limited.

The FreeMotion library uses less than 10 MIPS when handling the sensors directly. This can also improve sensor performance. For example, its magnetic compass operates at 20Hz with 3-5 degrees accuracy with magnetic sensors even with magnetic distortion and anomalies nearby. It can recognize environments such as buildings where there are steel beams that are often magnetized. Even closing the lid on flip phone can cause a distortion of 10-15 degrees.

FreeMotion is written in fixed point C code for efficiency. The support can be implemented within a standalone application. It can also provide a sensor node or operate in a distributed environment where a micro may be managing the sensors along with an application processor (Fig. 3). Any configuration provides the application with the same API.

Figure 3. The FreeMotion Library can handle standalone applications or be split even across processors

Sensor fusion via FreeMotion can provide improved power utilization while providing best-in-class results. It also delivers improved accuracy and better noise processing that standalone sensors.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations


To join the conversation, and become an exclusive member of Electronic Design, create an account today!