EM7180 Sensor Hub coupled with the LSM6DSM + LIS2MDL IMUs provides < 2 degree heading accuracy!Designed by Pesky Products, Ships from United States of America
What are the heading accuracy limits using MEMs motion sensors? Find out here. See Greg Tomasch's latest "standard" Arduino sketches for the USFS here. Highly recommended. What is it? This is a sma...Read More…
What are the heading accuracy limits using MEMs motion sensors? Find out here.
See Greg Tomasch's latest "standard" Arduino sketches for the USFS here. Highly recommended.
This is a small (18 mm x 13 mm) breakout board for the latest ST Microelectronics' motion sensors, the LSM6DSM combination accelerometer/gyro, the LIS2MDL magnetometer, and LPS22HB barometer all managed by EM Microelectronic's EM7180 motion co-processor. The EM7180 reads the sensor data and delivers quaternions or Euler angles to the host MCU via simple I2C register reads.
The best part of having a motion co-processor is it relieves the host from having to manage the sensors and perform costly calibration and sensor fusion calculations. The EM7180 does this using the embedded PNI Corp's fusion filters on its ARC processor with FPU optimized for fast sensor fusion. Best of all, with this combination of motion sensors, the EM7180 delivers heading with two degree rms accuracy or better when the sensors are properly calibrated. Even projects that use pokey MCUs, like my beloved 8 MHz Arduino ProMini, can get accurate absolute heading, pitch and roll when using the Ultimate Sensor Fusion Solution!
There is a 64 kbyte M24512 I2C EEPROM on-board to store the configuration file and warm start parameters. The EEPROM comes preloaded with the correct configuration file for the sensors on the board. All you need to do is to connect 3V3/GND and SDA/SCL to start getting accurate yaw, pitch and roll data streaming to your serial monitor or display!
The SENtral motion co-processor sports a 10 MHz core with a floating point engine and performs like an ARM Cortex M0 processor on steroids. The SENtral can update the quaternions at the rate of the gyro at up to 400 Hz. Yet the SENtral uses less than 1% of the power of an ARM Cortex M0 doing the same sensor management and fusion tasks with better accuracy, all in a tiny 1.6 mm x 1.6 mm package. The SENtral needs a ~24 kbyte configuration file that tells it which sensors it is to manage and the orientation of their axes, and this is stored on a 64 kbyte ST M24512 I2C EEPROM on the board, leaving ~32 kbytes of space to the user for data logging and warm start parameter storage. The user may write on the 256-byte pages above and including 0x81, so that pages 0x81 - 0xFF are available for user data.
The SENtral manages the sensors as slaves, initializing them, managing their interrupts, and reading their data as input to the SENtral sensor fusion engine. There are 2K2 I2C pullups on the board and either quaternions or Euler angles may be obtained by direct I2C reads of the corresponding SENtral registers; raw and scaled sensor data, gravity, and linear acceleration (gravity removed) are also available for reading from the SENtral by the host. The SENtral also has a pass-through mode allowing the host microcontroller to communicate directly with the sensors and EEPROM.
Management of the sensors can be configured by the user via the host microcontroller. Sensor sample rates, full-scale ranges, bandwidths and quaternion rates are all configurable via I2C writes from the host program in either the pass-through or SENtral master (hardware fusion) modes. The quaternions are updated at a rate proportional to the gyro rate (via a 2^n divisor, n = 0, 1, ...) and is guaranteed up to 400 Hz but can work at even higher rates if necessary.
Having a barometer on board for altitude estimation is a nice complement to absolute orientation. We have found the LPS22HB pressure sensor to be as accurate as and less jittery than our previous favorite, the MS5637.
Accurate absolute orientation estimation is hard.
It starts with the best motion sensor data; no amount of fusion filtering can make up for jittery, drifting sensors. ST Microelectronics' latest motion sensors, the LSM6DSM and LIS2MDL, are superb. I would prefer all three sensors in the same package like the MPU9250 but even with two separate packages, the ST solution offers some great advantages. One is ultra-low power; the gyro+accel in normal mode uses just 450 uA (8x less than the MPU9250)! Also, the LIS2MDL is not a Hall sensor, rather it uses anisotropic magnetoresistance so is less affected by temperature changes, offers automatic offset bias calibration, and is more stable compared to most Hall sensors.
All sensors have to be calibrated for accurate results; the EM7180 has automatic gyro and magnetometer calibration built in. Plus the EM7180 offers magnetic anomaly detection/correction when needed. There is also a warm start capability so the sensors can start out calibrated and the fusion working at its best from power on.
Almost any accel/gyro sensor combination can provide accurate pitch and roll. Accurate heading estimation not so much. I want an absolute orientation engine that provides the most accurate heading estimation.
The EM7180 in concert with the LSM6DSM and LIS2MDL can routinely provide < 2 degree rms absolute heading accuracy with proper calibration. This is better than many orientation solutions costing ten times as much or more.
Small, easy to use, inexpensive and accurate absolute heading estimation.
The small size means it can be integrated with almost any project. Reading accurate Euler angles via I2C means any MCU can have use of accurate orientation without taxing its cycles with sensor management and fusion calculation tasks.
The hardware design is open-source, order some pcbs from OSH Park and assemble some yourself, or buy the fully assembled and tested Ultimate Sensor Fusion Solution here and see what accurate absolute heading estimation can do for your project!
Andrew | March 10, 2019
Robert | Feb. 7, 2019
Simon | Sept. 17, 2018
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!