Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BMI160 Shuttle Board With the Developed Library in Arduino Uno issue

    BMI160 Shuttle Board With the Developed Library in Arduino Uno issue

    SaberKazemi1992
    Established Member

    Hi

    I am using the BMI160 shuttle board with Arduino Uno over SPI.  Also, I am using the Driver developed by Hanyazou https://github.com/hanyazou/BMI160-Arduino. The connection is okay but the gyro results are incorrect (random data). Also, the device id is returned 7F which means somewhere in the code or connection is wrong. Can you please help me resolve the issue?

    Please see the code below (The code is the example in the Hanyazou GitHub).

     

     

     

    #include <BMI160.h>
    #include <BMI160Gen.h>
    #include <CurieIMU.h>
    
    //const int i2c_addr = 0x69;
    
    
    void setup() {
      Serial.begin(9600); // initialize Serial communication
      while (!Serial);    // wait for the serial port to open
    
      // initialize device
      Serial.println("Initializing IMU device...");
      BMI160.begin(BMI160GenClass::SPI_MODE, /* SS pin# = */10);
      //BMI160.begin(BMI160GenClass::I2C_MODE);
      uint8_t dev_id = BMI160.getDeviceID();
      Serial.print("DEVICE ID: ");
      Serial.println(dev_id, HEX);
    
      // Set the accelerometer range to 250 degrees/second
      BMI160.setGyroRange(125);
      Serial.println("Initializing IMU device...done.");
    }
    
    void loop() {
      int gx, gy, gz;         // raw gyro values
    
      // read raw gyro measurements from device
      BMI160.readGyro(gx,gy,gz);
    
      // display tab-separated gyro x/y/z values
      Serial.print("g:\t");
      Serial.print(gx);
      Serial.print("\t");
      Serial.print(gy);
      Serial.print("\t");
      Serial.print(gz);
      Serial.println();
    
      delay(1);
    }
    
    float convertRawGyro(int gRaw) {
      // since we are using 250 degrees/seconds range
      // -250 maps to a raw value of -32768
      // +250 maps to a raw value of 32767
    
      float g = (gRaw * 250.0) / 32768.0;
    
      return g;
    }

     

     

     

     

    And this is the connection photo. 

    arduino bmi160 shuttle board.png

     

    Your help is truly appreciated!

    Thanks

    Saber

    6 REPLIES 6

    Hi SaberKazemi1992

    I just downloaded github, and tested with Arudino UNO. 

    And I successfully worked fine. Please follow this step. 

    < Hardware setting > 

     

    - Please check the attached file. 

    < Software setting >

    I just copied and run your code, but different thing was I copied all library in arduino running so that I included as below. 

    #include "BMI160.h"
    #include "BMI160Gen.h"
    #include "CurieIMU.h"

    Please let me know if you still get an error. 

    Thanks, 

     
     

     

     

    Thanks, Mihwan for the detailed information and especially the photo! 

    It worked perfectly fine!

    In the past, I exactly followed the same pin configuration as you provided and never doubted the GND for 3.3V. This time I used the other pin for GND and the problem solved!!. It is weird for me as the two GNDs should be connected to each other.

    By the way, it is working fine. Thanks and I appreciate your time!

    Saber

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist