Closed sidewaiise closed 2 years ago
you can try 0x68 than 0x69. I can correctly get the the whoami to be 234 . (but not every time) However I still got error of -3 later.
I looked into ICM-20948 datasheet and the working voltage for I2C is 1.8V while my arduino board is 3.3V. I'm not sure whether this is the cause of not.
If you're using the Sparkfun Breakout, it comes with built-in level shifters, so it should be able to handle "anywhere from 1.8V to 5.5V". See the full description here: https://learn.sparkfun.com/tutorials/sparkfun-9dof-imu-icm-20948-breakout-hookup-guide
I'm getting the exact same error as @sidewaiise above - were you ever able to resolve this issue?
@molecule We didn't get it working with the sparkfun port.
We ended up trying the TDK library. A problem we found, was that the DMP image / data size was 16kb. 16kb per sample @ 200hz is far too large for i2c. For this reason, TDK recommends only using over SPI which allows for much larger bandwidth.
We are communicating with the vendor on the bitrate issue over I2C. In theory you should be able to send only the block of DMP data you need back over I2c, but we had trouble interpreting the best method to achieve this.
Will update you if we hear anything back soon.
Major thanks! What's the "TDK library"?
So tdk have a specific library for this sensor. Register as a developer on the tdk website and go to their developer portal. Under downloads youll find there are a few libs. I forget the right one to use but i think its motion sense or one of the other ones. If you have trouble, ping me and ill try to point you in the right direction.
Im actually going to sleep, but working on firmware that implements the driver tomorrow.
On Fri, 7 Aug 2020 at 8:02 am, Molly notifications@github.com wrote:
Major thanks! What's the "TDK library"?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ericalbers/ICM20948_DMP_Arduino/issues/5#issuecomment-670213471, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGZU3EM34QUBZFN5SAQOZTR7MR67ANCNFSM4MR4JUJQ .
using the Sparkfun ARtemis OLA (with AK099916 compass) and getting the following output:
SELECTED AD0 on DEVICE 2 Pin 27 whoami = 255 dmp image size = 14301 init got -3
seems like similar issue(s) to those mentioned above @sidewaiise . Anyone find solutions?
p.s. thanks for the code @ericalbers !
Thanks all, ended up resolving this.
I've got a sparkfun breakout board to test the ICM20948. The example code from SF works well - I get a dump of accelerometer data.
Despite the data coming through just fine, I'm actually looking at the sensor because of it's DMP features.
I'm building and uploading the example project to an Arduino Due, and I'd like to get a DMP output somehow. When I run your example code, i get the following output:
and it just keeps going like this. Looking through the code, it seems that this init return code means there was a transmission error.
The pin hookup I've got is as follows:
DUE || Breakout
p20 -> SDA p21 -> SCL p25 -> AD0 5V -> VIN GND -> GND
Can you offer any advice on how to resolve this problem?