nrf52dk cannot find max30101 breakout board over i2c

Hi, 

I am using the heart rate sample.

I have connected ground to ground, 3.3v to vdd, SDA to pin 26 and SCL to pin 27. I have 4.7k pullup resistors on SDA and SCL. When I run i2c scan i2c0 i get: 

0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:             -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
0 devices found on i2c0

When I connect everything instead to my arduino uno (identical - only moving the wires that were in the nrf52dk to the arduino),  it correctly scans something at 0x57. 

Here is main.c (should be unchanged from the heart rate sample):

/*
 * Copyright (c) 2017, NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/kernel.h>
#include <zephyr/drivers/sensor.h>
#include <stdio.h>

int main(void)
{
    struct sensor_value green;
    const struct device *const dev = DEVICE_DT_GET(DT_ALIAS(heart_rate_sensor));

    if (dev == NULL) {
        printf("Could not get heart_rate_sensor\n");
        return 0;
    }
    if (!device_is_ready(dev)) {
        printf("Device %s is not ready\n", dev->name);
        return 0;
    }

    while (1) {
        sensor_sample_fetch(dev);
        sensor_channel_get(dev, SENSOR_CHAN_GREEN, &green);

        /* Print green LED data*/
        printf("GREEN=%d\n", green.val1);

        k_sleep(K_MSEC(20));
    }
    return 0;
}

Here is my prj config:

CONFIG_STDOUT_CONSOLE=y
CONFIG_LOG=y
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_SENSOR_LOG_LEVEL_DBG=y
CONFIG_MAX30101=y
CONFIG_SHELL=y
CONFIG_I2C_SHELL=y

Here is my overlay, in a file named "nrf52dk_nrf52832.overlay": 

#include <zephyr/dt-bindings/i2c/i2c.h>

&i2c0 {
    status = "okay";
    clock-frequency = <I2C_BITRATE_STANDARD>;

    max30101: max30101@57 {
        compatible = "maxim,max30101";
        reg = <0x57>;
        status = "okay";
    };
};

/ {
    aliases {
        heart-rate-sensor = &max30101;
    };
};

Related