I am trying to find out what example code I can use with the Xadow IMU 6DOF. You built your library for this module on top of the i2cdevlib code at github. Other examples using this library require the use of an interrupt. Specifically, it is required that the MPU’s INT pin is connected to the ATmega32U4’s Pin 19 (which is Digital Pin 2/SDA on an Arduino Leonardo).
It is very confusing to figure out whether this is possible on the Xadow.
I looked at the eagle files of the the Xadow main board and the Xadow IMU. To me, it looks like on the Xadow, the Pin 19 of the ATmega is connected to PD1/SDA/D2 and line 10 on the FPC interface, and then SDA on the MPU6050.
The INT of the MPU, however, seems not connected to the bus. Is that correct? If yes, does this mean that there is no way to use interrupts with the combination of Xadow main board and Xadow IMU?
I did some more research, and now it looks to me like this:
Some software, for instance the Examples/MPU6050_DMP6/MPU6050_DMP6.ino from the ic2devlib on github, require the MPU-6050’s INT PIN to be connected. On an UNO, this seems typically done by connecting INT to Digital 2 (PD2 (PCINT18/INT0)). Further, on the UNO the SCL is handled by Analog5 (PC5 (ADC5/SCL/PCINT13)) and SDA by Analog4 (PC4 (ADC4/SDA/PCINT12)).
The connections of the Atmega 32U4 on Leonardo and Xadow’s main board differ. The Leonardo connects SCL to a Digital Pin 3 (and also a dedicated SCL), which is connected to (OC0B/SCL/INT0) PD0. SDA is on Digital Pin 2, connected to (SDA/INT1) PD1. From the schematics of the Xadow 6DOF IMU, I understand you followed this scheme.
So, INT 0 cannot be used anymore as in the UNO. But there are other interrupt pins on the 32U4. The Leonardo lists 3 possible interrupt pins: 1. Digital 0 (interrupt 2), 2. Digital 1 (interrupt 3), and 3. Digital 7 (interrupt 4). Number 1 and 2 are also linked to the interface on the Xadow. If I understand the schematics, Xadow Pin 11 is connected to (RX D1/AIN1/INT2) PD2, Interrupt 2, and Xadow Pin 12 is connected to (TXD1/INT3) PD3, Interrupt 3. However, the MPU’s INT is NOT connected, only brought out.
Now my questions: I assume I can change the interrupts in the Examples/MPU6050_DMP6/MPU6050_DMP6.ino to Interrupts 2 and 3. If so, I could connect the MPU’s INT to Xadow Pins 11 or 12, perhaps with the help of a breakout. Then I could use the MPU’s interrupt. Does that make sense? Have you tried this before?
never mind, I figured it out. It is indeed possible to connect the INT of the Xadow MPU 6050 component to the RX line via a breakout board, and then use the software published by ic2devlib that relies on the interrupt. I still have trouble understanding the offsets for the gyro though.