problema con il sensore CMPS03

sto provando questo sensore che dovrebbe funzionare come una bussola…
il problema è che va per un po’, qualche secondo, e poi si blocca e per farlo ripartire devo resettare l’arduino…
il circuito l’ho montato così: http://www.robot-electronics.co.uk/htm/arduino_examples.htm#CMPS03 Magnetic Compass
mentre questo è il programma:

#include <Wire.h>
#define address 0x60 //defines address of compass

void setup(){
  Wire.begin(); //conects I2C
  Serial.begin(9600);
}

void loop(){
  byte highByte;
  byte lowByte;
  
   Wire.beginTransmission(address);      //starts communication with cmps03
   Wire.send(2);                         //Sends the register we wish to read
   Wire.endTransmission();

   Wire.requestFrom(address, 2);        //requests high byte
   while(Wire.available() < 2);         //while there is a byte to receive
   highByte = Wire.receive();           //reads the byte as an integer
   lowByte = Wire.receive();
   int bearing = ((highByte<<8)+lowByte)/10; 
   
   Serial.println(bearing);
   delay(100);
}

c’è qualcuno che può aiutarmi? secondo voi quale potrebbe essere il problema??

se mettu le resistenzze di pull-up esterne, devi disattivare quelle interne.

nella cartella di arduino ->libraries->Wire->utility apri il file twi.c

e commenta le righe

#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
    // activate internal pull-ups for twi
    // as per note from atmega8 manual pg167
    sbi(PORTC, 4);
    sbi(PORTC, 5);
  #else
    // activate internal pull-ups for twi
    // as per note from atmega128 manual pg204
    sbi(PORTD, 0);
    sbi(PORTD, 1);
  #endif

ho appena provato ma continua a bloccarsi :~ forse è un problema del programma perchè va per un po' e poi si ferma :0

adesso sembra che vada… ma non ho cambiato niente… non so perchè non andava prima… mistero…