Nano 33 IoT BNO055 I2C issues

Hi all,

I've been attempting to implement a Nano 33 IoT with a BNO055. I've got the IMU working fine, but I'm getting this error with my Wire.h library:

In file included from C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:1:0:
C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:9:36: error: 'TwoWire' has not been declared
   Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
                                    ^~~~~~~
C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:28:3: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
   TwoWire *_wire;
   ^~~~~~~
   TwoWire_h
C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:9:55: error: could not convert '& Wire' from 'arduino::TwoWire*' to 'int*'
   Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
                                                       ^~~~~

Etcetera. My code is as follows:

#include <WiFiNINA.h>
#include <Wire.h>
extern TwoWire Wire1;
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>



/* This driver reads raw data from the BNO055

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

// Check I2C device address and correct line below (by default address is 0x29 or 0x28)
//                                   id, address
Adafruit_BNO055 bno = Adafruit_BNO055(-1, 0x28);


//link to blynk
#define BLYNK_TEMPLATE_ID "XYZ"
#define BLYNK_DEVICE_NAME "XYZ"
 
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial

#include <SPI.h>
#include <WiFi.h>
#include <BlynkSimpleWifi.h>

char auth[] = "XYZ";

char ssid[] = "XYZ";
char pass[] = "XYZ";

BlynkTimer timer;

void getTime() {
  imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);

  double Time = 0.0;
  double AdjustedAngle = 0.0;
  AdjustedAngle = (euler.z() - 90) * -1;
  // 270 degrees of rotation for 60 minutes, current degrees for how many minutes Time
  Time = 60 * AdjustedAngle / 270;
//  Serial.print(Time);
//  Serial.println();

  uint8_t system, gyro, accel, mag = 0;
  bno.getCalibration(&system, &gyro, &accel, &mag);
  Blynk.virtualWrite(V2, Time); 
}

void setup() {
  Serial.begin(9600);
//  if(!bno.begin())
//  {
//    /* There was a problem detecting the BNO055 ... check your connections */
//    Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
//    while(1);
//  }
  Wire1.begin();
  bno.setExtCrystalUse(true);
  Blynk.begin(auth, ssid, pass);
  timer.setInterval(1000, getTime);
}

void loop() {
  Blynk.run();
  timer.run();
}

Sorry if the formatting isn't working, this is my first post.

It's something with the library. Go to boards manager and revert to version 1.8.11 for Nano 33 IoT. Something introduced in 1.8.12 is the issue.

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