Connecting Grove - Sunlight Sensor to MKR WiFi 1010 with TCA9548A - I2C Multiplexer

Hi,

I'm quite new here and using an Arduino MKR WiFi 1010 board. I'm facing a few problems right now and I'm hoping to get any help.

I try to connect my MKR WiFi 1010 to a Grove - Sunlight Sensor this sensor needs to communicatie with my Arduino through the I2C protocol which is were my issue occurs.

One of the chips (I believe the WiFi module) is using the 0x60 I2C address. The sunlight sensor is using the same I2C address 0x60 and therefore it is impossible to receive any data from the sensor, changing the address seems impossible either.

To fix it I bought a TCA9548A - I2C Multiplexer to communicatie with the sensor. The I2C Multiplexer is by default using address 0x70. But after running a I2C scanner script (posted below) I see the following output (I would expect to see at lease address 0x70 here):


Image of my MKR WiFi 1010 connected to the I2C Multiplexer

Before connecting the multiplexer:

I2C Scanner
Scanning...
I2C device found at address 0x60  !
I2C device found at address 0x6B  !
done

After connecting the multiplexer

I2C Scanner
Scanning...
I2C device found at address 0x60  !
I2C device found at address 0x6B  !
done

I2C scanner script

// --------------------------------------
// i2c_scanner https://playground.arduino.cc/Main/I2cScanner/
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    https://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// Version 6, November 27, 2015.
//    Added waiting for the Leonardo serial communication.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#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++)
    {
        // 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
}

Solder will be an import thing to apply to those connections. Without soldered pins getting the thing to work will be wonky.

1 Like

Thanks @Idahowalker for your suggestion, this worked. Running the scanner again gave 0x70 as output as well.

1 Like

I've found exactly the same thing with I2C addresses 0x60 and 0x6B on each pin (an issue I didn't have with the MEGA2560). Any idea whether you can select a specific device on one pin of the TCA9548A? I can't get it working with the MKR WIFI 1010 and two LIS3DHs at all!

jaredzpbennett any news? I have a similar problem, how did you manage to get the MKR WIFI 1010 and two LIS3DHs to work. I suspect that maybe it is a problem between the arduino MKR WIFI 1010 and the TCA9548A multiplexer? Thanks in advance for the help!

no luck unfortunately - I couldn't get it to register multiple LIS3DHs at all...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.