By Michael Stanley
Originally posted on Freescale’s The Embedded Beat Blog
Last week, Freescale made its eCompass and 4 and 7 element magnetic compensation routines available in (drum roll please!) source form.
Getting access is easy. Let me take you through the steps….
- Open your web browser to http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=eCompass
- Click on the “ECOMPASS_SW: eCompass Software” link.
- This will take you to the Freescale web site login page. You must be a registered user to download the software. There is a link right on that page allowing you to register if you haven’t already.
- Once you’ve entered your ID and password, you will be presented with a copy of the software license agreement. Please review it carefully before clicking the “I Accept” button. The good news is this: Freescale is making this software freely available for use in any product containing an Xtrinsic brand magnetometer. There is no license fee, there are no royalties.
- Assuming you have accepted, follow the usual procedure to download the software onto your hard drive.The software is in the form of a zip file containing:
- A single C source file (main.c)
- Freescale User’s Guide entitled “Implementing a Tilt-Compensated eCompass with Magnetic Calibration”.
The basic dataflow of the algorithm is illustrated in the block diagram below. The software contains source for each of the blocks shown.
The main.c file includes the entire application, and is designed to operate as a “console” application which should be compatible with just about any C compiler. The accompanying user guide goes through the source in a detailed fashion, and clearly explains how to adapt the code for your environment. The application is designed to operate out of the box with simulated data. You need to replace the console I/O functions with a call to your I2C driver function to operate with real data.There are options allowing you to build a model for hard iron compensation only (the four element model) or for many cases involving soft iron issues (the 7 element model). The generated soft iron matrix is limited to scale factors distributed along the diagonal of the soft iron matrix (see my earlier posts listed in references below). In general, you want to use the simplest model that works for your product. Should your soft iron problems exceed the capabilities of the 4 and 7 element models, Freescale has a more complicated model which supports off-diagonal elements in the soft iron matrix. Please contact your Freescale representative for details.
- Xtrinsic pressure sensor/altimeter Part 1, Part 2 and Part 3
- Hard and soft iron magnetic compensation explained
- Freescale Magnetic Sensorspage
- Freescale AN3461: Tilt Sensing Using Linear Accelerometers
- Freescale AN4246: Calibrating an eCompass in the Presence of Hard and Soft-Iron Interference
- Freescale AN4247: Layout Recommendations for PCBs Using a Magnetometer Sensor
- Freescale AN4248: Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer
- Freescale AN4249: Accuracy of Angle Estimation in eCompass and 3-D Pointer Applications