pimoroni / icm20948-python

Python library for the Pimoroni ICM20948 breakout
https://shop.pimoroni.com/products/icm20948
MIT License
48 stars 22 forks source link

Add support for FIFO for accelerometer and gyroscope data #21

Open finnboeger opened 1 year ago

finnboeger commented 1 year ago

This adds support for using the FIFO queue to store the values measured by the accelerometer and the gyroscope and to read back that data quickly.

It is based on the code from https://github.com/wollewald/ICM20948_WE but includes a small improvement to extract the data faster.

Using the FIFO it is possible to sample data continuously at the maximum sample rate without dropping a single measurement by

  1. stopping the sampling
  2. getting the number of entries in the queue
  3. restarting the sampling
  4. reading from the queue.

When sampling both the accelerometer and the gyroscope, the order is always accelerometer data first, then gyroscope data, assuming the same sample rate. Using this code with a different sample rate for the accelerometer and gyroscope is untested behavior.

Gadgetoid commented 1 year ago

Sorry for the radio silence- this looks interesting, thank you!

I don't know when we'll get around to reviewing & merging, but we're starting to build a bit more process around that.

In the interim, if anyone's driving by here and gives this code a try then feedback would be appreciated!