SmartMotion® MEMS Motion Sensors

phpbb forum ID
13263
By kingkw1 , 25 May 2018

Is it possible to perform quaternion/Euler angle calculations from only accelerometer and gyroscope readings? I'd like to be able to detect orientation for a small pcb that I have which I designed and built with ICM-20689 but without a magnetometer. I can incorporate a magnetometer into the next revision, but I'd prefer not to if I can get away without it as it costs valuable PCB real estate on a wearable device which I'm trying to make very small.

By jongordon , 24 May 2018

Hello,

I'm looking to port the ICM-20689 example from IAR to GCC but cannot at the moment as there are two pre-compiled libraries that are required.
This looks to be the only chip that doesn't have the full source available on this site.

Does anybody know if the full source is available somewhere else?
Or, failing that, besides the lower max ODR, would the ICM-20648 meet the same needs? That project is fully open.
What about the ICM-20789 example project? That appears to be fully open? Is this just the same chip but with a compass added?

By kwiley , 23 May 2018

I have 2 pieces of ICM-20649 mounted on UEVBs to work with (so I don't think I have a bad item since I have two). I can't read any accelerometer data via I2C or SPI. I can see the device on the bus with id 104, as per the docs, and if I pull AD0 high, I see the device id switch to 105 appropriately. I can also access basic registers. For example, if I read register 0 I get 0xE1 back, as per the docs. Registers 5 and 6 also return 0x40 and 0x41 correctly.

By amagond , 21 May 2018

I am using MPU9250 and reading 3 axis parameters. As per the datasheet I found that the When the device is placed on a flat surface, it will measure 0g on the X- and Y-axes and +1g on the Z-axis. But when I have placed the MPU9250 board on table and read the X,Y,Z values, they are 0xffffffad, 0x39, 0XAE. I could understand the Y axis value is closer to zero if we divide the parameter by the SENSITIVITY_SCALE_FACTOR of 2048 (65536/32 i.e. full scale reg value/ full scale g value) but the values of X and Z are not matching with the datasheet said values.

By ozil11 , 9 May 2018

Hey, I have an InvenSense ICM-20948 sensor with me and I was wondering if the DMP libraries have any support for soft-iron compensation. I have seen a function called "inv_icm20948_compass_dmp_cal()" which sets up the soft-iron matrix but how do I use this in my application code, do I just call the function "inv_device_set_sensor_mounting_matrix()" [which is basically used to call the inv_icm20948_compass_dmp_cal() function ] and pass the "s->soft_iron_matrix" as the matrix argument.

By fili92 , 9 May 2018

Hi everyone

I am currently developing my own driver using the ICM20648 invensense module that includes magnetometer AK8963C. I communicate the ICM module to the main processor through SPI, and I know that is not possible to access directly from the main processor to the magnetometer in this way and is mandatory enable the i2c master bus from ICM to communicate with the AK8963C. I had no troubles getting data from accelerometer and gyroscope, but I am not getting data from the magnetometer, my current configuration for only the magnetometer is shown below:

By burnhamd , 6 May 2018

I have implemented the MPL on the MSP430 and am getting good results for 9X fusion, however I would like to guage the accuracy of the heading. I see there is a function call for inv_get_heading_confidence_interval(), but no matter what I seem to do, the result is always 3.14. Is this function correctly implemented or is there a known bug?

By tonythelion , 3 May 2018

I'm using the ICM_20649 and I'm trying to get it to interrupt using Wake On Motion (WoM).

I'm running my software on an ARM Beaglebone Black with a version of Debian installed. I've connected my ICM device via I2C.

I want it to interrupt using WoM and also store accellerometer data in its FIFO, such that there is some history data while the host device (a beaglebone black) wakes up from sleep.