/EM7180

Cross-platform C++ and Python libraries for the EM7180 SENtral sensor hub

Primary LanguageC++GNU General Public License v3.0GPL-3.0

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 STM32L4 board from Tlera Corp

  • Teensy 3.2, 3.6, 4.0

  • Raspberry Pi 3 (C++, Python)

  • NVIDIA Jetson TX1 (C++)

  • PYBV1.0 : thanks to [https://github.com/JonHylands](Jon Hylands) 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.) sketch

Python on Raspberry Pi

To try the library out in Python, cd to the extras/python folder and do python3 mastertest.py. To install the library for access from other directories, do sudo python3 setup.py 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.