Giter Site home page Giter Site logo

adafruit_icm20x's Introduction

Adafruit ICM20X Build StatusDocumentation

This is the Adafruit ICM20X Arduino Library for use with the TDK Invensense ICM20649 and ICM20948 motion sensors.

Tested and works great with the following Adafruit ICM20X Family Breakout Boards:

Compatible sensor breakouts available in the Adafruit store:

Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

Installation

To install, use the Arduino Library Manager and search for "Adafruit ICM20X" and install the library.

Dependencies

Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

Documentation and doxygen

Documentation is produced by doxygen. Contributions should include documentation for any new code added.

Some examples of how to use doxygen can be found in these guide pages:

https://learn.adafruit.com/the-well-automated-arduino-library/doxygen

https://learn.adafruit.com/the-well-automated-arduino-library/doxygen-tips

Formatting and clang-format

This library uses clang-format to standardize the formatting of .cpp and .h files. Contributions should be formatted using clang-format:

The -i flag will make the changes to the file.

clang-format -i *.cpp *.h

If you prefer to make the changes yourself, running clang-format without the -i flag will print out a formatted version of the file. You can save this to a file and diff it against the original to see the changes.

Note that the formatting output by clang-format is what the automated formatting checker will expect. Any diffs from this formatting will result in a failed build until they are addressed. Using the -i flag is highly recommended.

clang-format resources

About this Driver

Written by Bryan Siepert for Adafruit Industries. BSD license, check license.txt for more information All text above must be included in any redistribution

adafruit_icm20x's People

Contributors

davidhaitch avatar evaherrada avatar hathach avatar joshcorn avatar ladyada avatar paintyourdragon avatar rpavlik avatar siddacious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adafruit_icm20x's Issues

Re-initialization of the sensor causing heap memory growth

I'm using this Adafruit sensor and library for a sensor node development.
One of the requirements is for the node to have extensive battery life, and I am optimizing battery life by using watchdog.sleep on the micro-controller, as well as cutting power to the sensors.
As a result, I have to re-initialize the sensor every time it wakes up. My problem is that the initialization appears to be cause memory leak, and the heap stack is growing. Eventually, there is no more free memory available and the node crashes.
I have other sensors that do not cause loss of free memory due to re-initialization.
Is there anything that can be done in the initialization code. My code is based of adafruit_icm20948_test example code provided.

FIFO functionality

I can't find any usage of the FIFO Buffer of the ICM in your Code.
Is it not implemented as function? Are there plans to add that?

ICM-20648

Is there a possibility to use this library with the ICM-20648?

Does not work with Teensy 4.0

Just in case other users encounter the same problem, icm.beginSPI(cs_pin) works with Teensy 4.0, but not icm.beginSPI(cs_pin, sck_pin, etc). I suspect it's due to how the library tries to use port registers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.