Hello everyone,
I just deployed on my Particle Core the following code:
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// 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("Unknow 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
}
I connected D0 and D1 to 3.3V with a 4.7k pull-up resistors and I put on the I2C bus a BME280.
It boots in some seconds and than starts flashing red (10 blinks that should correspond to assertion failure). After flashing red it reboots and than goes on error again.
The very strange thing is that if I disconnect any loads on the D0 and D1 pins, I start the Core and I connect pull-up resistors and my I2C device, the Core does not crash and prints on the console the address of the BME280.
Seems a very strange situation, any suggestion on how to start the Core with I2C devices already connected?
Thanks in advance