Skip to content
Cross-platform libraries for the EM7180 Ultimate Sensor Fusion Solution
C++ Python Makefile C
Branch: master
Clone or download
Latest commit a635555 Oct 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples EM7180 => USFS Oct 19, 2019
extras EM7180 => USFS Oct 19, 2019
src EM7180 => USFS Oct 19, 2019
.gitignore EM7180 => USFS Oct 19, 2019 =Cleanup Oct 19, 2019
keywords.txt EM7180 => USFS Oct 19, 2019 EM7180 => USFS Oct 19, 2019
sentral2.png Added image of LSM6DSM + LIS2MD Sep 4, 2018

This repository contains Arduino, Python (MicroPython, WiringPi), and Linux i2cdev libraries and examples for working with the incredible EM7180 Ultimate Sensor Fusion Solution boards (both the MPU9250 version and the LSM6DSM + LIS2MD version) from Pesky Products.

To use this library with C++ you will also need my cross-platform support library.

The library has been tested on the following hardware:

  • Ladybug and Butterfly STM32L4 boards from Tlera Corp

  • Teensy 3.2, 3.6, 4.0

  • Raspberry Pi 3 (C++, Python)

  • NVIDIA Jetson TX1 (C++)

  • PYBV1.0 : thanks to JonHylands for the MicroPython support

The library provides two classes for working with the EM7180 SENtral sensor hub on this board:

  • An EM7180 class providing a convenient API for the full functionality of the EM7180 unit

  • An EM7180_Master class that runs the EM7180 in master mode, for simple access to the sensor-fusion features

The examples directory contains sketches showing how to use these two classes. As usual, just clone the repo into your Arduino libraries folder to get started. The class library and examples were adapted from Kris Winer's repository. I strongly recommend reading Kris's wiki for a comprehensive overview of the EM7180 and other sensor-fusion solutions, and for instructions on how to calibrate the EM7180 before you start using it. (You can use my version of the calibration sketch.)

Python on Raspberry Pi

To try the library out in Python, cd to the extras/python folder and do python3 To install the library for access from other directories, do sudo python3 install.

C++ on Raspberry Pi, NVIDIA Jetston

RaspberryPi users should download and install WiringPi, then cd to extras/wiringpi, and run make to build the examples. You may have to run the example as root: sudo ./MasterTest.

Users of NVIDIA Jetson and other Linux-based boards should install I2C support by running the command:

  sudo apt-get install libi2c-dev i2c-tools

You can then can cd to extras/i2cdev, and run make. You may have to run the example as root: sudo ./MasterTest.

An asynchronous version of this library is also available for Teensy 3.5.

You can’t perform that action at this time.