Skip to content
(Affordable) Ultimate Sensor Fusion Solution
Branch: master
Clone or download
Latest commit 0918573 Jan 25, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
EM7180_LSM6DSM_LIS2MDL_LPS22HB Update Jan 25, 2019
EM7180_LSM6DSM_LIS2MDL_LPS22HB_Butterfly Fixed register address names for LIS2MDL_OFFSET Jul 11, 2018
WarmStart Update EM7180_MPU9250_BMP280_M24512DFC_WS Sep 27, 2016
WarmStartandAccelCal Update EM71280_MPU9250_BMP280_M24512DFC_WS_Acc_Cal.ino Sep 27, 2016
EM7180_BMI160_AK8963C.ino Rename EM72180_BMI160_AK8963C.ino to EM7180_BMI160_AK8963C.ino Sep 27, 2016
EM7180_BMX055_MS5637_BasicAHRS_t3.ino Update EM7180_BMX055_MS5637_BasicAHRS_t3.ino Jan 30, 2016
EM7180_LSM9DS0_LPS25H.ino Update EM7180_LSM9DS0_LPS25H.ino Jan 30, 2016
EM7180_MPU6500_AK8963C_BMP280.ino Update EM7180_MPU6500_AK8963C_BMP280.ino Jan 30, 2016
EM7180_MPU9250_BMP280.ino Rename files to comply with arduino IDE naming convention Feb 19, 2018
EM7180_MPU9250_MS5637.ino Update EM7180_MPU9250_MS5637.ino Sep 27, 2016
FirmwareUpload.ino Update FirmwareUpload.ino Jun 14, 2015
quaternionFilters.ino Create quaternionFilters.ino Dec 27, 2014


EM7180 sensor hub with Invensense's MPU9250 gyro/accelerometer with embedded Asahi Kasei AK8963C magnetometer, Measurement Specialties' MS5637 Barometer, and ST's M24512DFC I2C EEPROM on a board directly mountable onto the Teensy Cortex ARM M4 microcontroller.

There are two kinds of files in this repository.

The FirmwareUpload.ino file is a sketch that takes the firmware file xxx.fw (~22 kbyte) generated by the EM7180 SENtral Tool Kit Configuration tool and writes it to an ST Microelectronics M24512DFM/C EEPROM from an SD card. Both the SD card and the SENtral breakout board need to be connected to a microcontroller; I use the Teensy 3.1. The SENtral breakout board is connected to the Teensy 3.1 I2C port on pins 16 and 17 and the SD card reader is connected to the SPI port on pins 10-13. Once the firmware is loaded onto the EEPROM it doesn't have to be done again unless the firmware changes or is updated; the SENtral reads the firmware upon power on and gets the information it needs about the particular sensors on the board.

The other files are sketches that further configure the SENtral for either normal mode, where it manages the BMX055 or LSM9DS0 or MPU6500+AK8963C sensors as slaves providing scaled sensor output and quaternions,or pass-through mode, where the Teensy microcontroller can directly communicate with the BMX055 or LSM9DS0 or MPU6500+AK8963C motion sensors and the MS5637/BMP280 pressure sensor.

These are the three major motion sensor inputs I am planning to implement in the short term. These will allow me to test the dependence of the quality of the motion sensor input data on the resulting sensor fusion solution using the same fusion algorithms and fusion engine.

The SENtral is configurable and the firmware, including the sensor fusion algorithms, can be programmed by the (sophisticated) user. It's just not easy.

Later, I will add altimetry to the sensor fusion algorithm as well as some other refinements. This is a great platform for testing sensor fusion algorithms and new motion sensors.

This project is a work in progress...

You can’t perform that action at this time.