Page 25 7.10 states Logic conditions for communication.
Page 26 7.11 states that there is a "Master" and "PassThrough" mode.
Page 28 7.13 states there is an "interface bypass multiplexer to get to a third party external compass sensor which my module has.
Can some one please explain to me how on Page 38 section 10 ; how to set the conditions required to set the slave mode AND sniff for the addresses my module actually uses.
page 15 section 6.4 states two I2c addresses AD0 = 0, 1101000 AD1 = 1, 1101001 is this useful?
page 15 section 6.4 states two I2c addresses AD0 = 0, 1101000 AD1 = 1, 1101001 is this useful?
Not at all. You must have missed the two sentences preceding what you presented. The device address depends upon the state of the AD0 pin. One can deduce that AD0 is low because there was an I2C device found at 0x68 which is the MPU6050. All normal there.
But, it looks like your 5883 has a different address as you found, perhaps it’s a different device manufacturer. Not sure if there is anything conclusive in this: wrong i2c address - Raspberry Pi Forums
Based on the different device, I’d say your test sketch needs some mods. Ah, the joys of buying cheap clones with no datasheets.
I understand now that the ADO pin voltage is basically the on off switch to the slave communications circuit and the binary addresses provided allows me to manipulate the slave circuits state.
I get what they have done now. The MPU6050 is a slave to the Arduino processor and master for the sensors it is attached to, the bypass mode is really only there for high speed direct manipulation for more demanding applications.
Looks like I got overwhelmed with all the information and I guess I had to ask some one else to, well.. state the obvious. I'm lucky we have guys like you on this forum for this reason, thank you wattsthat for your help.
I know 0x77 is the barometer and I get the correct readouts using the adafruit library, 0x68 is the MPU6050 and works via tockns library.
You are right The last component is different to a gy-87. The IC is a DA 5883 7005. Obviously I will have to track down what it is and what it does and how to address it correctly.
I am facing the same problem of skjalal149 .
I am getting just 2 addresses :
Scanning... I2C device found at address 0x68 ! I2C device found at address 0x77 ! done
and I am also using HW-290
My code is :
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++) //can use 248
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}
else if (error == 4)
{
Serial.print("Unknown error at address 0x");
if (address < 16)
{
Serial.print("0");
}
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}