Adafruit BNO055 library for SparkCore?

very nice, this works for my Particle Core now. I can see data from spark.publish() in particle dashboard. But from time to time the core goes offline (repeating every 10-15 seconds) and come back online some seconds later. I tried to wire the sensore to vin and 3.3v and set the spark.publish() delay from 500 to 1000ms - no difference. Any suggestions why this happens? Also I dont get the serial prints (115200 baud) in serial monitor. Here the .ino file im using:

// This #include statement was automatically added by the Particle IDE.
#include "Adafruit_BNO055.h"

// This #include statement was automatically added by the Particle IDE.
#include "Adafruit_Sensor.h"

//#include "Wire.h"
#include "imumaths.h"

/* This driver uses the Adafruit unified sensor library (Adafruit_Sensor),
   which provides a common 'type' for sensor data and some helper functions.

   To use this driver you will also need to download the Adafruit_Sensor
   library and include it in your libraries folder.

   You should also assign a unique ID to this sensor for use with
   the Adafruit Sensor API so that you can identify this particular
   sensor in any data logs, etc.  To assign a unique ID, simply
   provide an appropriate value in the constructor below (12345
   is used by default in this example).

   Connections
   ===========
   Connect SCL to analog 5
   Connect SDA to analog 4
   Connect VDD to 3.3-5V DC
   Connect GROUND to common ground

   History
   =======
   2015/MAR/03  - First release (KTOWN)
*/

/* Set the delay between fresh samples */
#define BNO055_SAMPLERATE_DELAY_MS (100)

Adafruit_BNO055 bno = Adafruit_BNO055(55);

/**************************************************************************/
/*
    Displays some basic information on this sensor from the unified
    sensor API sensor_t type (see Adafruit_Sensor for more information)
*/
/**************************************************************************/
void displaySensorDetails(void)
{
  sensor_t sensor;
  bno.getSensor(&sensor);
  Serial.println("------------------------------------");
  Serial.print  ("Sensor:       "); Serial.println(sensor.name);
  Serial.print  ("Driver Ver:   "); Serial.println(sensor.version);
  Serial.print  ("Unique ID:    "); Serial.println(sensor.sensor_id);
  Serial.print  ("Max Value:    "); Serial.print(sensor.max_value); Serial.println(" xxx");
  Serial.print  ("Min Value:    "); Serial.print(sensor.min_value); Serial.println(" xxx");
  Serial.print  ("Resolution:   "); Serial.print(sensor.resolution); Serial.println(" xxx");
  Serial.println("------------------------------------");
  Serial.println("");
  delay(500);
}

/**************************************************************************/
/*
    Arduino setup function (automatically called at startup)
*/
/**************************************************************************/
void setup(void)
{
  Serial.begin(115200);

  Serial.println("Orientation Sensor Test"); Serial.println("");
  /* Initialise the sensor */
  if(!bno.begin()) {
    // Spark.publish("debug","Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
    Spark.publish("debug","Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
    /* There was a problem detecting the BNO055 ... check your connections */
    while(1);
  }

  delay(1000);

  /* Display some basic information on this sensor */
  displaySensorDetails();
}


char buffer[100];
/**************************************************************************/
/*
    Arduino loop function, called once 'setup' is complete (your own code
    should go here)
*/
/**************************************************************************/
void loop(void)
{
  /* Get a new sensor event */
  sensors_event_t event;
  bno.getEvent(&event);

  /* Board layout:
         +----------+
         |         *| RST   PITCH  ROLL  HEADING
     ADR |*        *| SCL
     INT |*        *| SDA     ^            /->
     PS1 |*        *| GND     |            |
     PS0 |*        *| 3VO     Y    Z-->    \-X
         |         *| VIN
         +----------+
  */

  /* The processing sketch expects data as roll, pitch, heading */
  sprintf(buffer,"Orientation: %f %f %f", (float)event.orientation.x, (float)event.orientation.y, (float)event.orientation.z);
  Spark.publish("debug",buffer);

  /* Also send calibration data for each sensor. */
  uint8_t sys, gyro, accel, mag = 0;
  bno.getCalibration(&sys, &gyro, &accel, &mag);

//   Serial.print(F("Calibration: "));
//   Serial.print(sys, DEC);
//   Serial.print(F(" "));
//   Serial.print(gyro, DEC);
//   Serial.print(F(" "));
//   Serial.print(accel, DEC);
//   Serial.print(F(" "));
//   Serial.println(mag, DEC);
//   Spark.publish("debug","Orientation: %f %f %f",(float)event.orientation.x,(float)event.orientation.y,(float)event.orientation.z);

//   delay(BNO055_SAMPLERATE_DELAY_MS);
     delay(1000);
}