Skip to content

Releases: sparkfun/SparkFun_ICM-20948_ArduinoLibrary

Version 1.3.0

11 Nov 09:22
9caa80c
Compare
Choose a tag to compare

This release:

  • Resolves issue #150 - thank you @dobodu for reporting
    • Previously the DATA_RDY_STATUS and MOTION_EVENT_CTL bits were always being set for ACCEL, GYRO and COMPASS
    • In v1.3.0, they are only set if the Android Sensor requires them

Version 1.2.13

15 Aug 09:02
168c18b
Compare
Choose a tag to compare

This release:

  • Corrects the Euler (Tait Bryan) angles in the DMP quaternion examples - thank you @Gord1 #145

Version 1.2.12

18 Jun 07:31
9a10c51
Compare
Choose a tag to compare

This release:

Version 1.2.11

12 Jan 10:10
f0b90f4
Compare
Choose a tag to compare

This release:

Version 1.2.10

14 Nov 13:18
fd948fb
Compare
Choose a tag to compare

This release:

  • Adds new methods to get and set the DMP biases
    • Thank you @ThreadOfFate #105
    • The methods are: getBiasGyroX , getBiasAccelY , setBiasCPassZ etc
  • Adds a new example showing how to use the new methods and save/restore the biases
    • The example uses EEPROM to store the biases
    • It is written for ESP32 but can be adapted to work on many other platforms. You may need to change EEPROM.begin , EEPROM.commit etc.
    • If the EEPROM biases are valid, they are restored after the DMP has been begun
    • The biases are saved to EEPROM after two minutes
    • In those two minutes: rotate the sensor slowly around all three axes; hold the sensor stationary in all six orientations for a few seconds
    • When the example starts, the roll, pitch and yaw will start at zero but will settle to the correct values over the next ~ten seconds
  • Don't forget to uncomment line 29 (#define ICM_20948_USE_DMP) in ICM_20948_C.h to enable support for the DMP

Version 1.2.9

09 Dec 11:38
d5ae1eb
Compare
Choose a tag to compare

This release:

  • Adds a fix for issue #8 (seen on Teensy + SPI)
  • Adds extra checking and diagnostics (needed to pin down issue #8)
  • Fixes some old compiler warnings

Version 1.2.8

15 Nov 11:13
74d9c1e
Compare
Choose a tag to compare

This release:

  • Adds a fix to allow the DMP image 'pgmspace' to compile correctly on Apollo3 v2 (Artemis)
  • Updates the Portable C example - add ICM_20948_init_struct - thank you @peterleif #72
  • Adds a fix to allow the code to compile on linux targets - thank you @spacecheese #79
  • Removes a redundant duplicate endTransmission from the Portable C example - thank you @Koepel #80

Version 1.2.7

29 May 09:06
486fdbf
Compare
Choose a tag to compare

This release:

  • Adds DMP PROGMEM support for older AVR platforms like the ATmega2560 - thank you @HyperKokichi #63
    • Tested on the Arduino ATmega2560 R3 using SPI (CS is pin 53)
    • Please note: the Arduino Uno does not have enough PROGMEM to hold the DMP firmware (14kBytes)
    • Please be careful when using 5V boards like the ATmega2560. The SparkFun ICM-20948 Breakout will work OK on both SPI and I2C when powered from 5V. But take care not to connect a 3.3V device to the Qwiic (I2C) bus at the same time. Bad things will happen if you do.

Version 1.2.6

27 May 12:15
d0b72df
Compare
Choose a tag to compare

This release:

  • Corrects an error where the accel and gyro were being left in low power mode, which was preventing the DMP from operating correctly
  • Changes _printDebug from boolean to bool - thank you @lwestfall #62
  • Removes the references to Accuracy in the Quat6 examples (only Quat9 provides accuracy data)

Version 1.2.5

26 Apr 08:18
8341270
Compare
Choose a tag to compare

This release:

  • Corrects a typo in the comments for the gyro DLPF
  • Changes the whitespace tab formatting to spaces:2
  • Configures I2C_SLV0 and I2C_SLV1 to read the magnetometer data and request a new Single Measurement
  • Changes which AK09916 registers are read (ten undocumented registers starting at 0x03 - as per the InvenSense Icm20948AuxCompassAkm.c)
  • Configures the I2C Master ODR to reduce the magnetometer read rate from 1100Hz to a sensible 69Hz
  • Moves all of the DMP initialization code into a new weak function called initializeDMP
    • This avoids massive code duplication in the DMP examples
    • initializeDMP is weak and can be overwritten if (e.g.) you want to change the sample rate. See Example10