Ultra-high-accuracy, ultra-low-power absolute orientation estimation moduleDesigned by Pesky Products in United States of America
Ultimate Sensor Fusion Solution with MAX32660 motion co-processor It's just easier to say USFSMAX! See here for technical details on proper usage. What's new about this USFSMAX variant? This redesi...Read More…
It's just easier to say USFSMAX!
See here for technical details on proper usage.
This redesign of our original USFSMAX breakout board into module and carrier board components serves two purposes. It allows soldering of headers to the carrier board without the degradation (from superb to pretty good) in calibration accuracy we have seen in the integrated breakout due to heating. It also allows easy insertion of the USFSMAX module into custom mother boards via the Molex SlimStack connectors (503548-0622 for the module, 503552-0622 for the carrier) that connect the module with its carrier board.
The idea is to test the performance of the module on its carrier board in your application, either on a breadboard or some rapid prototype assembly of your choice. Then, when you have confirmed the superb performance of the USFSMAX module and determined that this solution will work for your application, design receiving connectors into your custom pcb and simply plug in the USFSMAX module; your motherboard becomes the USFSMAX module carrier board!
We have also replaced the LIS2MDL with MEMSIC's MMC5983MA magnetometer. Both use magnetoresistance instead of Hall sensing so the data from both are less temperature dependent than Hall sensor data. But the MMC5983MA has an ultra low noise figure of just 0.4 mGauss compared to 3 mGauss for the LIS2MDL. Also, the MMC5983MA has a full-scale range of only +/-8 Gauss and offers 18-bit data resolution compared to the +/-48 Gauss full-scale range and 16-bit data resolution of the LIS2MDL. The ~8x reduction in jitter makes the extra 24x improvement in resolution meaningful, and we have seen ~2x improvement in heading accuracy in our limited testing to date.
We have implemented a sleep mode with current usage of only 10 uA. The module can be put to sleep and woken up via the WAKE pin on the module. In run mode, the module uses 15 mA, about 5 mA more than the original breakout board due to the higher current consumption of the MMC5983MA. There is no free lunch; in this case, better accuracy via lower noise and higher resolution costs more power.
Anyone who needs to track dynamic angle changes in wrists, elbows, or other joints for ergonometrics or sports analytics, anyone attempting dead reckoning for filling GNSS gaps in moving vehicles, and anyone measuring vehicle or machine part inclinations and orientations, to name just a few use cases. But let's face it, even the best bench performance will suffer when placed on a person, robot or animal, or in a vehicle (boat, plane, rocket, UAV, etc), or anywhere else that operates in a real-world environment. Noise, stray fields, mechanical vibrations, etc will degrade the performance of any absolute orientation solution. Why not start with the best bench performance available at this size and price? Even if the real world doubles or triples the error, your heading will still be accurate to ~1 degree or better!
This is a small (12.8 mm x 12.9 mm) module on carrier board for the MAX32660 motion co-processor managing the LSM6DSM 3-axis combination accelerometer/gyro, the MMC5983MA 3-axis magnetometer, and the LPS22HB barometer. The MAX32660 communicates with and manages the sensors over a master I2C bus. The MAX32660 is an I2C slave to the MCU host with scaled sensor data, quaternions, Euler angles, gravity, and linear acceleration available to the host via simple I2C registers reads.
The boards come precalibrated with accel, gyro, and mag calibration values stored in emulated EEPROM, which are read by the MAX32660 on power up. Some calibrations can be updated by the MAX32660 upon commands from the host. For example, gyro calibration can be requested at any time by the host via a simple I2C command.
The sketch for the host requires that you input your magnetic declination (found here, for example) and, in some cases, vertical magnetic field strength for best accuracy. There is more discussion at the github repository on calibration and use.
The magnetometer calibration includes both soft iron and hard iron corrections and each board will deliver better than 0.5 degree rms heading accuracy (0.3 rms degree heading accuracy is typical) with no further user calibration. However, we know that local magnetic fields in the home or when the device is mounted in or on a vehicle (car, plane, etc) can induce additional sources of hard iron offsets so we have incorporated a dynamic hard iron corrector into the MAX32660 fusion algorithms that compensates for environmental hard iron offsets during regular motion of the sensor in the environment. This compensation isn't perfect, but it allows excellent heading accuracy to be maintained even in challenging magnetic environments.
The production boards use the 0.4-mm-pitch, 3 mm x 3 mm MAX32660GTG+ TQFN-24 package, which makes pcb production somewhat easier and more reliable than the alternative 0.35-mm-pitch 1.5 mm x 1.5 mm MAX32660GWE+ WLP-16 "flip chip" variant.
The MAX32660 motion co-processor in combination with the ST sensor suite typically achieves 0.3 degree rms heading accuracy with proper calibration. This is about 5x better than the EM7180 using the same ST sensor suite and better than any other device costing less than ten times the price!
We have been using EM Microelectronic's EM7180 motion co-processor for absolute orientation estimation with some success. The EM7180 embeds a 10 MHz ARC processor with single-precision floating point unit (FPU) optimized for fast fusion calculations using algorithms developed by PNI Corporation. The EM7180 off-loads the management of the sensors and the computationally-intensive fusion calculations from the host MCU so that accurate absolute orientation estimation in the form of quaternions or Euler angles can be read from the EM7180 by the host via simple I2C register reads. This means even a poky 8 MHz Arduino Pro Mini can obtain <2-degree accurate heading data when using the EM7180 co-processor and a suitably accurate sensor suite like the MPU9250 or LSM6DSM+LIS2MDL.
The advantages of using the EM7180 as motion co-processor include small size (1.6 mm x 1.6 mm WLCSP-16), auto gyro and magnetometer calibration, simple I2C serial output, and ultra-low-power usage. Quaternions can be updated at the rate of the gyro (up to 400 Hz guaranteed), and there is some flexibility in the form of generic user registers, fusion tuning parameters, and the ability to make use of RAM patches to allow some customization of the fusion algorithms. There is a warm start capability that allows the EM7180 to start with the last session's calibration parameters upon subsequent power up.
Disadvantages of using the EM7180 include the fixed, "black-box" nature of PNI Corp.'s algorithms stored in ROM, the need to load the sensor-specific firmware into RAM on each power up, the very small amount of free RAM that limits customization, behaviors of the fusion algorithm (especially the dynamic magnetometer calibration) that cannot be adjusted or turned off. While the EM7180 is sensor agnostic, meaning it can use the input of almost any I2C accelerometer, gyro, and magnetometer to produce fused quaternions, the drivers for the sensors have to be created and compiled using a deprecated compiler. The ~24 kBytes of compiled firmware have to be stored on an EEPROM for loading into the EM7180 RAM on each power up, or loaded from the host. Lastly, the EM7180 is designed to manage I2C sensors so that devices with SPI or UART serial interfaces cannot be used directly and require a translator.
With the announcement of MAXIM Integrated's ultra-small DARWIN family of MCUs, especially the MAX32660, we had an opportunity to design a motion co-processor that offers all of the advantages of the EM7180 with few, if any, of the disadvantages.
The MAX32660 has 256 kBytes of flash, 96 kBytes of SRAM, runs at 96 MHz and uses a Cortex M4F architecture, meaning it has four channels of fast DMA, two hardware I2C busses (one for host and one for slave sensors) that support 3.4 MHz bus speeds, 16 kB of instruction cacheing, and a single-precision floating point unit. We have been able to obtain quaternion updates at the rate of the gyro (1666 Hz) with this kind of horsepower.
There is plenty of memory to hold firmware which resides in flash and doesn't need to be loaded into the MAX32660 at each power up. Programming is via SWD port using standard tools like Eclipse, MBED, or GCC. We can hold warm start parameters in emulated 2 KByte EEPROM to reduce the need for calibration on each use.
We use our own computationally-efficient fusion algorithms to produce better heading accuracy (typically 0.3 degree rms when the sensors are properly calibrated) than we can currently obtain using the EM7180 + ST sensors. And, we can achieve faster fusion rates when needed at lower overall power usage, without the need of an external EEPROM.
Using the MAX32660 as co-processor allows us to match the size and power-usage advantages of the EM7180-based solutions with better heading accuracy while avoiding the limited memory, obsolete compiler, and non-transparency disadvantages.
About 5x better rms heading accuracy (typically 0.3 degree rms with proper calibration) than can be achieved using the EM7180 with the same ST sensors suite!
Comes pre-calibrated so you get accurate absolute orientation estimation right out of the box!
Better absolute heading accuracy than can be achieved by any other device costing less than ten times the price!
This small, low-power breakout board allows anyone to obtain superbly accurate absolute orientation estimation with even the pokiest host MCU.
Order some pcbs for the module or carrier board from OSH Park and assemble some of your own. Or order the fully assembled, calibrated, and tested module + carrier board from us and see how easy superbly accurate heading estimation can be!
No country selected, please select your country to see shipping options.
No rates are available for shipping to .
Enter your email address if you'd like to be notified when USFSMAX Module and Carrier can be shipped to you:
Thanks! We'll let you know when the seller adds shipping rates for your country.
|Shipping Rate||Tracked||Ships From||First Item||Additional Items|
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!