Data sheet BNO055 Intelligent 9-axis absolute orientation sensor Bosch Sensortec * * * * * User Motion Quaternion Linear Acceleration Rotation Gravity Robust Heading BNO055: data sheet Document revision 1.4 Document release date June 2016 Document number BST-BNO055-DS000-14 Technical reference code(s) 0 273 141 209 Notes Data in this document are subject to change without notice. Product photos and pictures are for illustration purposes only and may differ from the real product's appearance. BNO055 Data sheet Page 2 BNO055 INTELLIGENT ABSOLUTE ORIENTATION SENSOR, 9-AXIS SENSOR FUSION ALL-IN-ONE WINDOWS 8.x COMPLIANT SENSOR HUB Basic Description Key features: Outputs fused sensor data 3 sensors in one device Small package Power Management Common voltage supplies Digital interface Consumer electronics suite Quaternion, Euler angles, Rotation vector, Linear acceleration, Gravity, Heading an advanced triaxial 16bit gyroscope, a versatile, leading edge triaxial 14bit accelerometer and a full performance geomagnetic sensor LGA package 28 pins Footprint 3.8 x 5.2 mm, height 1.13 mm Intelligent Power Management: normal, low power and suspend mode available VDD voltage range: 2.4V to 3.6V HID-I2C (Windows 8 compatible), IC, UART VDDIO voltage range: 1.7V to 3.6V MSL1, RoHS compliant, halogen-free Operating temperature: -40C ... +85C Key features of integrated sensors: Accelerometer features Programmable functionality On-chip interrupt controller BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Acceleration ranges 2g/4g/8g/16g Low-pass filter bandwidths 1kHz - <8Hz Operation modes: - Normal - Suspend - Low power - Standby - Deep suspend Motion-triggered interrupt-signal generation for - any-motion (slope) detection - slow or no motion recognition - high-g detection Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Gyroscope features Programmable functionality On-chip interrupt controller Magnetometer features Flexible functionality Page 3 Ranges switchable from 125/s to 2000/s Low-pass filter bandwidths 523Hz - 12Hz Operation modes: - Normal - Fast power up - Deep suspend - Suspend - Advanced power save Motion-triggered interrupt-signal generation for - any-motion (slope) detection - high rate Magnetic field range typical 1300T (x-, y-axis); 2500T (z-axis) Magnetic field resolution of ~0.3T Operating modes: - Low power - Regular - Enhanced regular - High Accuracy Power modes: - Normal - Sleep - Suspend - Force Typical applications Navigation Robotics Fitness and well-being Augmented reality Context awareness Tablets and ultra-books BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 4 General description The BNO055 is a System in Package (SiP), integrating a triaxial 14-bit accelerometer, a triaxial 16-bit gyroscope with a range of 2000 degrees per second, a triaxial geomagnetic sensor and a 32-bit cortex M0+ microcontroller running Bosch Sensortec sensor fusion software, in a single package. The corresponding chip-sets are integrated into one single 28-pin LGA 3.8mm x 5.2mm x 1.1 mm housing. For optimum system integration the BNO055 is equipped with digital bidirectional I2C and UART interfaces. The I2C interface can be programmed to run with the HID-I2C protocol turning the BNO055 into a plug-and-play sensor hub solution for devices running the Windows 8.0 or 8.1 operating system. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 5 Contents BASIC DESCRIPTION ........................................................................................................... 2 SPECIFICATION.................................................................................................................. 12 1.1 ELECTRICAL SPECIFICATION .......................................................................................... 12 1.2 ELECTRICAL AND PHYSICAL CHARACTERISTICS, MEASUREMENT PERFORMANCE ................ 13 2. ABSOLUTE MAXIMUM RATINGS .................................................................................. 17 3. FUNCTIONAL DESCRIPTION ......................................................................................... 18 3.1 ARCHITECTURE............................................................................................................. 18 3.2 POWER MANAGEMENT ................................................................................................... 18 3.2.1 NORMAL MODE ....................................................................................................................... 19 3.2.2 LOW POWER MODE ................................................................................................................. 19 3.2.3 SUSPEND MODE ..................................................................................................................... 20 3.3 OPERATION MODES ...................................................................................................... 20 3.3.1 CONFIG MODE ........................................................................................................................ 22 3.3.2 NON-FUSION MODES .............................................................................................................. 22 3.3.3 FUSION MODES ....................................................................................................................... 22 3.4 AXIS REMAP.................................................................................................................. 24 3.5 SENSOR CONFIGURATION.............................................................................................. 26 3.5.1 DEFAULT SENSOR CONFIGURATION .......................................................................................... 26 3.5.2 ACCELEROMETER CONFIGURATION .......................................................................................... 27 3.5.3 GYROSCOPE CONFIGURATION.................................................................................................. 28 3.5.4 MAGNETOMETER CONFIGURATION............................................................................................ 29 3.6 OUTPUT DATA ............................................................................................................... 30 3.6.1 UNIT SELECTION...................................................................................................................... 30 3.6.2 DATA OUTPUT FORMAT ............................................................................................................ 30 3.6.3 FUSION OUTPUT DATA RATES .................................................................................................. 31 3.6.4 SENSOR CALIBRATION DATA..................................................................................................... 31 3.6.5 OUTPUT DATA REGISTERS ....................................................................................................... 33 3.7 DATA REGISTER SHADOWING ......................................................................................... 37 3.8 INTERRUPTS ................................................................................................................. 38 3.8.1 INTERRUPT PIN ....................................................................................................................... 38 3.8.2 INTERRUPT SETTINGS ............................................................................................................. 38 3.9 SELF-TEST ................................................................................................................... 46 3.9.1 POWER ON SELF TEST (POST) ............................................................................................... 46 3.9.2 BUILD IN SELF TEST (BIST) ..................................................................................................... 46 3.10 BOOT LOADER ............................................................................................................ 46 3.11 CALIBRATION .............................................................................................................. 47 3.11.1 ACCELEROMETER CALIBRATION ............................................................................................. 47 3.11.2 GYROSCOPE CALIBRATION .................................................................................................... 47 3.11.3 MAGNETOMETER CALIBRATION .............................................................................................. 47 3.11.4 REUSE OF CALIBRATION PROFILE .......................................................................................... 48 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 6 4. REGISTER DESCRIPTION .............................................................................................. 49 4.1 GENERAL REMARKS ...................................................................................................... 49 4.2 REGISTER MAP ............................................................................................................. 50 4.2.1 REGISTER MAP PAGE 0 ........................................................................................................... 50 4.2.2 REGISTER MAP PAGE 1 ........................................................................................................... 53 4.3 REGISTER DESCRIPTION (PAGE 0).................................................................................. 54 4.3.1 CHIP_ID 0X00 ....................................................................................................................... 54 4.3.2 ACC_ID 0X01 ........................................................................................................................ 54 4.3.3 MAG_ID 0X02 ....................................................................................................................... 54 4.3.4 GYR_ID 0X03 ........................................................................................................................ 54 4.3.5 SW_REV_ID_LSB 0X04 ....................................................................................................... 55 4.3.6 SW_REV_ID_MSB 0X05 ...................................................................................................... 55 4.3.7 BL_REV_ID 0X06 .................................................................................................................. 55 4.3.8 PAGE ID 0X07 ....................................................................................................................... 55 4.3.9 ACC_DATA_X_LSB 0X08 ..................................................................................................... 56 4.3.10 ACC_DATA_X_MSB 0X09 .................................................................................................. 56 4.3.11 ACC_DATA_Y_LSB 0X0A .................................................................................................. 56 4.3.12 ACC_DATA_Y_MSB 0X0B ................................................................................................. 56 4.3.13 ACC_DATA_Z_LSB 0X0C .................................................................................................. 57 4.3.14 ACC_DATA_Z_MSB 0X0D ................................................................................................. 57 4.3.15 MAG_DATA_X_LSB 0X0E .................................................................................................. 57 4.3.16 MAG_DATA_X_MSB 0X0F ................................................................................................. 57 4.3.17 MAG_DATA_Y_LSB 0X10 .................................................................................................. 58 4.3.18 MAG_DATA_Y_MSB 0X11 ................................................................................................. 58 4.3.19 MAG_DATA_Z_LSB 0X12 .................................................................................................. 58 4.3.20 MAG_DATA_Z_MSB 0X13 ................................................................................................. 58 4.3.21 GYR_DATA_X_LSB 0X14 .................................................................................................. 59 4.3.22 GYR_DATA_X_MSB 0X15 ................................................................................................. 59 4.3.23 GYR_DATA_Y_LSB 0X16 .................................................................................................. 59 4.3.24 GYR_DATA_Y_MSB 0X17 ................................................................................................. 59 4.3.25 GYR_DATA_Z_LSB 0X18 ................................................................................................... 60 4.3.26 GYR_DATA_Z_MSB 0X19 .................................................................................................. 60 4.3.27 EUL_DATA_X_LSB 0X1A ................................................................................................... 60 4.3.28 EUL_DATA_X_MSB 0X1B .................................................................................................. 60 4.3.29 EUL_DATA_Y_LSB 0X1C ................................................................................................... 61 4.3.30 EUL_DATA_Y_MSB 0X1D.................................................................................................. 61 4.3.31 EUL_DATA_Z_LSB 0X1E ................................................................................................... 61 4.3.32 EUL_DATA_Z_MSB 0X1F .................................................................................................. 61 4.3.33 QUA_DATA_W_LSB 0X20 ................................................................................................. 62 4.3.34 QUA_DATA_W_MSB 0X21 ................................................................................................ 62 4.3.35 QUA_DATA_X_LSB 0X22 .................................................................................................. 62 4.3.36 QUA_DATA_X_MSB 0X23 ................................................................................................. 62 4.3.37 QUA_DATA_Y_LSB 0X24 .................................................................................................. 63 4.3.38 QUA_DATA_Y_MSB 0X25 ................................................................................................. 63 4.3.39 QUA_DATA_Z_LSB 0X26 ................................................................................................... 63 4.3.40 QUA_DATA_Z_MSB 0X27 .................................................................................................. 63 4.3.41 LIA_DATA_X_LSB 0X28 ..................................................................................................... 64 4.3.42 LIA_DATA_X_MSB 0X29 .................................................................................................... 64 4.3.43 LIA_DATA_Y_LSB 0X2A .................................................................................................... 64 4.3.44 LIA_DATA_Y_MSB 0X2B ................................................................................................... 64 4.3.45 LIA_DATA_Z_LSB 0X2C .................................................................................................... 65 4.3.46 LIA_DATA_Z_MSB 0X2D ................................................................................................... 65 4.3.47 GRV_DATA_X_LSB 0X2E .................................................................................................. 65 4.3.48 GRV_DATA_X_MSB 0X2F ................................................................................................. 65 4.3.49 GRV_DATA_Y_LSB 0X30 .................................................................................................. 66 4.3.50 GRV_DATA_Y_MSB 0X31 ................................................................................................. 66 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 7 4.3.51 GRV_DATA_Z_LSB 0X32 ................................................................................................... 66 4.3.52 GRV_DATA_Z_MSB 0X33 .................................................................................................. 66 4.3.53 TEMP 0X34 ......................................................................................................................... 67 4.3.54 CALIB_STAT 0X35.............................................................................................................. 67 4.3.55 ST_RESULT 0X36 .............................................................................................................. 67 4.3.56 INT_STA 0X37 .................................................................................................................... 68 4.3.57 SYS_CLK_STATUS 0X38 ................................................................................................... 68 4.3.58 SYS_STATUS 0X39 ............................................................................................................ 68 4.3.59 SYS_ERR 0X3A .................................................................................................................. 69 4.3.60 UNIT_SEL 0X3B.................................................................................................................. 69 4.3.61 OPR_MODE 0X3D .............................................................................................................. 70 4.3.62 PWR_MODE 0X3E.............................................................................................................. 70 4.3.63 SYS_TRIGGER 0X3F ......................................................................................................... 70 4.3.64 TEMP_SOURCE 0X40 ........................................................................................................ 70 4.3.65 AXIS_MAP_CONFIG 0X41 ................................................................................................. 71 4.3.66 AXIS_MAP_SIGN 0X42 ...................................................................................................... 71 4.3.67 ACC_OFFSET_X_LSB 0X55 .............................................................................................. 71 4.3.68 ACC_OFFSET_X_MSB 0X56 ............................................................................................. 72 4.3.69 ACC_OFFSET_Y_LSB 0X57 .............................................................................................. 72 4.3.70 ACC_OFFSET_Y_MSB 0X58 ............................................................................................. 72 4.3.71 ACC_OFFSET_Z_LSB 0X59 .............................................................................................. 72 4.3.72 ACC_OFFSET_Z_MSB 0X5A ............................................................................................. 73 4.3.73 MAG_OFFSET_X_LSB 0X5B ............................................................................................. 73 4.3.74 MAG_OFFSET_X_MSB 0X56C .......................................................................................... 73 4.3.75 MAG_OFFSET_Y_LSB 0X5D ............................................................................................. 73 4.3.76 MAG_OFFSET_Y_MSB 0X5E ............................................................................................ 74 4.3.77 MAG_OFFSET_Z_LSB 0X5F ............................................................................................. 74 4.3.78 MAG_OFFSET_Z_MSB 0X60............................................................................................. 74 4.3.79 GYR_OFFSET_X_LSB 0X61 .............................................................................................. 74 4.3.80 GYR_OFFSET_X_MSB 0X62 ............................................................................................. 75 4.3.81 GYR_OFFSET_Y_LSB 0X63 .............................................................................................. 75 4.3.82 GYR_OFFSET_Y_MSB 0X64 ............................................................................................. 75 4.3.83 GYR_OFFSET_Z_LSB 0X65 .............................................................................................. 75 4.3.84 GYR_OFFSET_Z_MSB 0X66 ............................................................................................. 76 4.3.85 ACC_RADIUS_LSB 0X67 ................................................................................................... 76 4.3.86 ACC_RADIUS_MSB 0X68 .................................................................................................. 76 4.3.87 MAG_RADIUS_LSB 0X69 .................................................................................................. 76 4.3.88 MAG_RADIUS_MSB 0X6A ................................................................................................. 76 4.4 REGISTER DESCRIPTION (PAGE 1).................................................................................. 77 4.4.1 PAGE ID 0X07 ........................................................................................................................ 77 4.4.2 ACC_CONFIG 0X08 ................................................................................................................ 77 4.4.3 MAG_CONFIG 0X09 ............................................................................................................... 77 4.4.4 GYR_CONFIG_0 0X0A ........................................................................................................... 78 4.4.5 GYR_CONFIG_1 0X0B ........................................................................................................... 78 4.4.6 ACC_SLEEP_CONFIG 0X0C ................................................................................................... 79 4.4.7 GYR_SLEEP_CONFIG 0X0D ................................................................................................... 80 4.4.8 INT_MSK 0X0F ..................................................................................................................... 81 4.4.9 INT_EN 0X10 ........................................................................................................................ 82 4.4.10 ACC_AM_THRES 0X11 ...................................................................................................... 82 4.4.11 ACC_INT_SETTINGS 0X12 ................................................................................................... 83 4.4.12 ACC_HG_DURATION 0X13 ............................................................................................... 83 4.4.13 ACC_HG_THRES 0X14 ...................................................................................................... 83 4.4.14 ACC_NM_THRES 0X15 ...................................................................................................... 84 4.4.15 ACC_NM_SET 0X16 ........................................................................................................... 84 4.4.16 GYR_INT_SETTING 0X17 .................................................................................................. 85 4.4.17 GYR_HR_X_SET 0X18 ....................................................................................................... 85 4.4.18 GYR_DUR_X 0X19 ............................................................................................................. 86 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 8 4.4.19 GYR_HR_Y_SET 0X1A ...................................................................................................... 86 4.4.20 GYR_DUR_Y 0X1B ............................................................................................................. 86 4.4.21 GYR_HR_Z_SET 0X1C ...................................................................................................... 87 4.4.22 GYR_DUR_Z 0X1D ............................................................................................................. 87 4.4.23 GYR_AM_THRES 0X1E ..................................................................................................... 87 4.4.24 GYR_AM_SET 0X1F ........................................................................................................... 88 4.5 DIGITAL INTERFACE....................................................................................................... 89 4.6 I2C PROTOCOL ............................................................................................................. 90 4.7 UART PROTOCOL......................................................................................................... 93 4.8 HID OVER I2C .............................................................................................................. 94 5. PIN-OUT AND CONNECTION DIAGRAM ....................................................................... 95 5.1 PIN-OUT ....................................................................................................................... 95 5.2 CONNECTION DIAGRAM I2C ............................................................................................ 97 5.3 CONNECTION DIAGRAM UART ....................................................................................... 98 5.4 CONNECTION DIAGRAM HID-I2C .................................................................................... 99 5.5 XOUT32 & XIN32 CONNECTIONS................................................................................ 100 5.5.1 EXTERNAL 32KHZ CRYSTAL OSCILLATOR ............................................................................... 100 5.5.2 INTERNAL CLOCK MODE ......................................................................................................... 100 6. PACKAGE ..................................................................................................................... 101 6.1 OUTLINE DIMENSIONS.................................................................................................. 101 6.2 MARKING.................................................................................................................... 102 6.3 SOLDERING GUIDELINES ............................................................................................. 102 6.4 HANDLING INSTRUCTIONS ............................................................................................ 102 6.5 TAPE AND REEL SPECIFICATION.................................................................................... 103 6.6 ENVIRONMENTAL SAFETY ............................................................................................ 103 6.6.1 HALOGEN CONTENT............................................................................................................... 103 6.6.2 INTERNAL PACKAGE STRUCTURE ............................................................................................ 103 7. LEGAL DISCLAIMER .................................................................................................... 104 7.1 ENGINEERING SAMPLES............................................................................................... 104 7.2 PRODUCT USE ............................................................................................................ 104 7.3 APPLICATION EXAMPLES AND HINTS ............................................................................. 104 8. DOCUMENT HISTORY AND MODIFICATIONS ............................................................ 105 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 9 Table of Figures Figure 1: system architecture ...............................................................................................18 Figure 2: Principle of any-motion detection ...........................................................................40 Figure 3: High rate interrupt ..................................................................................................42 Figure 4: Principle of any-motion detection ...........................................................................44 Figure 5: IC timing diagram .................................................................................................91 Figure 6: IC write .................................................................................................................92 Figure 7: IC multiple read ....................................................................................................92 Figure 8: Pin-out bottom view ...............................................................................................95 Figure 9: I2C connection diagram .........................................................................................97 Figure 10: UART connection diagram ...................................................................................98 Figure 11 : HID via IC connection diagram ...........................................................................99 Figure 12 : External 32kHz Crystal Oscillator with Load Capacitor .....................................100 Figure 13: Outline dimensions ............................................................................................101 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 10 List of Tables Table 0-1: Electrical parameter specification ........................................................................12 Table 0-2: Electrical characteristics BNO055........................................................................13 Table 2-1: Absolute maximum ratings (preliminary target values) .........................................17 Table 3-1: power modes selection ........................................................................................19 Table 3-2: Low power modes - Interrupts .............................................................................19 Table 3-3: Operating modes overview ..................................................................................20 Table 3-4: Default sensor settings ........................................................................................21 Table 3-5: operating modes selection ...................................................................................21 Table 3-6: Operating mode switching time............................................................................21 Table 3-7: Default sensor configuration at power-on ............................................................26 Table 3-8: Accelerometer configurations ..............................................................................27 Table 3-9: Gyroscope configurations ....................................................................................28 Table 3-10: Magnetometer configurations ...........................................................................29 Table 3-11: unit selection .....................................................................................................30 Table 3-12: Fusion data output format ..................................................................................30 Table 3-13: Rotation angle conventions ...............................................................................30 Table 3-14: Fusion output data rates ....................................................................................31 Table 3-15: Accelerometer Default-Reg settings ..................................................................31 Table 3-16: Accelerometer G-range settings ........................................................................31 Table 3-17: Accelerometer Unit settings ...............................................................................31 Table 3-18: Magnetometer Default-Reg settings ..................................................................32 Table 3-19: Magnetometer Unit settings ...............................................................................32 Table 3-20: Gyroscope Default Reg-settings ........................................................................32 Table 3-21: Gyroscope range settings ..................................................................................33 Table 3-22: Gyroscope unit settings .....................................................................................33 Table 3-23: Radius Default-Reg settings ..............................................................................33 Table 3-24: Radius range settings ........................................................................................33 Table 3-25: Acceleration data ...............................................................................................34 Table 3-26: Magnetic field strength data ...............................................................................34 Table 3-27: Yaw rate data ....................................................................................................34 Table 3-28: Compensated orientation data in Euler angles format........................................35 Table 3-29: Euler angle data representation .........................................................................35 Table 3-30: Compensated orientation data in quaternion format ..........................................35 Table 3-31: Quaternion data representation .........................................................................35 Table 3-32: Linear Acceleration Data ...................................................................................36 Table 3-33: Linear Acceleration data representation ............................................................36 Table 3-34: Gravity Vector Data ...........................................................................................36 Table 3-35: Gravity Vector data representation ....................................................................36 Table 3-36: Temperature Data .............................................................................................37 Table 3-37: Temperature data representation ......................................................................37 Table 3-38: Temperature Source Selection ..........................................................................37 Table 3-39: No-motion time-out periods................................................................................39 Table 3-40: Timing of No-motion interrupt ............................................................................39 Table 3-41: Any-motion Interrupt parameters and Axis selection ..........................................41 Table 3-42: High-G Interrupt parameters and Axis selection.................................................41 Table 3-43: High Rate Interrupt parameters and Axis selection ............................................43 Table 3-44: Axis selection and any motion interrupt .............................................................45 Table 3-45: Power on Self Test ............................................................................................46 Table 3-46: Power on Self Test ............................................................................................46 Table 4-1: Register Access Coding ......................................................................................50 Table 4-2: Register Map Page 0 ...........................................................................................50 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 11 Table4-3: Register Map Page 1 ............................................................................................53 Table 4-4: protocol select pin mapping .................................................................................89 Table 4-5: Mapping of digital interface pins ..........................................................................89 Table 4-6: Electrical specification of the interface pins..........................................................89 Table 4-7: I2C address selection ..........................................................................................90 Table 4-8: IC timings ...........................................................................................................90 Table 5-1: Pin description .....................................................................................................96 Table 5-2: Crystal Oscillator Source Connections...............................................................100 Table 6-1: Marking of mass production parts ......................................................................102 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 12 Specification If not stated otherwise, the given values are over lifetime and full performance temperature and voltage ranges, minimum/maximum values are 3 sigma. 1.1 Electrical specification Table 0-1: Electrical parameter specification OPERATING CONDITIONS BNO055 Parameter Symbol Condition Min Typ Max Unit Supply Voltage (only Sensors) Supply Voltage (C and I/O Domain) Voltage Input Low Level (UART, I2C) VDD -- 2.4 -- 3.6 V VDDIO -- 1.7 -- 3.6 V VDDIO_VIL VDDIO = 1.7-2.7V -- -- 0.25 VDDIO V VDDIO = 2.7-3.6V -- -- 0.3 VDDIO V VDDIO = 1.7-2.7V 0.7 VDDIO -- -- V VDDIO = 2.7-3.6V 0.55 VDDIO -- -- V Voltage Input High Level (UART, I2C) VDDIO_VIH Voltage Output Low Level (UART, I2C) VDDIO_VOL VDDIO > 3V , IOL =20mA -- 0.1 VDDIO 0.2 VDDIO V Voltage Output High Level (UART, I2C) POR Voltage threshold on VDDIO-IN rising POR Voltage threshold on VDDIO-IN falling Operating Temperature VDDIO_VOH VDDIO > 3V , IOH =10mA 0.8 VDDIO 0.9 VDDIO -- V VDDIO_POT+ VDDIO falls at 1V/ms or slower -- 1.45 -- V -- 0.99 -- V VDDIO_POTTA -- -40 -- +85 C Total supply current normal mode at TA (9DOF @100Hz output data rate) Total supply current Low power mode at TA IDD + IDDIO VDD = 3V, VDDIO = 2.5V -- -- 12.3 mA IDD_LPM VDD = 3V, VDDIO = 2.5V 0.33 2.72# Total supply current suspend mode at TA IDD_SuM VDD = 3V, VDDIO = 2.5V -- -- mA 0.04* mA # 80% suspend mode and 20% normal mode with 9DOF @100Hz output data rate * using I2C as communication protocol BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 13 1.2 Electrical and physical characteristics, measurement performance Table 0-2: Electrical characteristics BNO055 OPERATING CONDITIONS BNO055 Parameter Symbol Condition Min Typ Max Unit Start-Up time TSup From Off to configuration mode 400 ms POR time TPOR From Reset to Config mode 650 ms Data Rate DR Data rate tolerance 9DOF @100Hz output data rate (if internal oscillator is used) DRtol Parameter Symbol Condition Acceleration Range gFS2g Selectable via serial digital interface s. Par. Fusion Output data rates 1 % OPERATING CONDITIONS ACCELEROMETER Min Typ Max Units 2 g 4 g gFS8g 8 g gFS16g 16 g gFS4g OUTPUT SIGNAL ACCELEROMETER (ACCELEROMETER ONLY MODE) Parameter Symbol Condition Min Typ Sensitivity S All gFSXg Values, TA=25C 1 Sensitivity tolerance Stol Ta=25C, gFS2g 1 Sensitivity Temperature Drift TCS 0.03 Sensitivity Supply Volt. Drift SVDD gFS2g, Nominal VDD supplies, Temp operating conditions gFS2g, TA=25C, VDD_min VDD VDD_max Zero-g Offset (x,y.z) Offxyz gFS2g, TA=25C, nominal VDD supplies, over life-time Zero-g Offset Temperature Drift TCO Zero-g Offset Supply Volt. Drift Bandwidth Max Units LSB/mg 4 % %/K 0.065 0.2 %/V 80 +150 mg gFS2g, Nominal VDD supplies 1 +/-3.5 mg/K OffVDD gFS2g, TA=25C, VDD_min VDD VDD_max 1.5 2.5 mg/V bw8 2nd order filter, bandwidth programmable 8 Hz 16 Hz bw31 31 Hz bw63 63 Hz bw125 125 Hz bw250 250 Hz bw500 500 Hz bw1000 1,000 Hz bw16 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 -150 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 14 Nonlinearity NL best fit straight line, gFS2g 0.5 2 %FS Output Noise Density nrms gFS2g, TA=25C Nominal VDD supplies Normal mode 150 190 g/Hz MECHANICAL CHARACTERISTICS ACCELEROMETER Symbol Condition Min Typ Max Units Parameter Cross Axis Sensitivity CAS relative contribution between any two of the three axes 1 2 % Alignment Error EA relative to package outline 0.5 2 Parameter Symbol Condition Typ Max Unit Rate Range RFS125 Selectable via serial digital interface OPERATING CONDITIONS GYROSCOPE Min 125 /s 250 /s RFS500 500 /s RFS1000 1,000 /s RFS2000 2,000 /s RFS250 OUTPUT SIGNAL GYROSCOPE (GYRO ONLY MODE) Sensitivity via register Map Sensitivity tolerance S Ta=25C Stol Ta=25C, RFS2000 Sensitivity Change over TCS Nominal VDD supplies -40C Temperature Sensitivity 3 LSB//s rad/s % 0.03 0.07 %/K T +85C RFS2000 A TA=25C, SVDD Supply Volt. Drift Nonlinearity -- 16.0 900 1 <0.4 %/V VDD_min VDD VDD_max NL best fit straight line 0.05 0.2 %FS 1 +3 /s Nominal VDD supplies -40C T +85C RFS2000 0.015 0.03 /s per K TA=25C, 0.1 RFS1000, RFS2000 Zero-rate Offset Off x y and z Zero- Offset Change TCO over Temperature Zero- Offset Supply -3 A Slow and fast offset cancellation off A Off VDD Volt. Drift Output Noise Nominal VDD supplies T =25C, n rms /s /V VDD_min VDD VDD_max rms, BW=47Hz 0.1 0.3 /s (@ 0.014/s/Hz) BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Bandwidth BW f Page 15 523 230 116 64 47 32 23 12 -3dB Hz MECHANICAL CHARACTERISTICS GYROSCOPE Cross Axis Sensitivity CAS Sensitivity to stimuli in 1 3 % Max Units non-sense-direction OPERATING CONDITIONS MAGNETOMETER (MAGNETOMETER ONLY MODE) Parameter 1 Magnetic field range Symbol Condition Min Typ Brg,xy TA=25C 1200 1300 T 2000 2500 T Brg,z Magnetometer heading accuracy2 As heading 30T horizontal geomagnetic field component, TA=25C 2.5 deg Max Unit MAGNETOMETER OUTPUT SIGNAL Parameter Symbol Condition Min Typ Device Resolution Dres,m TA=25C 0.3 Gain error3 Gerr,m 5 8 % Sensitivity Temperature Drift TCSm 0.01 0.03 %/K Zero-B offset OFFm After API compensation TA=25C Nominal VDD supplies After API compensation -40C TA +85C Nominal VDD supplies TA=25C Zero-B offset4 OFFm,cal Zero-B offset Temperature Drift Full-scale Nonlinearity T 40 T After calibration in fusion mode -40C TA +85C 2 T TCOm -40C TA +85C 0.23 NLm, FS best fit straight line 0.37 T/K 1 %FS 1 Full linear measurement range considering sensor offsets. The heading accuracy depends on hardware and software. A fully calibrated sensor and ideal tilt compensation are assumed. 3 Definition: gain error = ( (measured field after API compensation) / (applied field) ) - 1 4 Magnetic zero-B offset assuming calibration in fusion mode. Typical value after applying calibration movements containing various device orientations (typical device usage). 2 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Output Noise Power Supply Rejection Rate Page 16 nrms,lp,m,xy Low power preset x, y-axis, TA=25C Nominal VDD supplies 1.0 T nrms,lp,m,z Low power preset z-axis, TA=25C Nominal VDD supplies 1.4 T nrms,rg,m Regular preset TA=25C Nominal VDD supplies 0.6 T nrms,eh,m Enhanced regular preset TA=25C Nominal VDD supplies 0.5 T nrms,ha,m High accuracy preset TA=25C Nominal VDD supplies 0.3 T PSRRm TA=25C Nominal VDD supplies 0.5 T/V BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 17 2. Absolute Maximum Ratings Table 2-1: Absolute maximum ratings (preliminary target values) Parameter Symbol Voltage at Supply Pin Min Max Units VDD Pin -0.3 4.2 V VDDIO Pin -0.3 3.6 V Voltage at any Logic Pin Vnon-supply Pin -0.3 VDDIO+0.3 V Passive Storage Temp. Range Trps 65% rel. H. -50 +150 C Mechanical Shock MechShock200s Duration 200s 10,000 g MechShock1ms Duration 1.0ms 2,000 g MechShockfreefall Free fall onto hard surfaces 1.8 m ESDHBM HBM, at any Pin 2 kV ESDCDM CDM 500 V ESDMM MM 200 V ESD Condition Note: Stress above these limits may cause damage to the device. Exceeding the specified electrical limits may affect the device reliability or cause malfunction. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 18 3. Functional Description 3.1 Architecture The following figure shows the basic building blocks of the BNO055 device. Figure 1: system architecture 3.2 Power management The BNO055 has two distinct power supply pins: * VDD is the main power supply for the internal sensors * VDDIO is a separate power supply pin used for the supply of the C and the digital interfaces For the switching sequence of power supply VDD and VDDIO it is mandatory that VDD is powered on and driven to the specified level before or at the same time as VDDIO is powered ON. Otherwise there are no limitations on the voltage levels of both pins relative to each other, as long as they are used within the specified operating range. The sensor features a power-on reset (POR), initializing the register map with the default values and starting in CONFIG mode. The POR is executed at every power on and can also be triggered either by applying a low signal to the nRESET pin for at least 20ns or by setting the RST_SYS bit in the SYS_TRIGGER register. The BNO055 can be configured to run in one of the following power modes: normal mode, low power mode, and suspend mode. These power modes are described in more detail in section Power Modes BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 19 Power Modes The BNO055 support three different power modes: Normal mode, Low Power Mode, and Suspend mode. The power mode can be selected by writing to the PWR_MODE register as defined in the table below. As default at start-up the BNO055 will run in Normal mode. Table 3-1: power modes selection Parameter Value Power Mode [Reg Addr]: Reg Value Normal Mode [PWR_MODE]: xxxxxx00b Low Power Mode [PWR_MODE]: xxxxxx01b Suspend Mode [PWR_MODE]: xxxxxx10b 3.2.1 Normal Mode In normal mode all sensors required for the selected operating mode (see section 3.3) are always switched ON. The register map and the internal peripherals of the MCU are always operative in this mode. 3.2.2 Low Power Mode If no activity (i.e. no motion) is detected for a configurable duration (default 5 seconds), the BNO055 enters the low power mode. In this mode only the accelerometer is active. Once motion is detected (i.e. the accelerometer signals an any-motion interrupt), the system is woken up and normal mode is entered. The following settings are possible. Table 3-2: Low power modes - Interrupts Description Parameter Entering to Detection Type sleep: NO Motion Interrupt Params Description Waking up: Any Motion Interrupt Value Reg Value Restriction No Motion Detection Axis [ACC_NM_SET] : xxxxxxx1b [ACC_INT_Settings] : bit4-bit2 Duration Threshold [ACC_NM_SET] : bit6-bit1 [ACC_NM_THRE] : bit7-bit0 n/a Shares common bit with Any Motion interrupt axis selection n/a n/a Parameter Detection Type Value Detection Axis Reg Value [ACC_INT_Settings] : bit4-bit2 Params Duration Threshold [ACC_INT_Settings] : bit1-bit0 [ACC_AM_THRES] : bit7-bit0 Additionally, the interrupt pins can also be configured to provide HW interrupt to the host. The BNO055 is by default configured to have optimum values for entering into sleep and waking up. To restore these values, trigger system reset by setting RST_SYS bit in SYS_TRIGGER register. There are some limitations to achieve the low power mode performance: Only No and Any motion interrupts are applicable and High-G and slow motion interrupts are not applicable in low power mode. Low power mode is not applicable where accelerometer is not employed. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 20 3.2.3 Suspend Mode In suspend mode the system is paused and all the sensors and the microcontroller are put into sleep mode. No values in the register map will be updated in this mode. To exit from suspend mode the mode should be changed by writing to the PWR_MODE register (see Table 3-1). 3.3 Operation Modes The BNO055 provides a variety of output signals, which can be chosen by selecting the appropriate operation mode. The table below lists the different modes and the available sensor signals. Table 3-3: Operating modes overview Available sensor signals Fusion modes Non-fusionmodes Operating Mode Fusion Data Accel Mag Gyro Relative orientation Absolute orientation CONFIGMODE - - - - - ACCONLY X - - - - MAGONLY - X - - - GYROONLY - - X - - ACCMAG X X - - - ACCGYRO X - X - - MAGGYRO - X X - - AMG X X X - - IMU X - X X - COMPASS X X - - X M4G X X X - NDOF_FMC_OFF X X X - X NDOF X X X - X The default operation mode after power-on is CONFIGMODE. When the user changes to another operation mode, the sensors which are required in that particular sensor mode are powered, while the sensors whose signals are not required are set to suspend mode. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 21 The BNO055 sets the following default settings for the sensors. The user can overwrite these settings in the register map when in CONFIGMODE. Table 3-4: Default sensor settings Sensor Range Bandwidth Accelerometer 4G 62.5 Hz Magnetometer NA 10 Hz Gyroscope 2000 dps 32 Hz In any mode, the sensor data are available in the data register based on the unit selected. The axis of the data is configured based on the axis-remap register configuration. The operating mode can be selected by writing to the OPR_MODE register, possible register values and the corresponding operating modes are shown in the table below. Table 3-5: operating modes selection Parameter Value [Reg Addr]: Reg Value CONFIG MODE CONFIGMODE [OPR_MODE]: xxxx0000b ACCONLY [OPR_MODE]: xxxx0001b MAGONLY [OPR_MODE]: xxxx0010b GYROONLY [OPR_MODE]: xxxx0011b ACCMAG [OPR_MODE]: xxxx0100b ACCGYRO [OPR_MODE]: xxxx0101b MAGGYRO [OPR_MODE]: xxxx0110b AMG [OPR_MODE]: xxxx0111b IMU [OPR_MODE]: xxxx1000b COMPASS [OPR_MODE]: xxxx1001b M4G [OPR_MODE]: xxxx1010b NDOF_FMC_OFF [OPR_MODE]: xxxx1011b NDOF [OPR_MODE]: xxxx1100b Non-Fusion Mode Fusion Mode Table 3-6 below shows the time required to switch between CONFIGMODE and the other operating modes. Table 3-6: Operating mode switching time From CONFIGMODE Any operation mode BST-BNO055-DS000-14 | Revision 1.4 | June 2016 To Any operation mode CONFIGMODE Switching time 7ms 19ms Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 22 3.3.1 Config Mode This mode is used to configure BNO, wherein all output data is reset to zero and sensor fusion is halted. This is the only mode in which all the writable register map entries can be changed. (Exceptions from this rule are the interrupt registers (INT and INT_MSK) and the operation mode register (OPR_MODE), which can be modified in any operation mode.) As being said, this mode is the default operation mode after power-on or RESET. Any other mode must be chosen to be able to read any sensor data. 3.3.2 Non-Fusion Modes 3.3.2.1 ACCONLY If the application requires only raw accelerometer data, this mode can be chosen. In this mode the other sensors (magnetometer, gyro) are suspended to lower the power consumption. In this mode, the BNO055 behaves like a stand-alone acceleration sensor. 3.3.2.1 MAGONLY In MAGONLY mode, the BNO055 behaves like a stand-alone magnetometer, with acceleration sensor and gyroscope being suspended. 3.3.2.2 GYROONLY In GYROONLY mode, the BNO055 behaves like a stand-alone gyroscope, with acceleration sensor and magnetometer being suspended. 3.3.2.3 ACCMAG Both accelerometer and magnetometer are switched on, the user can read the data from these two sensors. 3.3.2.4 ACCGYRO Both accelerometer and gyroscope are switched on; the user can read the data from these two sensors. 3.3.2.5 MAGGYRO Both magnetometer and gyroscope are switched on, the user can read the data from these two sensors. 3.3.2.6 AMG (ACC-MAG-GYRO) All three sensors accelerometer, magnetometer and gyroscope are switched on. 3.3.3 Fusion modes Sensor fusion modes are meant to calculate measures describing the orientation of the device in space. It can be distinguished between non-absolute or relative orientation and absolute orientation. Absolute orientation means orientation of the sensor with respect to the earth and its magnetic field. In other words, absolute orientation sensor fusion modes calculate the direction of the magnetic north pole. In non-absolute or relative orientation modes, the heading of the sensor can vary depending on how the sensor is placed initially. All fusion modes provide the heading of the sensor as quaternion data or in Euler angles (roll, pitch and yaw angle). The acceleration sensor is both exposed to the gravity force and to accelerations applied to the sensor due to movement. In fusion modes it is possible to separate the two acceleration sources, and thus the sensor fusion data provides separately linear acceleration (i.e. acceleration that is applied due to movement) and the gravity vector. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 23 3.3.3.1 IMU (Inertial Measurement Unit) In the IMU mode the relative orientation of the BNO055 in space is calculated from the accelerometer and gyroscope data. The calculation is fast (i.e. high output data rate). 3.3.3.2 COMPASS The COMPASS mode is intended to measure the magnetic earth field and calculate the geographic direction. The earth magnetic field is a vector with the horizontal components x,y and the vertical z component. It depends on the position on the globe and natural iron occurrence. For heading calculation (direction of compass pointer) only the horizontal components x and y are used. Therefore the vector components of the earth magnetic field must be transformed in the horizontal plane, which requires the knowledge of the direction of the gravity vector. To summarize, the heading can only be calculated when considering gravity and magnetic field at the same time. However, the measurement accuracy depends on the stability of the surrounding magnetic field. Furthermore, since the earth magnetic field is usually much smaller than the magnetic fields that occur around and inside electronic devices, the compass mode requires calibration (see chapter 3.10) 3.3.3.3 M4G (Magnet for Gyroscope) The M4G mode is similar to the IMU mode, but instead of using the gyroscope signal to detect rotation, the changing orientation of the magnetometer in the magnetic field is used. Since the magnetometer has much lower power consumption than the gyroscope, this mode is less power consuming in comparison to the IMU mode. There are no drift effects in this mode which are inherent to the gyroscope. However, as for compass mode, the measurement accuracy depends on the stability of the surrounding magnetic field. For this mode no magnetometer calibration is required and also not available. 3.3.3.4 NDOF_FMC_OFF This fusion mode is same as NDOF mode, but with the Fast Magnetometer Calibration turned `OFF'. 3.3.3.5 NDOF This is a fusion mode with 9 degrees of freedom where the fused absolute orientation data is calculated from accelerometer, gyroscope and the magnetometer. The advantages of combining all three sensors are a fast calculation, resulting in high output data rate, and high robustness from magnetic field distortions. In this mode the Fast Magnetometer calibration is turned ON and thereby resulting in quick calibration of the magnetometer and higher output data accuracy. The current consumption is slightly higher in comparison to the NDOF_FMC_OFF fusion mode. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 24 3.4 Axis remap The device mounting position should not limit the data output of the BNO055 device. The axis of the device can be re-configured to the new reference axis. Axis configuration byte: Register Address: AXIS_MAP_CONFIG Bit 7 Bit 6 Reserved Bit 5 Bit 4 Remapped Z axis value Bit 3 Bit 2 Remapped Y axis value Bit 1 Bit 0 Remapped X axis value There are two bits are used to configure the axis remap which will define in the following way, Value 00 01 10 11 Axis Representation X - Axis Y - Axis Z- Axis Invalid Also, when user try to configure the same axis to two or more then BNO055 will take this as invalid condition and previous configuration will be restored in the register map. The default value is: X Axis = X, Y Axis = Y and Z Axis = Z (AXIS_REMAP_CONFIG = 0x24). Axis sign configuration byte: Register Address: AXIS_MAP_SIGN Bit 7 Bit 6 Bit 5 Reserved Bit 4 Bit 3 Value Sign 0 1 Positive Negative Bit 2 Remapped X axis sign Bit 1 Remapped Y axis sign Bit 0 Remapped Z axis sign The default value is 0x00. The default values correspond to the following coordinate system Z; z; z X; x; x Y; y; y Accel; Gyro; Magnet BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 25 Some example placement for axis vs. register settings: P0 P1 P2 P3 P6 P7 TOP VIEW P4 P5 BOTTOM VIEW Z X Y Z X Y P0 For the above described placements, following would be the axis configuration parameters. Placement P0 P1 (default) P2 P3 P4 P5 P6 P7 AXIS_REMAP_CONFIG 0x21 0x24 0x24 0x21 0x24 0x21 0x21 0x24 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 AXIS_REMAP_SIGN 0x04 0x00 0x06 0x02 0x03 0x01 0x07 0x05 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 26 3.5 Sensor Configuration The fusion outputs of the BNO055 are tightly linked with the sensor configuration settings. Due to this fact, the sensor configuration is limited when BNO055 is configured to run in any of the fusion operating mode. In any of the non-fusion modes the configuration settings can be updated by writing to the configuration registers as defined in the following sections. 3.5.1 Default sensor configuration At power-on the sensors are configured with the default settings as defined in Table 3-8 below. Table 3-7: Default sensor configuration at power-on Sensors Accelerometer Gyroscope Magnetometer BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Parameters Value Power Mode NORMAL Range +/- 4g Bandwidth 62.5Hz Resolution 14 bits Power Mode NORMAL Range 2000 /s Bandwidth 32Hz Resolution 16 bits Power Mode FORCED ODR 20Hz XY Repetition Z Repetition Resolution x/y/z 15 16 13/13/15 bits Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 27 3.5.2 Accelerometer configuration The fusion outputs of the BNO055 are tightly linked with the accelerometer sensor settings. Therefore the configuration possibilities are restricted when running in any of the fusion operating modes. The accelerometer configuration can be changed by writing to the ACC_Config register, Table below shows different Accelerometer configurations Table 3-8: Accelerometer configurations Parameter G Range Bandwidth Operation Mode Values [Reg Addr]: Reg Value 2G [ACC_Config]: xxxxxx00b 4G [ACC_Config]: xxxxxx01b 8G [ACC_Config]: xxxxxx10b 16G [ACC_Config]: xxxxxx11b 7.81Hz [ACC_Config]: xxx000xxb 15.63Hz [ACC_Config]: xxx001xxb 31.25Hz [ACC_Config]: xxx010xxb 62.5Hz [ACC_Config]: xxx011xxb 125Hz [ACC_Config]: xxx100xxb 250Hz [ACC_Config]: xxx101xxb 500Hz [ACC_Config]: xxx110xxb 1000Hz [ACC_Config]: xxx111xxb Normal [ACC_Config]: 000xxxxxb Suspend [ACC_Config]: 001xxxxxb Low Power 1 [ACC_Config]: 010xxxxxb Standby [ACC_Config]: 011xxxxxb Low Power 2 [ACC_Config]: 100xxxxxb Deep Suspend [ACC_Config]: 101xxxxxb Restrictions Auto controlled in fusion mode The accelerometer sensor operation mode is not configurable by user when BNO power mode is configured as low power mode. BNO rewrites the user configured value to Normal mode when switching from config mode to any BNO operation mode. This used to achieve the BNO low power mode performance. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 28 3.5.3 Gyroscope configuration The fusion outputs of the BNO055 are tightly linked with the angular rate sensor settings. Therefore the configuration possibilities are restricted when running in any of the fusion operating modes. The gyroscope configuration can be changed by writing to the GYR_Config register, Table below shows different Gyroscope configurations Table 3-9: Gyroscope configurations Parameter Range Bandwidth Operation Mode Values [Reg Addr]: Register value 2000 dps [GYR_Config_0]: xxxxx000b 1000 dps [GYR_Config_0]: xxxxx001b 500dps [GYR_Config_0]: xxxxx010b 250 dps [GYR_Config_0]: xxxxx011b 125 dps [GYR_Config_0]: xxxxx100b 523Hz [GYR_Config_0]: xx000xxxb 230Hz [GYR_Config_0]: xx001xxxb 116Hz [GYR_Config_0]: xx010xxxb 47Hz [GYR_Config_0]: xx011xxxb 23Hz [GYR_Config_0]: xx100xxxb 12Hz [GYR_Config_0]: xx101xxxb 64Hz [GYR_Config_0]: xx110xxxb 32Hz [GYR_Config_0]: xx111xxxb Normal [GYR_Config_1]: xxxxx000b Fast Power up [GYR_Config_1]: xxxxx001b Deep Suspend [GYR_Config_1]: xxxxx010b Suspend [GYR_Config_1]: xxxxx011b Advanced Powersave [GYR_Config_1]: xxxxx100b BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Restrictions Auto controlled in fusion mode Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 29 3.5.4 Magnetometer configuration The fusion outputs of the BNO055 are tightly linked with the magnetometer sensor settings. Therefore the configuration possibilities are restricted when running in any of the fusion operating modes. The magnetometer configuration can be changed by writing to the MAG_Config register, Table below shows different Magnetometer configurations. Table 3-10: Magnetometer configurations Parameter Data output rate Operation Mode Power Mode Values [Reg Addr]: Register value 2Hz [MAG_Config]: xxxxx000b 6Hz [MAG_Config]: xxxxx001b 8Hz [MAG_Config]: xxxxx010b 10Hz [MAG_Config]: xxxxx011b 15Hz [MAG_Config]: xxxxx100b 20Hz [MAG_Config]: xxxxx101b 25Hz [MAG_Config]: xxxxx110b 30Hz [MAG_Config]: xxxxx111b Low Power [MAG_Config]: xxx00xxxb Regular [MAG_Config]: xxx01xxxb Enhanced Regular [MAG_Config]: xxx10xxxb High Accuracy [MAG_Config]: xxx11xxxb Normal [MAG_Config]: x00xxxxxb Sleep [MAG_Config]: x01xxxxxb Suspend [MAG_Config]: x10xxxxxb Force Mode [MAG_Config]: x11xxxxxb BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Restrictions Auto controlled in fusion mode Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 30 3.6 Output data Depending on the selected operating mode the device will output either un-calibrated sensor data (in non-fusion mode) or calibrated / fused data (in fusion mode), this section describes the output data for each modes. 3.6.1 Unit selection The measurement units for the various data outputs (regardless of operation mode) can be configured by writing to the UNIT_SEL register as described in Table 3-9. Table 3-11: unit selection Data Units 2 [Reg Addr]: Register Value Acceleration, Linear Acceleration, Gravity vector Magnetic Field Strength m/s Angular Rate Dps [UNIT_SEL] : xxxxxx0xb Rps [UNIT_SEL] : xxxxxx1xb Degrees [UNIT_SEL] : xxxxx0xxb Radians [UNIT_SEL] : xxxxx1xxb Euler Angles Quaternion Temperature mg Micro Tesla [UNIT_SEL] : xxxxxxx0b [UNIT_SEL] : xxxxxxx1b NA Quaternion units C NA [UNIT_SEL] : xxx0xxxxb F [UNIT_SEL] : xxx1xxxxb 3.6.2 Data output format The data output format can be selected by writing to the UNIT_SEL register, this allows user to switch between the orientation definition described by Windows and Android operating systems. Table 3-12: Fusion data output format Parameter Fusion data output format Values Windows Android [Reg Addr]: Register value [UNIT_SEL]: 0xxxxxxxb [UNIT_SEL]: 1xxxxxxxb The output data format is based on the following convention regarding the rotation angles for roll, pitch and heading / yaw (compare also section 3.4): Table 3-13: Rotation angle conventions Rotation angle Pitch Roll Heading / Yaw Range (Android format) Range (Windows format) +180 to -180 (turning -180 to +180 (turning clockclockwise decreases values) wise increases values) -90 to +90 (increasing with increasing inclination) 0 to 360 (turning clockwise increases values) BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 31 3.6.3 Fusion Output data rates Table 3-14: Fusion output data rates Data input rate Data output rate Accel Mag Gyro Algo calling rate IMU 100Hz NA 100Hz 100Hz 100Hz NA 100Hz Fusion data 100Hz COMPASS 20Hz 20Hz NA 20Hz 20Hz 20Hz NA 20Hz M4G 50Hz 50Hz NA 50Hz 50Hz 50Hz NA 50Hz NDOF_FMC_OFF 100Hz 20Hz 100Hz 100Hz 100Hz 20Hz 100Hz 100Hz NDOF 100Hz 20Hz 100Hz 100Hz 100Hz 20Hz 100Hz 100Hz BNO055 Operating Mode Accel Mag Gyro 3.6.4 Sensor calibration data The following section describes the register holding the calibration data of the sensors (see chapter 3.11). The offset and radius data can be read from these registers and stored in the host system, which could be later used to get the correct orientation data after `Power on Reset' of the sensor. 3.6.4.1 Accelerometer offset The accelerometer offset can be configured in the following registers, shown in the table below. There are 6 bytes required to configure the accelerometer offset (2 bytes for each of the 3 axis X, Y and Z). Configuration will take place only when the user writes the last byte (i.e., ACC_OFFSET_Z_MSB). Table 3-15: Accelerometer Default-Reg settings Reg Name ACC_OFFSET_X_LSB ACC_OFFSET_X_MSB ACC_OFFSET_Y_LSB ACC_OFFSET_Y_MSB ACC_OFFSET_Z_LSB ACC_OFFSET_Z_MSB Default Reg Value (Bit 0 - Bit 7) 0x00 0x00 0x00 0x00 0x00 0x00 The range of the offsets varies based on the G-range of accelerometer sensor. Table 3-16: Accelerometer G-range settings Accelerometer G-range 2G 4G 8G 16G Maximum Offset range in mg +/- 2000 +/- 4000 +/- 8000 +/- 16000 Table 3-17: Accelerometer Unit settings Unit m/s 2 mg BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Representation 1 m/s2 = 100 LSB 1 mg = 1 LSB Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 32 3.6.4.2 Magnetometer offset The magnetometer offset can be configured in the following registers, Table 3-18: Magnetometer Default-Reg settings Reg Name MAG_OFFSET_X_LSB MAG_OFFSET_X_MSB MAG_OFFSET_Y_LSB MAG_OFFSET_Y_MSB MAG_OFFSET_Z_LSB MAG_OFFSET_Z_MSB Default Reg Value (Bit 0 - Bit 7) 0x00 0x00 0x00 0x00 0x00 0x00 There are 6 bytes required to configure the magnetometer offset (bytes (2 bytes for each of the 3 axis X, Y and Z). Configuration will take place only when the user writes the last byte (i.e., MAG_OFFSET_Z_MSB). Therefore the last byte must be written whenever the user wants to changes the configuration. The range of the magnetometer offset is +/-6400 in LSB. Table 3-19: Magnetometer Unit settings Unit Representation T 1 T = 16 LSB 3.6.4.3 Gyroscope offset The gyroscope offset can be configured in the following registers, shown in the table below Table 3-20: Gyroscope Default Reg-settings Reg Name GYR_OFFSET_X_LSB GYR_OFFSET_X_MSB GYR_OFFSET_Y_LSB GYR_OFFSET_Y_MSB GYR_OFFSET_Z_LSB GYR_OFFSET_Z_MSB Default Reg Value (Bit 0 - Bit 7) 0x00 0x00 0x00 0x00 0x00 0x00 There are 6 bytes required to configure the gyroscope offset (bytes (2 bytes for each of the 3 axis X, Y and Z). Configuration will take place only when the user writes the last byte (i.e., GYR_OFFSET_Z_MSB). Therefore the last byte must be written whenever the user wants to changes the configuration. The range of the offset varies based on the dps-range of gyroscope sensor. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 33 Table 3-21: Gyroscope range settings Gyroscope dps range 2000 1000 500 250 125 Maximum Offset range in LSB +/- 32000 +/- 16000 +/- 8000 +/- 4000 +/- 2000 Table 3-22: Gyroscope unit settings Unit Representation Dps 1 Dps = 16 LSB Rps 1 Rps = 900 LSB 3.6.4.4 Radius The radius of accelerometer, magnetometer and gyroscope can be configured in the following registers, Table 3-23: Radius Default-Reg settings Reg Name ACC_RADIUS_LSB ACC_RADIUS_MSB MAG_RADIUS_LSB MAG_RADIUS_MSB Default Reg Value (Bit 0 - Bit 7) 0x00 0x00 0x00 0x00 There are 4 bytes (2 bytes for each accelerometer and magnetometer) to configure the radius. Configuration will take place only when user writes to the last byte (i.e., ACC_RADIUS_MSB and MAG_RADIUS_MSB). Therefore the last byte must be written whenever the user wants to changes the configuration. The range of the radius for accelerometer is +/-1000, magnetometer is +/-960 and Gyroscope is NA. Table 3-24: Radius range settings Radius for sensor Accelerometer Magnetometer Maximum Range +/- 1000 LSB +/- 960 LSB 3.6.5 Output data registers 3.6.5.1 Acceleration data In non-fusion mode uncompensated acceleration data for each axis X/Y/Z, can be read from the appropriate ACC_DATA__LSB and ACC_DATA__MSB registers. In fusion mode the fusion algorithm output offset compensated acceleration data for each axis X/Y/Z, the output data can be read from the appropriate ACC_DATA__LSB and ACC_DATA__MSB registers. Refer table below for information regarding the data types for the acceleration data. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 34 Table 3-25: Acceleration data Parameter Data type bytes Accel_Data_X signed 2 Accel_Data_Y signed 2 Accel_Data_Z signed 2 3.6.5.2 Magnetic Field Strength In non-fusion mode uncompensated field strength data for each axis X/Y/Z, can be read from the appropriate MAG_DATA__LSB and MAG_DATA__MSB registers. In fusion mode the fusion algorithm output offset compensated magnetic field strength data for each axis X/Y/Z, the output data can be read from the appropriate MAG_DATA__LSB and MAG_DATA__MSB registers. Refer table below for information regarding the data types for the magnetic field strength. Table 3-26: Magnetic field strength data Parameter Data type bytes Mag_Data_X signed 2 Mag_Data_Y signed 2 Mag_Data_Z signed 2 3.6.5.3 Angular Velocity In non-fusion mode uncompensated angular velocity (yaw rate) data for each axis X/Y/Z, can be read from the appropriate GYR_DATA__LSB and GYR_DATA__MSB registers. In fusion mode the fusion algorithm output offset compensated angular velocity (yaw rate) data for each axis X/Y/Z, the output data can be read from the appropriate GYR_DATA__LSB and GYR_DATA__MSB registers. Refer table below for information regarding the data types for the angular velocity. Table 3-27: Yaw rate data Parameter Data type bytes Gyr_Data_X signed 2 Gyr_Data_Y signed 2 Gyr_Data_Z signed 2 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 35 3.6.5.4 Orientation (Euler angles) Orientation output only available in fusion operation modes. The fusion algorithm output offset and tilt compensated orientation data in Euler angles format for each DOF Heading/Roll/Pitch, the output data can be read from the appropriate EUL_LSB and EUL__MSB registers. Refer table below for information regarding the data types and the unit representation for the Euler angle format. Table 3-28: Compensated orientation data in Euler angles format Parameter Data type bytes EUL_Heading Signed 2 EUL_Roll Signed 2 EUL_Pitch Signed 2 Table 3-29: Euler angle data representation Unit Representation Degrees 1 degree = 16 LSB Radians 1 radian = 900 LSB 3.6.5.5 Orientation (Quaternion) Orientation output only available in fusion operating modes. The fusion algorithm output offset and tilt compensated orientation data in quaternion format for each DOF w/x/y/z, the output data can be read from the appropriate QUA_DATA__LSB and QUA_DATA__MSB registers. Refer table below for information regarding the data types and the unit representation for the Orientation output. Table 3-30: Compensated orientation data in quaternion format Parameter Data type bytes QUA_Data_w Signed 2 QUA_Data_x Signed 2 QUA_Data_y Signed 2 QUA_Data_z Signed 2 Table 3-31: Quaternion data representation Unit Representation Quaternion (unit less) 1 Quaternion (unit less) = 2^14 LSB BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 36 3.6.5.6 Linear Acceleration Linear acceleration output only available in fusion operating modes. The fusion algorithm output linear acceleration data for each axis x/y/z, the output data can be read from the appropriate LIA_DATA__LSB and LIA_DATA__MSB registers. Refer table below for further information regarding the data types and the unit representation for Linear acceleration Table 3-32: Linear Acceleration Data Parameter Data type bytes LIA_Data_X signed 2 LIA_Data_Y signed 2 LIA_Data_Z signed 2 Table 3-33: Linear Acceleration data representation Unit m/s Representation 2 1 m/s2 = 100 LSB mg 1 mg = 1 LSB 3.6.5.7 Gravity Vector Gravity Vector output only available in fusion operating modes. The fusion algorithm output gravity vector data for each axis x/y/z, the output data can be read from the appropriate GRV_DATA__LSB and GRV_DATA__MSB registers. Refer table below for further information regarding the data types and the unit representation for the Gravity vector. Table 3-34: Gravity Vector Data Parameter Data type bytes GRV_Data_X signed 2 GRV_Data_Y signed 2 GRV_Data_Z signed 2 Table 3-35: Gravity Vector data representation Unit m/s 2 mg BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Representation 1 m/s2 = 100 LSB 1 mg = 1 LSB Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 37 3.6.5.8 Temperature The temperature output data can be read from the TEMP register. The table below describes the output data type and data representation (depending on selected unit). The temperature can be read from one of two sources, the temperature source can be selected by writing to the TEMP_SOURCE register as detailed below. Table 3-36: Temperature Data Parameter Data type bytes TEMP signed 1 Table 3-37: Temperature data representation Unit Representation C 1C = 1 LSB F 2 F = 1 LSB Table 3-38: Temperature Source Selection Source [Reg Addr]: Register Value Accelerometer [TEMP_SOURCE]: xxxxxx00b Gyroscope [TEMP_SOURCE]: xxxxxx01b 3.7 Data register shadowing This section describes the two methods to read sensor data from the BNO055 register map. In the first method also called multi byte read (or burst read) the data consistency is ensured by data register shadowing and hence the LSB and MSB of each axis are all referring to the same instance (refer section 4.6 I2C read access) Whereas in the single byte reads, the MSB may get updated when the data in LSB is read and thereby resulting in data inconsistency. So depending upon the application, the user may select the type of data read to ensure that the correct data is being read. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 38 3.8 Interrupts 3.8.1 Interrupt Pin INT is configured as interrupt pin for signaling an interrupt to the host. The interrupt trigger is configured as raising edge and is latched on to the INT pin. Once an interrupt occurs, the INT pin is set to high and will remain high until it is reset by host. This can be done by setting RST_INT in SYS_TRIGGER register. Interrupts can be enabled by setting the corresponding bit in the interrupt enable register (INT_EN) and disabled when it is cleared. Interrupt Pin Masking Interrupts can be routed to the INT pin by setting the corresponding interrupt bit in the INT_MSK register. Interrupt Status Interrupt occurrences are stored in the interrupt status register (INT_STA). All bits in this register are cleared on read. 3.8.2 Interrupt Settings 3.8.2.1 Accelerometer Slow/No Motion Interrupt The slow-motion/no-motion interrupt engine can be configured in two modes. Slow-motion Interrupt is triggered when the measured slope of at least one enabled axis exceeds the programmable slope threshold for a programmable number of samples. Hence the engine behaves similar to the any-motion interrupt, but with a different set of parameters. In order to suppress false triggers, the interrupt is only generated (cleared) if a certain number N of consecutive slope data points is larger (smaller) than the slope threshold given by slo_no_mot_dur<1:0>. The number is N = slo_no_mot_dur<1:0> + 1. In no-motion mode an interrupt is generated if the slope on all selected axes remains smaller than a programmable threshold for a programmable delay time. Figure 11 shows the timing diagram for the no-motion interrupt. The scaling of the threshold value is identical to that of the slow-motion interrupt. However, in no-motion mode register slo_no_mot_dur defines the delay time before the no-motion interrupt is triggered. Table 3-39 lists the delay times adjustable with register slo_no_mot_dur. The timer tick period is 1 second. Hence using short delay times can result in considerable timing uncertainty. If bit SM/NM is set to `1' (`0'), the no-motion/slow-motion interrupt engine is configured in the no-motion (slow-motion) mode. Common to both modes, the engine monitors the slopes of the axes that have been enabled with bits AM/NM_X_AXIS, AM/NM_Y_AXIS, and AM/NM_Z_AXIS for the x-axis, y-axis and z-axis, respectively. The measured slope values are continuously compared against the threshold value defined in register ACC_NM_THRES. The scaling is such that 1 LSB of ACC_NM_THRES corresponds to 3.91 mg in 2g-range (7.81 mg in 4g-range, 15.6 mg in 8g-range and 31.3 mg in 16g-range). Therefore the maximum value is 996 mg in 2g-range (1.99g in 4g-range, 3.98g in 8g-range and 7.97g in 16g-range). The time difference between the successive acceleration samples depends on the selected bandwidth and equates to 1/(2 * bw). BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 39 Table 3-39: No-motion time-out periods Delay time 1s 2s 3s ... 15 s 16 s slo_no_mot_dur 0 1 2 ... 14 15 slo_no_mot_dur 16 17 18 19 20 21 Delay time 40 s 48 s 56 s 64 s. 72 s 80 s slo_no_mot_dur 32 33 34 ... 62 63 Delay Time 88 s 96 s 104 s ... 328 s 336 s Note: slo_no_mot_dur values 22 to 31 are not specified acceleration acc(t0+t) acc(t0) slope axis x, y, or z slope(t0+t)= acc(t0+t) - acc(t0) axis x, y, or z slo_no_mot_th -slo_no_mot_th slo_no_mot_dur timer INT time Table 3-40: Timing of No-motion interrupt Params Detection Type Interrupt Parameters Value [Reg Addr]: Register Value No Motion [ACC_NM_SET]: xxxxxxx1b Slow Motion [ACC_NM_SET]: xxxxxxx0b Threshold [ACC_NM_THRE]: bit7:bit0 Duration [ACC_NM_SET]: bit6:bit1 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Axis selection Page 40 X-axis [ACC_INT_Settings]: xxxxx1xxb Y-axis [ACC_INT_Settings]: xxxx1xxxb Z-axis [ACC_INT_Settings]: xxx1xxxxb 3.8.2.2 Accelerometer Any Motion Interrupt The any-motion interrupt uses the slope between successive acceleration signals to detect changes in motion. An interrupt is generated when the slope (absolute value of acceleration difference) exceeds a preset threshold. It is cleared as soon as the slope falls below the threshold. The principle is made clear in Figure 2: Principle of any-motion detection. acceleration acc(t0) acc(t0-1/(2*bw)) time slope(t0)=acc(t0)-acc(t0-1/(2*bw)) slope slope_th time slope_dur slope_dur INT time Figure 2: Principle of any-motion detection The threshold is defined through register ACC_AM_THRES. In terms of scaling 1 LSB of ACC_AM_THRES corresponds to 3.91 mg in 2g-range (7.81 mg in 4g-range, 15.6 mg in 8grange and 31.3 mg in 16g-range). Therefore the maximum value is 996 mg in 2g-range (1.99g in 4g-range, 3.98g in 8g-range and 7.97g in 16g-range). The time difference between the successive acceleration signals depends on the selected bandwidth and equates to 1/(2*bandwidth) (t=1/(2*bw)). In order to suppress false triggers, the interrupt is only generated (cleared) if a certain number N of consecutive slope data points is larger (smaller) than the slope threshold given by ACC_AM_THRES. This number is set by the AM_DUR bits. It is N = AM_DUR + 1. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 41 Example: AM_DUR = 00b, ..., 11b = 1decimal, ..., 4decimal. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 42 Enabling (disabling) for each axis: Any-motion detection can be enabled (disabled) for each axis separately by writing 1 (0) to bits AM/NM_X_AXIS, AM/NM_Y_AXIS, AM/NM_Z_AXIS. The criteria for any-motion detection are fulfilled and the slope interrupt is generated if the slope of any of the enabled axes exceeds the threshold ACC_AM_THRES for [AM_DUR +1] consecutive times. As soon as the slopes of all enabled axes fall or stay below this threshold for [AM_DUR +1] consecutive times the interrupt is cleared unless interrupt signal is latched. Table 3-41: Any-motion Interrupt parameters and Axis selection Params Interrupt Parameters Axis selection Value [Reg Addr]: Register Value Threshold [ACC_AM_THRES]: bit7:bit0 Duration [ACC_INT_Settings]: bit1:bit0 X-axis [ACC_INT_Settings]: xxxxx1xxb Y-axis [ACC_INT_Settings]: xxxx1xxxb Z-axis [ACC_INT_Settings]: xxx1xxxxb 3.8.2.3 Accelerometer High G Interrupt This interrupt is based on the comparison of acceleration data against a high-g threshold for the detection of shock or other high-acceleration events. The high-g interrupt is enabled (disabled) per axis by writing 1 (0) to bits ACC_HIGH_G in the INT_EN register and enabling the axis in with bits HG_X_AXIS, HG_Y_AXIS, and HG_Z_AXIS, respectively in the ACC_INT_Settings register. The high-g threshold is set through the ACC_HG_THRES register. The meaning of an LSB of ACC_HG_THRES depends on the selected g-range: it corresponds to 7.81 mg in 2g-range, 15.63 mg in 4grange, 31.25 mg in 8g-range, and 62.5 mg in 16g-range (i.e. increment depends from grange setting). The high-g interrupt is generated if the absolute value of the acceleration of at least one of the enabled axes (or relation) is higher than the threshold for at least the time defined by the ACC_HG_DURATION register. The interrupt is reset if the absolute value of the acceleration of all enabled axes (and relation) is lower than the threshold for at least the time defined by the ACC_HG_DURATION register. The interrupt status is stored in bit ACC_HIGH_G in the INT_STA register. The relation between the content of ACC_HG_DURATION and the actual delay of the interrupt generation is delay [ms] = [ACC_HG_DURATION + 1] * 2 ms. Therefore, possible delay times range from 2 ms to 512 ms. Table 3-42: High-G Interrupt parameters and Axis selection Params Interrupt Parameters Axis selection Value [Reg Addr]: Register Value Threshold [ACC_HG_THRES]: bit7 : bit0 Duration [ACC_HG_DURATION]: bit7 : bit0 X-axis [ACC_INT_Settings]: xx1xxxxxb Y-axis [ACC_INT_Settings]: x1xxxxxxb Z-axis [ACC_INT_Settings]: 1xxxxxxxb BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 43 3.8.2.4 Gyroscope High Rate Interrupt This interrupt is based on the comparison of angular rate data against a high-rate threshold for the detection of shock or other high-angular rate events. The principle is made clear in Figure 3 below: Figure 3: High rate interrupt The high-rate interrupt is enabled (disabled) per axis by writing 1 (0) to bits GYRO_HIGH_RATE in the INT_EN register and for each axis by writing to the HR_X_AXIS, HR_Y_AXIS, and HR_Z_AXIS, respectively in the GYR_INT_SETTING register. The highrate threshold is set through the HR__Threshold bits in the appropriate GYR_HR__SET register. The meaning of an LSB of HR__Threshold depends on the selected /s-range: it corresponds to 62.5/s in 2000/s-range, 31.25/s in 1000/srange, 15.625/s in 500/s -range ...). The HR__Threshold register setting 0 corresponds to 62.26/s in 2000/s-range, 31.13/s in 1000/s-range, 15.56/s in 500/srange .... Therefore the maximum value is 1999.76/s in 2000/s-range (999.87/s 1000/srange, 499.93/s in 500/s -range ...). A hysteresis can be selected by setting the HR__THRES_HYST bits. Analogously to threshold, the meaning of an LSB of HR__THRES_HYST bits is /s-range dependent: The HR__THRES_HYST register setting 0 corresponds to an angular rate difference of 62.26/s in 2000/s-range, 31.13/s in 1000/s-range, 15.56/s in 500/s-range .... The meaning of an LSB of HR__THRES_HYST depends on the selected /s-range too: it corresponds to 62.5/s in 2000/s-range, 31.25/s in 1000/s-range, 15.625/s in 500/s range ...). The high-rate interrupt is generated if the absolute value of the angular rate of at least one of the enabled axes (or relation) is higher than the threshold for at least the time defined by the GYR_DUR_ register. The interrupt is reset if the absolute value of the angular rate of all enabled axes (and relation) is lower than the threshold minus the hysteresis. In bit GYR_HIGH_RATE in the INT_STA the interrupt status is stored. The relation between the content of GYR_DUR_ and the actual delay of the interrupt generation is delay [ms] = [ GYR_DUR_ + 1] * 2.5 ms. Therefore, possible delay times range from 2.5 ms to 640 ms. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 44 Table 3-43: High Rate Interrupt parameters and Axis selection Params Axis selection High Rate Filter settings Interrupt Settings Xaxis Interrupt Settings Yaxis Interrupt Settings Xaxis Value [Reg Addr]: Register Value X-axis [GYR_INT_SETTING]: xxxx1xxxb Y-axis [GYR_INT_SETTING]: xxx1xxxxb Z-axis [GYR_INT_SETTING]: xx1xxxxxb Filtered [GYR_INT_SETTING]: 0xxxxxxxb Unfiltered [GYR_INT_SETTING]: 1xxxxxxxb Threshold [GYR_HR_X_SET]: bit4 : bit0 Duration [GYR_DUR_X]: bit7 : bit0 Hysteresis [GYR_HR_X_SET]: bit6 : bit5 Threshold [GYR_HR_Y_SET]: bit4 : bit0 Duration [GYR_DUR_Y]: bit7 : bit0 Hysteresis [GYR_HR_Y_SET]: bit6 : bit5 Threshold [GYR_HR_Z_SET]: bit4 : bit0 Duration [GYR_DUR_Z]: bit7 : bit0 Hysteresis [GYR_HR_Z_SET]: bit6 : bit5 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 45 3.8.2.5 Gyroscope Any Motion Interrupt Any-motion (slope) detection uses the slope between successive angular rate signals to detect changes in motion. An interrupt is generated when the slope (absolute value of angular rate difference) exceeds a preset threshold. It is cleared as soon as the slope falls below the threshold. The principle is made clear in Figure 4. angular rate rate(t0) rate(t0-1/(4*fs)) time slope(t0)=gyro(t0)-gyro(t0-1/(2*bw)) slope slope_th time slope_dur slope_dur INT time Figure 4: Principle of any-motion detection The threshold is defined through register GYR_AM_THRES. In terms of scaling 1 LSB of GYR_AM_THRES corresponds to 1 /s in 2000/s-range (0.5/s in 1000/s-range, 0.25/s in 500/s -range ...). Therefore the maximum value is 125/s in 2000/s-range (62.5/s 1000/s-range, 31.25 in 500/s -range ...). The time difference between the successive angular rate signals depends on the selected update rate(fs) which is coupled to the bandwidth and equates to 1/(4*fs) (t=1/(4*fs)). For bandwidth settings with an update rate higher than 400Hz (bandwidth =0,1,2) fs is set to 400Hz. In order to suppress false triggers, the interrupt is only generated (cleared) if a certain number N of consecutive slope data points is larger (smaller) than the slope threshold given by GYR_AM_THRES. This number is set by the Slope Samples bits in the GYR_AM_SET register. It is N = [Slope Samples + 1]*4. N is set in samples. Thus the time is scaling with the update rate (fs). BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 46 3.8.2.6 Enabling (disabling) for each axis Any-motion detection can be enabled (disabled) for each axis separately by writing 1 (0) to bits AM_X_AXIS, AM_Y_AXIS, AM_Z_AXIS in the GYR_INT_SETTING register. The criteria for any-motion detection are fulfilled and the Any-Motion interrupt is generated if the slope of any of the enabled axes exceeds the threshold GYR_AM_THRES for [Slope Samples+1]*4 consecutive times. As soon as the slopes of all enabled axes fall or stay below this threshold for [Slope Samples +1]*4 consecutive times the interrupt is cleared unless interrupt signal is latched. 3.8.2.7 Axis of slope / any motion interrupt The interrupt status is stored in bit GYRO_AM in the INT_EN register. The Any-motion interrupt supplies additional information about the detected slope. Table 3-44: Axis selection and any motion interrupt Params Axis selection Any Motion Filter settings Interrupt Settings Value [Reg Addr]: Register Value X-axis [GYR_INT_SETING]: xxxxxxx1b Y-axis [GYR_INT_SETING]: xxxxxx1xb Z-axis [GYR_INT_SETING]: xxxxx1xxb Filtered [GYR_INT_SETING]: x0xxxxxxb Unfiltered [GYR_INT_SETING]: x1xxxxxxb Threshold [GYR_AM_THRES]: bit6 : bit0 Slope Samples [GYR_AM_SET]: bit1 : bit0 Awake Duration [GYR_AM_SET]: bit3 : bit2 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 47 3.9 Self-Test 3.9.1 Power On Self Test (POST) During the device startup, a power on self test is executed. This feature checks that the connected sensors and microcontroller are responding / functioning correctly. Following tests are executed Table 3-45: Power on Self Test Components Test type Accelerometer Verify chip ID Magnetometer Verify chip ID Gyroscope Verify chip ID Microcontroller Memory Build In Self Test The results of the POST are stored at register ST_RESULT, where a bit set indicates test passed and cleared indicates self test failed. 3.9.2 Build In Self Test (BIST) The host can trigger a self test from CONFIG MODE. The test can be triggered by setting bit SELF_TEST in the in the SYS_TRIGGER register, the results are stored in the ST_RESULT register. During the execution of the system test, all other features are paused. Table 3-46: Power on Self Test Components Test type Accelerometer built in self test Magnetometer built in self test Gyroscope built in self test Microcontroller No test performed 3.10 Boot loader The boot loader is located at the start of the program memory and it is executed at each reset / power-on sequence. It first checks the status of the nBOOT_LOAD_PIN. If the nBOOT_LOAD_PIN is pulled low during reset / power-on sequence, it continues execution in boot loader mode. Otherwise the device continues to boot in application mode. In case there is a firmware update, then an application note would be available in time with the necessary information to upgrade at the host side. Nevertheless it is recommended that the nBOOT_LOAD_PIN is connected as shown in section 5. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 48 3.11 Calibration Though the sensor fusion software runs the calibration algorithm of all the three sensors (accelerometer, gyroscope and magnetometer) in the background to remove the offsets, some preliminary steps had to be ensured for this automatic calibration5 to take place. The accelerometer and the gyroscope are relatively less susceptible to external disturbances, as a result of which the offset is negligible. Whereas the magnetometer is susceptible to external magnetic field and therefore to ensure proper heading accuracy, the calibration steps described below have to be taken. Depending on the sensors been selected in the fusion mode, the following simple steps had to be taken after every `Power on Reset' for proper calibration of the device. 3.11.1 Accelerometer Calibration Place the device in 6 different stable positions for a period of few seconds to allow the accelerometer to calibrate. Make sure that there is slow movement between 2 stable positions The 6 stable positions could be in any direction, but make sure that the device is lying at least once perpendicular to the x, y and z axis. The register CALIB_STAT can be read to see the calibration status of the accelerometer. 3.11.2 Gyroscope Calibration Place the device in a single stable position for a period of few seconds to allow the gyroscope to calibrate The register CALIB_STAT can be read to see the calibration status of the gyroscope. 3.11.3 Magnetometer Calibration Magnetometer in general are susceptible to both hard-iron and soft-iron distortions, but majority of the cases are rather due to the former. And the steps mentioned below are to calibrate the magnetometer for hard-iron distortions. Nevertheless certain precautions need to be taken into account during the positioning of the sensor in the PCB which is described in our HSMI (Handling, Soldering and Mounting Instructions) application note to avoid unnecessary magnetic influences. Compass, M4G & NDOF_FMC_OFF: Make some random movements (for example: writing the number `8' on air) until the CALIB_STAT register indicates fully calibrated. It takes more calibration movements to get the magnetometer calibrated than in the NDOF mode. NDOF: The same random movements have to be made to calibrate the sensor as in the FMC_OFF mode, but here it takes relatively less calibration movements (and slightly higher current consumption) to get the magnetometer calibrated. The register CALIB_STAT can be read to see the calibration status of the magnetometer. 5 It is not possible to disable the automatic calibration which runs in the background BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 49 3.11.4 Reuse of Calibration Profile Once the device is calibrated, the calibration profile can be reused to get the correct orientation data immediately after `Power of Reset' (prior to going through the steps mentioned in the above section). However, once the sensor enters the internal calibration routine, the calibration profile is overwritten with the newly obtained sensor offsets and sensor radius. Depending on the application, necessary steps had to be ensured for proper calibration of the sensor. Reading Calibration profile The calibration profile includes sensor offsets and sensor radius. Host system can read the offsets and radius only after a full calibration is achieved and the operation mode is switched to CONFIG_MODE. Refer to sensor offsets and sensor radius registers. Setting Calibration profile It is important that the correct offsets and corresponding sensor radius are used. Incorrect offsets may result in unreliable orientation data even at calibration accuracy level 3. To set the calibration profile the following steps need to be taken 1. Select the operation mode to CONFIG_MODE 2. Write the corresponding sensor offsets and radius data 3. Change operation mode to fusion mode BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 50 4. Register description 4.1 General Remarks The entire communication with the device is performed by reading from and writing to registers. Registers have a width of 8 bits. There are several registers which are either completely or partially marked as `reserved'. Any reserved bit is ignored when it is written and no specific value is guaranteed when read. It is recommended not to use registers at all which are completely marked as `reserved'. Furthermore it is recommended to mask out (logical and with zero) reserved bits of registers which are partially marked as reserved. Read-Only Registers are marked as shown in Table 4-1: Register Access Coding. Any attempt to write to these registers is ignored. There are bits within some registers that trigger internal sequences. These bits are configured for write-only access and read as value 0. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 51 4.2 Register map The register map is separated into two logical pages, Page 1 contains sensor specific configuration data and Page 0 contains all other configuration parameters and output data. At power-on Page 0 is selected, the PAGE_ID register can be used to identify the current selected page and change between page 0 and page 1. 4.2.1 Register map Page 0 Table 4-1: Register Access Coding read/write read only write only reserved Table 4-2: Register Map Page 0 Register Address 7F-6B 6A 69 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 58 57 56 55 43 - 54 Register Name Reserved MAG_RADIUS_ MSB MAG_RADIUS_ LSB ACC_RADIUS_ MSB ACC_RADIUS_ LSB GYR_OFFSET_ Z_MSB GYR_OFFSET_ Z_LSB GYR_OFFSET_ Y_MSB GYR_OFFSET_ Y_LSB GYR_OFFSET_ X_MSB GYR_OFFSET_ X_LSB MAG_OFFSET _Z_MSB MAG_OFFSET _Z_LSB MAG_OFFSET _Y_MSB MAG_OFFSET _Y_LSB MAG_OFFSET _X_MSB MAG_OFFSET _X_LSB ACC_OFFSET_ Z_MSB ACC_OFFSET_ Z_LSB ACC_OFFSET_ Y_MSB ACC_OFFSET_ Y_LSB ACC_OFFSET_ X_MSB ACC_OFFSET_ X_LSB Reserved Default Value NA bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Magnetometer Radius Magnetometer Radius Accelerometer Radius Accelerometer Radius 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Gyroscope Offset Z <15:8> Gyroscope Offset Z <7:0> Gyroscope Offset Y <15:8> Gyroscope Offset Y <7:0> Gyroscope Offset X <15:8> Gyroscope Offset X <7:0> Magnetometer Offset Z <15:8> Magnetometer Offset Z <7:0> Magnetometer Offset Y <15:8> Magnetometer Offset Y <7:0> Magnetometer Offset X <15:8> Magnetometer Offset X <7:0> Accelerometer Offset Z <15:8> Accelerometer Offset Z <7:0> Accelerometer Offset Y <15:8> Accelerometer Offset Y <7:0> Accelerometer Offset X <15:8> Accelerometer Offset X <7:0> 0x00 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Register Address 42 41 40 Register Name AXIS_MAP_SI GN AXIS_MAP_CO NFIG TEMP_SOURC E 3F SYS_TRIGGER Default Value bit7 bit6 bit5 Page 52 bit4 TBD Remapped Z axis value TBD bit3 bit2 0x02 0x00 CLK_S EL RST_IN T RST_S YS Self_Test 3E PWR_MODE 0x00 OPR_MODE 0x1C 3C Reserved 0xFF 3B UNIT_SEL 0x80 3A SYS_ERR 0x00 System Error Code 39 SYS_STATUS SYS_CLK_STA TUS 0x00 System Status Code 37 INT_STA 0x00 36 ST_RESULT 0x0F CALIB_STAT 0x00 34 TEMP GRV_Data_Z_ MSB GRV_Data_Z_L SB GRV_Data_Y_ MSB GRV_Data_Y_L SB GRV_Data_X_ MSB GRV_Data_X_L SB LIA_Data_Z_M BS LIA_Data_Z_LS B LIA_Data_Y_M BS LIA_Data_Y_LS B LIA_Data_X_M BS LIA_Data_X_LS B QUA_Data_z_ MSB QUA_Data_z_L SB QUA_Data_y_ MSB QUA_Data_y_L SB QUA_Data_x_ MSB QUA_Data_x_L SB QUA_Data_w_ MSB QUA_Data_w_L SB EUL_Pitch_MS B 0x00 32 31 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F Power Mode <1:0> Operation Mode <3:0> ORI_An droid_W indows TEMP_U nit EUL_Unit GYR_Unit ACC_Unit ST_MAI N_CLK 0x00 35 33 bit0 TEMP_Source <1:0> 3D 38 bit1 Remappe Remappe Remappe d X axis d Y axis d Z axis sign sign sign Remapped Y axis Remapped X axis value value ACC_N M ACC_A ACC_HI M GH_G SYS Calib Status 0:3 GYR_HIG GYRO_A H_RATE M ST_MCU ST_GYR GYR Calib Status ACC Calib Status 0:3 0:3 Temperature 0x00 Gravity Vector Data Z <15:8> 0x00 Gravity Vector Data Z <7:0> 0x00 Gravity Vector Data Y <15:8> 0x00 Gravity Vector Data Y <7:0> 0x00 Gravity Vector Data X <15:8> 0x00 Gravity Vector Data X <7:0> 0x00 Linear Acceleration Data Z <15:8> 0x00 Linear Acceleration Data Z <7:0> 0x00 Linear Acceleration Data Y <15:8> 0x00 Linear Acceleration Data Y <7:0> 0x00 Linear Acceleration Data X <15:8> 0x00 Linear Acceleration Data X <7:0> 0x00 Quaternion z Data <15:8> 0x00 Quaternion z Data <7:0> 0x00 Quaternion y Data <15:8> 0x00 Quaternion y Data <7:0> 0x00 Quaternion x Data <15:8> 0x00 Quaternion x Data <7:0> 0x00 Quaternion w Data <15:8> 0x00 Quaternion w Data <7:0> 0x00 Pitch Data <15:8> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 ST_MAG ST_ACC MAG Calib Status 0:3 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Register Address 1E Default Value EUL_Pitch_LSB 0x00 Register Name bit7 bit6 bit5 Page 53 bit4 bit3 bit2 EUL_Roll_MSB 0x00 Roll Data <15:8> 1C EUL_Roll_LSB EUL_Heading_ MSB EUL_Heading_ LSB GYR_DATA_Z_ MSB GYR_DATA_Z_ LSB GYR_DATA_Y_ MSB GYR_DATA_Y_ LSB GYR_DATA_X_ MSB GYR_DATA_X_ LSB MAG_DATA_Z_ MSB MAG_DATA_Z_ LSB MAG_DATA_Y _MSB MAG_DATA_Y _LSB MAG_DATA_X _MSB MAG_DATA_X _LSB ACC_DATA_Z_ MSB ACC_DATA_Z_ LSB ACC_DATA_Y_ MSB ACC_DATA_Y_ LSB ACC_DATA_X_ MSB ACC_DATA_X_ LSB Page ID 0x00 Roll Data <7:0> 0x00 Heading Data <15:8> 0x00 Heading Data <7:0> 0x00 Gyroscope Data Z <15:8> 0x00 Gyroscope Data Z <7:0> 0x00 Gyroscope Data Y <15:8> 0x00 Gyroscope Data Y <7:0> 0x00 Gyroscope Data X <15:8> 0x00 Gyroscope Data X <7:0> 0x00 Magnetometer Data Z <15:8> 0x00 Magnetometer Data Z <7:0> 0x00 Magnetometer Data Y <15:8> 0x00 Magnetometer Data Y <7:0> 0x00 Magnetometer Data X <15:8> 0x00 Magnetometer Data X <7:0> 0x00 Acceleration Data Z <15:8> 0x00 Acceleration Data Z <7:0> 0x00 Acceleration Data Y <15:8> 0x00 Acceleration Data Y <7:0> 0x00 Acceleration Data X <15:8> 0x00 Acceleration Data X <7:0> 0x00 Page ID NA Bootloader Version 0x036 SW Revision ID <15:8> 0x087 SW Revision ID <7:0> 3 BL_Rev_ID SW_REV_ID_M SB SW_REV_ID_L SB GYR_ID 0x0F GYRO chip ID 2 MAG_ID 0x32 MAG chip ID 1 ACC_ID 0xFB ACC chip ID 0 CHIP_ID 0xA0 BNO055 CHIP ID 1A 19 18 17 16 15 14 13 12 11 10 F E D C B A 9 8 7 6 5 4 bit0 Pitch Data <7:0> 1D 1B bit1 6 The current software version is 0.3.0.8 and therefore the SW_REV_ID_MSB is 0x03. However the register default value is subject to change with respect to the updated software. 7 The current software version is 0.3.0.8 and therefore the SW_REV_ID_LSB is 0x08. However the register default value is subject to change with respect to the updated software. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 54 4.2.2 Register map Page 1 Table4-3: Register Map Page 1 Register Address 7F-60 Register Name Reserved Default Value 0x00 5F - 50 UNIQUE_ID n.a. 4F - 20 Reserved 0x00 1F GYR_AM_SET 0x0A 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 GYR_AM_THR ES GYR_DUR_Z GYR_HR_Z_S ET GYR_DUR_Y GYR_HR_Y_S ET GYR_DUR_X GYR_HR_X_S ET GYR_INT_SET ING ACC_NM_SET ACC_NM_THR E ACC_HG_THR ES ACC_HG_DUR ATION ACC_INT_Setti ngs ACC_AM_THR ES bit7 bit6 bit5 bit4 0x01 0x00 0x0B HR_Z_Duration HR_Z_THRES_ HYST <1:0> HR_Z_Threshold <4:0> HR_Y_Duration HR_Y_THRES_ HYST <1:0> HR_Y_Threshold <4:0> HR_X_Duration HR_X_THRES_ HR_X_Threshold <4:0> HYST <1:0> HR_FIL AM_FIL HR_Z_ HR_Y_A HR_X_A AM_Z_A AM_Y_A T T AXIS XIS XIS XIS XIS NO/SLOW Motion Duration <5:0> Accelerometer NO/SLOW motion threshold 0xC0 Accelerometer High G Threshold 0x0F Accelerometer High G Duration 0x14 HG_Z_ HG_Y_ HG_X_ AXIS AXIS AXIS INT_EN 0x00 ACC_N ACC_A ACC_H M M IGH_G F INT_MSK 0x00 ACC_N ACC_A ACC_H M M IGH_G E 0x00 B Reserved GYR_Sleep_C onfig ACC_Sleep_C onfig GYR_Config_1 A GYR_Config_0 0x38 9 MAG_Config 0x6D 8 ACC_Config 0x0D 7 Page ID 0x01 6-0 Reserved n.a. C 0x00 0x00 AM/NM_ Z_AXIS AM/NM_ Y_AXIS AM/NM_ X_AXIS SMNM AM_DUR <1:0> GYR_HI GYRO_A GH_RAT M E GYR_HI GYRO_A GH_RAT M E AUTO_SLP_DURATION <2:0> SLP_DURATION <2:0> SLP_DURATION <3:0> 0x00 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 AM_X_AXIS Accelerometer Any motion threshold 10 D Slope Samples <1:0> 0x0A 0x03 bit0 Gyro Any Motion Threshold <6:0> 0x19 0x19 bit1 Awake Duration <1:0> 0x19 0x01 bit2 BNO unique ID 0x04 0x01 bit3 SLP_MODE GYR_Power_Mode <2:0> GYR_Bandwidth <2:0> MAG_Power_mo MAG_OPR_Mode de <1:0> <1:0> ACC_PWR_Mode <2:0> ACC_BW <2:0> GYR_Range <2:0> MAG_Data_output_rate <2:0> ACC_Range <1:0> Page ID Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 55 4.3 Register description (Page 0) 4.3.1 CHIP_ID 0x00 Access Reset Content bit7 r 1 DATA BNO055 CHIP ID bit6 r 0 bit5 r 1 bits <7:0> bit4 bit3 r r 0 0 BNO055 CHIP ID bit2 r 0 bit1 r 0 bit0 r 0 Description Chip identification code, read-only fixed value 0xA0 4.3.2 ACC_ID 0x01 Access Reset bit7 r bit6 r bit5 r bit4 r bit3 r bit2 r bit1 R bit0 r 0xFB Content ACC chip ID DATA ACC chip ID bits <7:0> Description Chip ID of the Accelerometer device, read-only fixed value 0xFB 4.3.3 MAG_ID 0x02 Access Reset bit7 r bit6 r bit5 r bit4 r bit3 r bit2 r bit1 R bit0 r 0x32 Content MAG chip ID DATA MAG chip ID bits <7:0> Description Chip ID of the Magnetometer device, read-only fixed value 0x32 4.3.4 GYR_ID 0x03 Access Reset bit7 r bit6 r bit4 r bit3 r bit2 r bit1 R bit0 r 0x0F Content DATA GYRO chip ID bit5 r GRYO chip ID bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description Chip ID of the Gyroscope device, read-only fixed value 0x0F Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 56 4.3.5 SW_REV_ID_LSB 0x04 Access Reset bit7 r bit6 r bit5 r Content bit4 r bit3 r bit2 r bit1 r bit0 r SW Revision ID <7:0> DATA SW Revision ID <7:0> bits <7:0> Description Lower byte of SW Revision ID, read-only fixed value depending on SW revision programmed on microcontroller 4.3.6 SW_REV_ID_MSB 0x05 Access Reset bit7 r bit6 r bit5 r Content bit4 r bit3 r bit2 r bit1 r bit0 r SW Revision ID <15:8> DATA SW Revision ID <15:8> bits <7:0> Description Upper byte of SW Revision ID, read-only fixed value depending on SW revision programmed on microcontroller 4.3.7 BL_REV_ID 0x06 Access Reset bit7 r bit6 r bit5 r Content bit4 r bit3 r bit2 r bit1 r bit0 r Bootloader Version DATA Bootloader Version bits <7:0> Description Identifies the version of the bootloader in the microcontroller, read-only 4.3.8 PAGE ID 0x07 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 Content DATA Page ID Page ID bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description Read: Number of currently selected page Write: Change page, 0x00 or 0x01 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 57 4.3.9 ACC_DATA_X_LSB 0x08 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Acceleration Data X <7:0> DATA Acceleration Data X <7:0> bits <7:0> Description Lower byte of X axis Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.10 ACC_DATA_X_MSB 0x09 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Acceleration Data X <15:8> DATA Acceleration Data X <15:8> bits <7:0> Description Upper byte of X axis Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.11 ACC_DATA_Y_LSB 0x0A bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Acceleration Data Y <7:0> DATA Acceleration Data Y <7:0> bits <7:0> Description Lower byte of Y axis Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.12 ACC_DATA_Y_MSB 0x0B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content DATA Acceleration Data Y <15:8> Acceleration Data Y <15:8> bits <7:0> Description Upper byte of Y axis Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 58 4.3.13 ACC_DATA_Z_LSB 0x0C bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Acceleration Data Z <7:0> DATA Acceleration Data Z <7:0> bits <7:0> Description Lower byte of Z axis Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.14 ACC_DATA_Z_MSB 0x0D bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Acceleration Data Z <15:8> DATA Acceleration Data Z <15:8> bits <7:0> Description Upper byte of Z axis Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.15 MAG_DATA_X_LSB 0x0E Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Magnetometer Data X <7:0> DATA Magnetometer Data X <7:0> bits <7:0> Description Lower byte of X axis Magnetometer data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.16 MAG_DATA_X_MSB 0x0F Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content DATA Magnetometer Data X <15:8> Magnetometer Data X <15:8> bits <7:0> Description Upper byte of X axis Magnetometer data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 59 4.3.17 MAG_DATA_Y_LSB 0x10 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Magnetometer Data Y <7:0> DATA Magnetometer Data Y <7:0> bits <7:0> Description Lower byte of Y axis Magnetometer data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.18 MAG_DATA_Y_MSB 0x11 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Magnetometer Data Y <15:8> DATA Magnetometer Data Y <15:8> bits <7:0> Description Upper byte of Y axis Magnetometer data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.19 MAG_DATA_Z_LSB 0x12 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Magnetometer Data Z <7:0> DATA Magnetometer Data Z <7:0> bits <7:0> Description Lower byte of Z axis Magnetometer data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.20 MAG_DATA_Z_MSB 0x13 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content DATA Magnetometer Data Z <15:8> Magnetometer Data Z <15:8> bits <7:0> Description Upper byte of Z axis Magnetometer data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 60 4.3.21 GYR_DATA_X_LSB 0x14 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Gyroscope Data X <7:0> DATA Gyroscope Data X <7:0> bits <7:0> Description Lower byte of X axis Gyroscope data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.22 GYR_DATA_X_MSB 0x15 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Gyroscope Data X <15:8> DATA Gyroscope Data X <15:8> bits <7:0> Description Upper byte of X axis Gyroscope data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.23 GYR_DATA_Y_LSB 0x16 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Gyroscope Data Y <7:0> DATA Gyroscope Data Y <7:0> bits <7:0> Description Lower byte of Y axis Gyroscope data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.24 GYR_DATA_Y_MSB 0x17 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content DATA Gyroscope Data Y <15:8> Gyroscope Data Y <15:8> bits <7:0> Description Upper byte of Y axis Gyroscope data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 61 4.3.25 GYR_DATA_Z_LSB 0x18 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Gyroscope Data Z <7:0> DATA Gyroscope Data Z <7:0> bits <7:0> Description Lower byte of Z axis Gyroscope data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.26 GYR_DATA_Z_MSB 0x19 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Gyroscope Data Z <15:8> DATA Gyroscope Data Z <15:8> bits <7:0> Description Upper byte of Z axis Gyroscope data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.27 EUL_DATA_X_LSB 0x1A Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Heading Data <7:0> DATA Heading Data <7:0> bits <7:0> Description Lower byte of heading data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.28 EUL_DATA_X_MSB 0x1B Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content DATA Heading Data <15:8> Heading Data <15:8> bits <7:0> Description Upper byte of heading data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 62 4.3.29 EUL_DATA_Y_LSB 0x1C bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Roll Data <7:0> DATA Roll Data <7:0> bits <7:0> Description Lower byte of roll data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.30 EUL_DATA_Y_MSB 0x1D bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Roll Data <15:8> DATA Roll Data <15:8> bits <7:0> Description Upper byte of Y axis roll data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.31 EUL_DATA_Z_LSB 0x1E bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Pitch Data <7:0> DATA Pitch Data <7:0> bits <7:0> Description Lower byte of pitch data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.32 EUL_DATA_Z_MSB 0x1F bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content DATA Pitch Data <15:8> Pitch Data <15:8> bits <7:0> Description Upper byte of pitch data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 63 4.3.33 QUA_DATA_W_LSB 0x20 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Quaternion Data W <7:0> DATA Quaternion Data W <7:0> bits <7:0> Description Lower byte of w axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.34 QUA_DATA_W_MSB 0x21 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Quaternion Data W <15:8> DATA Quaternion Data W <15:8> bits <7:0> Description Upper byte of w axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.35 QUA_DATA_X_LSB 0x22 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Quaternion Data X <7:0> DATA Quaternion Data X <7:0> bits <7:0> Description Lower byte of X axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.36 QUA_DATA_X_MSB 0x23 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content DATA Quaternion Data X <15:8> Quaternion Data X <15:8> bits <7:0> Description Upper byte of X axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 64 4.3.37 QUA_DATA_Y_LSB 0x24 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Quaternion Data Y <7:0> DATA Quaternion Data Y <7:0> bits <7:0> Description Lower byte of Y axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.38 QUA_DATA_Y_MSB 0x25 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Quaternion Data Y <15:8> DATA Quaternion Data Y <15:8> bits <7:0> Description Upper byte of Y axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.39 QUA_DATA_Z_LSB 0x26 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Quaternion Data Z <7:0> DATA Quaternion Data Z <7:0> bits <7:0> Description Lower byte of Z axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.40 QUA_DATA_Z_MSB 0x27 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content DATA Quaternion Data Z <15:8> Quaternion Data Z <15:8> bits <7:0> Description Upper byte of Z axis Quaternion data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 65 4.3.41 LIA_DATA_X_LSB 0x28 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Linear Acceleration Data X <7:0> DATA Linear Acceleration Data X <7:0> bits <7:0> Description Lower byte of X axis Linear Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.42 LIA_DATA_X_MSB 0x29 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Linear Acceleration Data X <15:8> DATA Linear Acceleration Data X <15:8> bits <7:0> Description Upper byte of X axis Linear Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.43 LIA_DATA_Y_LSB 0x2A bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Linear Acceleration Data Y <7:0> DATA Linear Acceleration Data Y <7:0> bits <7:0> Description Lower byte of Y axis Linear Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.44 LIA_DATA_Y_MSB 0x2B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content DATA Linear Acceleration Data Y <15:8> Linear Acceleration Data Y <15:8> bits <7:0> Description Upper byte of Y axis Linear Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 66 4.3.45 LIA_DATA_Z_LSB 0x2C bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Linear Acceleration Data Z <7:0> DATA Linear Acceleration Data Z <7:0> bits <7:0> Description Lower byte of Z axis Linear Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.46 LIA_DATA_Z_MSB 0x2D bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Linear Acceleration Data Z <15:8> DATA Linear Acceleration Data Z <15:8> bits <7:0> Description Upper byte of Z axis Linear Acceleration data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.47 GRV_DATA_X_LSB 0x2E Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Gravity Vector Data X <7:0> DATA Gravity Vector Data X <7:0> bits <7:0> Description Lower byte of X axis Gravity Vector data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.48 GRV_DATA_X_MSB 0x2F Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content DATA Gravity Vector Data X <15:8> Gravity Vector Data X <15:8> bits <7:0> Description Upper byte of X axis Gravity Vector data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 67 4.3.49 GRV_DATA_Y_LSB 0x30 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Gravity Vector Data Y <7:0> DATA Gravity Vector Data Y <7:0> bits <7:0> Description Lower byte of Y axis Gravity Vector data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.50 GRV_DATA_Y_MSB 0x31 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Gravity Vector Data Y <15:8> DATA Gravity Vector Data Y <15:8> bits <7:0> Description Upper byte of Y axis Gravity Vector data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.51 GRV_DATA_Z_LSB 0x32 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Gravity Vector Data Z <7:0> DATA Gravity Vector Data Z <7:0> bits <7:0> Description Lower byte of Z axis Gravity Vector data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 4.3.52 GRV_DATA_Z_MSB 0x33 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content DATA Gravity Vector Data Z <15:8> Gravity Vector Data Z <15:8> bits <7:0> Description Upper byte of Z axis Gravity Vector data, read only The output units can be selected using the UNIT_SEL register and data output type can be changed by updating the Operation Mode in the OPR_MODE register, see section 3.3 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 68 4.3.53 TEMP 0x34 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content Temperature DATA Temperature bits <7:0> Description Temperature data, read only The output units can be selected using the UNIT_SEL register and data output source can be selected by updating the TEMP_SOURCE register, see section 3.6.5.8 4.3.54 CALIB_STAT 0x35 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Access Reset Content SYS Calib Status <0:1> DATA SYS Calib Status <0:1> GYR Calib Status <0:1> ACC Calib Status <0:1> MAG Calib Status <0:1> bits <7:6> GYR Calib Status <0:1> ACC Calib Status <0:1> MAG Calib Status <0:1> Description Current system calibration status, depends on status of all sensors, read-only Read: 3 indicates fully calibrated; 0 indicates not calibrated Current calibration status of Gyroscope, read-only Read: 3 indicates fully calibrated; 0 indicates not calibrated Current calibration status of Accelerometer, read-only Read: 3 indicates fully calibrated; 0 indicates not calibrated Current calibration status of Magnetometer, read-only Read: 3 indicates fully calibrated; 0 indicates not calibrated <5:4> <3:2> <1:0> 4.3.55 ST_RESULT 0x36 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r r r r r 1 r 1 r 1 r 1 ST_MCU ST_GYR ST_MAG ST_ACC Content Reserved DATA ST_MCU bits 3 ST_GYR 2 ST_MAG 1 ST_ACC 0 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description Microcontroller self test result. Read: 1 indicated test passed; 0 indicates test failed Gyroscope self test result. Read: 1 indicated test passed; 0 indicates test failed Magnetometer self test result. Read: 1 indicated test passed; 0 indicates test failed Accelerometer self test result. Read: 1 indicated test passed; 0 indicates test failed Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 69 4.3.56 INT_STA 0x37 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Access Reset r 0 r 0 r 0 r r 0 r 0 r r Content ACC_NM ACC_AM ACC_HIG H_G Reserved GYR_HIG H_RATE GYRO_AM Reserved Reserved DATA ACC_NM bits 7 ACC_AM 6 ACC_HIGH_G 5 GYR_HIGH_RATE 3 GYRO_AM 2 Description Status of Accelerometer no motion or slow motion interrupt, read only Read: 1 indicates interrupt triggered; 0 indicates no interrupt triggered Status of Accelerometer any motion interrupt, read only Read: 1 indicates interrupt triggered; 0 indicates no interrupt triggered Status of Accelerometer high-g interrupt, read only Read: 1 indicates interrupt triggered; 0 indicates no interrupt triggered Status of gyroscope high rate interrupt, read only Read: 1 indicates interrupt triggered; 0 indicates no interrupt triggered Status of gyroscope any motion interrupt, read only Read: 1 indicates interrupt triggered; 0 indicates no interrupt triggered 4.3.57 SYS_CLK_STATUS 0x38 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Access Reset r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content Reserved Reserved Reserved Reserved Reserved Reserved Reserved ST_MAIN_ CLK DATA 0 bits 0 1 0 Description Indicates that, it is Free to configure the CLK SRC (External or Internal) Indicates that, it is in Configuration state 4.3.58 SYS_STATUS 0x39 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 Content DATA System Status Code System Status Code bits <7:0> Description Read: 0 System idle, 1 System Error, 2 Initializing peripherals 3 System Initialization 4 Executing selftest, 5 Sensor fusion algorithm running, 6 System running without fusion algorithm BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 70 4.3.59 SYS_ERR 0x3A bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r r r r r r r r Access Reset Content System Error Code DATA System Error Code bits <7:0> Description Read the error status from this register if the SYS_STATUS (0x39) register is SYSTEM ERROR (0x01) Read : 0 No error 1 Peripheral initialization error 2 System initialization error 3 Self test result failed 4 Register map value out of range 5 Register map address out of range 6 Register map write error 7 BNO low power mode not available for selected operation mode 8 Accelerometer power mode not available 9 Fusion algorithm configuration error A Sensor configuration error 4.3.60 UNIT_SEL 0x3B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Access Reset r/w 0 r/w r/w r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 Content ORI_Andro id_Window s TEMP_Uni t reserved EUL_Unit GYR_Unit ACC_Unit DATA ORI_Android_Win dows bits 7 TEMP_Unit 5 EUL_Unit 3 GYR_Unit 2 ACC_Unit 1 reserved BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description Read: Current selected orientation mode Write: Select orientation mode 0: Windows orientation 1: Android orientation See section 3.6.2 for more details Read: Current selected temperature units Write: Select temperature units 0: Celsius 1: Fahrenheit See section 3.6.1 for more details Read: Current selected Euler units Write: Select Euler units 0: Degrees 1: Radians See section 3.6.1 for more details Read: Current selected angular rate units Write: Select angular rate units 0: dps 1: rps See section 3.6.1 for more details Read: Current selected acceleration units Write: Select acceleration units 0: m/s2 1: mg See section 3.6.1 for more details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 71 4.3.61 OPR_MODE 0x3D bit7 bit6 bit5 bit4 Access bit3 bit2 bit1 bit0 r/w r/w r/w r/w Reset Content Reserved DATA Operation Mode <3:0> Operation Mode <3:0> bits <3:0> Description Read: Current selected operation mode Write: Select operation mode See section 3.3 for details 4.3.62 PWR_MODE 0x3E bit7 bit6 bit5 bit4 bit3 bit2 Access bit1 bit0 r/w r/w Reset Content Reserved DATA Power Mode <1:0> bits <1:0> Power Mode <1:0> Description Read: Current selected power mode Write: Select power mode See section 0 for details 4.3.63 SYS_TRIGGER 0x3F bit7 bit6 bit5 bit4 bit3 bit2 bit1 Access Reset w 0 w 0 w 0 w 0 Content CLK_SEL RST_INT RST_SYS Self_Test DATA CLK_SEL bits 7 RST_INT 6 Description 0: Use internal oscillator 1: Use external oscillator. Set this bit only if external crystal is connected Set to reset all interrupt status bits, and INT output RST_SYS 5 Set to reset system Self_Test 0 Set to trigger self test bit0 4.3.64 TEMP_SOURCE 0x40 bit7 bit6 bit5 bit4 bit3 bit2 Access bit1 bit0 r/w r/w Reset Content DATA TEMP_Source <1:0> Reserved bits <1:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 TEMP_Source <1:0> Description See section 3.6.5.8 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 72 4.3.65 AXIS_MAP_CONFIG 0x41 bit7 bit6 Access bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w Reset Content Reserved DATA Remapped Z axis value Remapped Y axis value Remapped X axis value Remapped Z axis value Remapped Y axis value bits <5:4> Description See section 3.4 for details <3:2> See section 3.4 for details <1:0> See section 3.4 for details Remapped X axis value 4.3.66 AXIS_MAP_SIGN 0x42 bit7 bit6 bit5 bit4 bit3 Access Reset Content Reserved DATA Remapped X axis sign Remapped Y axis sign Remapped Z axis sign bit2 bit1 bit0 r/w r/w r/w Remapped X axis sign Remapped Y axis sign Remapped Z axis sign bits 2 Description See section 3.4 for details 1 See section 3.4 for details 0 See section 3.4 for details 4.3.67 ACC_OFFSET_X_LSB 0x55 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content DATA Accelerometer Offset X <7:0> Accelerometer Offset X <7:0> bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description See section 3.6.4 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 73 4.3.68 ACC_OFFSET_X_MSB 0x56 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Accelerometer Offset X <15:8> DATA Accelerometer Offset X <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.69 ACC_OFFSET_Y_LSB 0x57 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Accelerometer Offset Y <7:0> DATA Accelerometer Offset Y <7:0> bits <7:0> Description See section 3.6.4 for details 4.3.70 ACC_OFFSET_Y_MSB 0x58 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Accelerometer Offset Y <15:8> DATA Accelerometer Offset Y <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.71 ACC_OFFSET_Z_LSB 0x59 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content DATA Accelerometer Offset Z <7:0> Accelerometer Offset Z <7:0> bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description See section 3.6.4 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 74 4.3.72 ACC_OFFSET_Z_MSB 0x5A Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Accelerometer Offset Z <15:8> DATA Accelerometer Offset Z <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.73 MAG_OFFSET_X_LSB 0x5B Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Magnetometer Data X <7:0> DATA Magnetometer Offset X <7:0> bits <7:0> Description See section 3.6.4 for details 4.3.74 MAG_OFFSET_X_MSB 0x56C Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Magnetometer Offset X <15:8> DATA Magnetometer Offset X <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.75 MAG_OFFSET_Y_LSB 0x5D Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content DATA Magnetometer Offset Y <7:0> Magnetometer Offset Y <7:0> bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description See section 3.6.4 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 75 4.3.76 MAG_OFFSET_Y_MSB 0x5E Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Magnetometer Offset Y <15:8> DATA Magnetometer Offset Y <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.77 MAG_OFFSET_Z_LSB 0x5F Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Magnetometer Offset Z <7:0> DATA Magnetometer Offset Z <7:0> bits <7:0> Description See section 3.6.4 for details 4.3.78 MAG_OFFSET_Z_MSB 0x60 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Magnetometer Offset Z <15:8> DATA Magnetometer Offset Z <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.79 GYR_OFFSET_X_LSB 0x61 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content DATA Gyroscope Offset X <7:0> Gyroscope Data X <7:0> bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description See section 3.6.4 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 76 4.3.80 GYR_OFFSET_X_MSB 0x62 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Gyroscope Offset X <15:8> DATA Gyroscope Offset X <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.81 GYR_OFFSET_Y_LSB 0x63 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Gyroscope Offset Y <7:0> DATA Gyroscope Offset Y <7:0> bits <7:0> Description See section 3.6.4 for details 4.3.82 GYR_OFFSET_Y_MSB 0x64 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Gyroscope Offset Y <15:8> DATA Gyroscope Offset Y <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.83 GYR_OFFSET_Z_LSB 0x65 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content DATA Gyroscope Offset Z <7:0> Gyroscope Offset Z <7:0> bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description See section 3.6.4 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 77 4.3.84 GYR_OFFSET_Z_MSB 0x66 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Gyroscope Offset Z <15:8> DATA Gyroscope Offset Z <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.85 ACC_RADIUS_LSB 0x67 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Accelerometer Radius <7:0> DATA bits Description Gyroscope Offset Z <7:0> <7:0> See section 3.6.4for details 4.3.86 ACC_RADIUS_MSB 0x68 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Accelerometer Radius <15:8> DATA Gyroscope Offset Z <15:8> bits <7:0> Description See section 3.6.4 for details 4.3.87 MAG_RADIUS_LSB 0x69 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content Magnetometer Radius <7:0> DATA Gyroscope Offset Z <7:0> bits <7:0> Description See section 3.6.4 for details 4.3.88 MAG_RADIUS_MSB 0x6A Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Content DATA Gyroscope Offset Z <15:8> Magnetometer Radius <15:8> bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description See section 3.6.4 for details Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 78 4.4 Register description (Page 1) 4.4.1 Page ID 0x07 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 Content Page ID DATA Page ID bits <7:0> Description Read: Number of currently selected page Write: Change page, 0x00 or 0x01 4.4.2 ACC_Config 0x08 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 1 r/w 0 r/w 1 Content ACC_PWR_Mode <2:0> DATA ACC_PWR_Mode <2:0> ACC_BW <2:0> bits <7:5> ACC_Range <1:0> <2:0> ACC_BW <2:0> ACC_Range <1:0> Description Read: current selected power mode Write: can only be changed in sensor mode, see section 3.5.2 Read: current selected bandwidth Write: can only be changed in sensor mode, see section 3.5.2 Read: current selected range Write: can only be changed in sensor mode, see section 3.5.2 <4:3> 4.4.3 MAG_Config 0x09 Access Reset Content bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 0 r/w 1 r/w 1 reserved DATA MAG_Power_mod e <1:0> MAG_OPR_Mode <1:0> MAG_Data_output _rate <2:0> MAG_Power_mode <1:0> bits <6:5> <4:3> <2:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 MAG_OPR_Mode <1:0> MAG_Data_output_rate <2:0> Description Read: current selected power mode Write: can only be changed in sensor mode, see section 3.5.4 Read: current selected operation mode Write: can only be changed in sensor mode, see section 3.5.4 Read: current selected data output rate Write: can only be changed in sensor mode, see section 3.5.4 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 79 4.4.4 GYR_Config_0 0x0A Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 1 r/w 1 r/w 1 r/w 0 r/w 0 r/w 0 Content reserved DATA GYR_Bandwidth <2:0> GYR_Range <2:0> GYR_Bandwidth <2:0> bits <5:3> GYR_Range <2:0> Description Read: current selected bandwidth Write: can only be changed in sensor mode, see section 3.5.3 Read: current selected range Write: can only be changed in sensor mode, see section 3.5.3 <2:0> 4.4.5 GYR_Config_1 0x0B Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 Content DATA GYR_Power_Mod e <2:0> reserved bits <2:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 GYR_Power_Mode <2:0> Description Read: current selected power mode Write: can only be changed in sensor mode, see section 3.5.3 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 80 4.4.6 ACC_Sleep_Config 0x0C bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Access Reset Content reserved DATA SLP_DURATION <3:0> bits <4:1> SLP_MODE 0 SLP_DURATION <3:0> SLP_MOD E Description Write: The sleep duration for accelerometer low power mode can be only configured in the sensor operation mode where no fusion library is running. Following sleep phase duration is possible to set. SLP_DURATION Accelerometer Sleep Phase Duration 0000b 0.5 ms 0001b 0.5 ms 0010b 0.5 ms 0011b 0.5 ms 0100b 0.5 ms 0101b 0.5 ms 0110b 1 ms 0111b 2 ms 1000b 4 ms 1001b 6 ms 1010b 10 ms 1011b 25 ms 1100b 50 ms 1101b 100 ms 1110b 500 ms 1111b 1000 ms The sleep timer mode for accelerometer low power mode can be only configured in the sensor operation mode where no fusion library is running Write 0: use event driven time-base mode 1: use equidistant sampling time-base mode BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 81 4.4.7 GYR_Sleep_Config 0x0D bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w r/w r/w r/w r/w r/w r/w Access Reset Content reserved DATA AUTO_SLP_DUR ATION <2:0> bits <5:3> SLP_DURATION <2:0> <2:0> AUTO_SLP_DURATION <2:0> SLP_DURATION <2:0> Description The Gyroscope can be configures in the advanced power mode to optimize the power consumption. This can be only done if the selected operation mode in sensor mode. The auto sleep duration is the wake up duration of gyroscope during the duty cycling between normal and fast-power up mode. Possible configuration for auto sleep duration are: Auto sleep duration Time (ms) 000b Not allowed 001b 4 ms 010b 5 ms 011b 8 ms 100b 10 ms 101b 15 ms 110b 20 ms 111b 40 ms The Gyroscope can be configures in the advanced power mode to optimize the power consumption. This can be only done if the selected operation mode in sensor mode. The sleep duration is the sleep time of gyroscope during the duty cycling between normal and fast-power up mode. Possible configuration for sleep duration are: Sleep duration Time (ms) 000b 2 ms 001b 4 ms 010b 5 ms 011b 8 ms 100b 10 ms 101b 15 ms 110b 18 ms 111b 20 ms The only restriction for the use of the power save mode comes from the configuration of the digital filter bandwidth of gyroscope. For each bandwidth configuration, minimum auto sleep duration must be ensured. For example, for bandwidth = 47Hz, the minimum auto sleep duration is 5ms. This is specified in the table below. For sleep duration, there is no restriction. Gyroscope bandwidth (Hz) 32 Hz 64 Hz 12 Hz 23 Hz 47 Hz 116 Hz 230 Hz Unfiltered (523 Hz) BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Mini Autosleep duration (ms) 20 ms 10 ms 20 ms 10 ms 5 ms 4 ms 4 ms 4 ms Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 82 4.4.8 INT_MSK 0x0F bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w r/w 0 r/w 0 r/w r/w ACC_NM ACC_AM ACC_HIG H_G reserved GYR_HIG H_RATE GYRO_AM reserved reserved Access Reset Content DATA ACC_NM bits 7 ACC_AM 6 ACC_HIGH_G 5 GYR_HIGH_RATE 3 GYRO_AM 2 Description Masking of Accelerometer no motion or slow motion interrupt, when enabled the interrupt will update the INT_STA register and trigger a change on the INT pin, when disabled only the INT_STA register will be updated. Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable Masking of Accelerometer any motion interrupt, when enabled the interrupt will update the INT_STA register and trigger a change on the INT pin, when disabled only the INT_STA register will be updated. Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable Masking of Accelerometer high-g interrupt, when enabled the interrupt will update the INT_STA register and trigger a change on the INT pin, when disabled only the INT_STA register will be updated. Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable Masking of gyroscope high rate interrupt, when enabled the interrupt will update the INT_STA register and trigger a change on the INT pin, when disabled only the INT_STA register will be updated. Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable Masking of gyroscope any motion interrupt, when enabled the interrupt will update the INT_STA register and trigger a change on the INT pin, when disabled only the INT_STA register will be updated. Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 83 4.4.9 INT_EN 0x10 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w r/w 0 r/w 0 r/w r/w ACC_NM ACC_AM ACC_HIG H_G reserved GYR_HIG H_RATE GYRO_AM reserved reserved Access Reset Content DATA ACC_NM bits 7 ACC_AM 6 ACC_HIGH_G 5 GYR_HIGH_RATE 3 GYRO_AM 2 Description Status of Accelerometer no motion or slow motion interrupt Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable interrupt Status of Accelerometer any motion interrupt Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable interrupt Status of Accelerometer high-g interrupt Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable interrupt Status of gyroscope high rate interrupt Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable interrupt Status of gyroscope any motion interrupt Read: 1: Enabled / 0: Disabled Write: 1: Enable / 0: Disable interrupt 4.4.10 ACC_AM_THRES 0x11 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 0 r/w 1 r/w 0 r/w 0 Content DATA Accelerometer Any motion threshold Accelerometer Any motion threshold bits <7:0> Description Threshold used for the any-motion interrupt. The threshold value is dependent on the accelerometer range selected in the ACC_Config register. 1 LSB = 3.91 mg (2-g range) 1 LSB = 7.81 mg (4-g range) 1 LSB = 15.63 mg (8-g range) 1 LSB = 31.25 mg (16-g range) BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 84 4.4.11 ACC_INT_Settings 0x12 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Access Reset r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 1 Content HG_Z_AXI S HG_Y_AXI S HG_X_AXI S AM/NM_Z_ AXIS AM/NM_Y _AXIS AM/NM_X _AXIS DATA HG_Z_AXIS bits 7 HG_Y_AXIS 6 HG_X_AXIS 5 AM/NM_Z_AXIS 4 AM/NM_Y_AXIS 3 AM/NM_X_AXIS 2 AM_DUR <1:0> <1:0> AM_DUR <1:0> Description Select which axis of the accelerometer is used to trigger a high-G interrupt 1: Enabled; 0: Disabled Select which axis of the accelerometer is used to trigger a high-G interrupt 1: Enabled; 0: Disabled Select which axis of the accelerometer is used to trigger a high-G interrupt 1: Enabled; 0: Disabled Select which axis of the accelerometer is used to trigger a any motion or no motion interrupt 1: Enabled; 0: Disabled Select which axis of the accelerometer is used to trigger a any motion or no motion interrupt 1: Enabled; 0: Disabled Select which axis of the accelerometer is used to trigger a any motion or no motion interrupt 1: Enabled; 0: Disabled Any motion interrupt triggers if [AM_DUR<1:0>+1] consecutive data points are above the any motion interrupt threshold define in ACC_AM_THRES register 4.4.12 ACC_HG_DURATION 0x13 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 1 r/w 1 r/w 1 Access Reset Content Accelerometer High G Duration DATA Accelerometer High G Duration bits <7:0> Description The high-g interrupt trigger delay according to [ACC_HG_DURATION + 1] * 2 ms in a range from 2 ms to 512 ms; 4.4.13 ACC_HG_THRES 0x14 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 1 r/w 1 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 Content DATA Accelerometer High G Threshold Accelerometer High G Threshold bits <7:0> Description Threshold used high-g interrupt. The threshold value is dependent on the accelerometer range selected in the ACC_Config register. 1 LSB = 7.81 mg (2-g range 1 LSB = 15.63 mg (4-g range) 1 LSB = 31.25 mg (8-g range) 1 LSB = 62.5 mg (16-g range) BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 85 4.4.14 ACC_NM_THRES 0x15 bit7 Access Reset r/w 0 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w r/w 0 r/w 0 r/w 1 r/w 0 r/w 1 r/w 0 0 Content Accelerometer NO/SLOW motion threshold DATA Accelerometer NO/SLOW motion threshold bits <7:0> Description Threshold used for the Slow motion or no motion interrupt. The threshold value is dependent on the accelerometer range selected in the ACC_Config register. 1 LSB = 3.91 mg (2-g range) 1 LSB = 7.81 mg (4-g range) 1 LSB = 15.63 mg (8-g range) 1 LSB = 31.25 mg (16-g range) 4.4.15 ACC_NM_SET 0x16 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Access Reset r/w r/w 0 r/w 0 r/w 0 r/w 1 r/w 0 r/w 1 r/w 1 Content reserved DATA slo_no_mot_dur <5:0> slo_no_mot_dur <5:0> bits <6:1> SMNM Description Function depends on whether the slow-motion or no-motion interrupt function has been selected. If the slow-motion interrupt function has been enabled (SMNM = `0') then [slo_no_mot_dur<1:0>+1] consecutive slope data points must be above the slow/no-motion threshold (ACC_NM_THRES) for the slow-/no-motion interrupt to trigger. If the no-motion interrupt function has been enabled (SMNM = `1') then slo_no_motion_dur<5:0> defines the time for which no slope data points must exceed the slow/no-motion threshold (ACC_NM_THRES) for the slow/no-motion interrupt to trigger. The delay time in seconds may be calculated according with the following equation: slo_no_mot_dur<5:4>='b00' [slo_no_mot_dur<3:0> + 1] slo_no_mot_dur<5:4>='b01' [slo_no_mot_dur<3:0> * 4 + 20] slo_no_mot_dur<5>='1' [slo_no_mot_dur<4:0> * 8 + 88] SMNM 0 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Select slow motion or no motion interrupt 0: Slow motion; 1: No motion Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 86 4.4.16 GYR_INT_SETTING 0x17 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 HR_FILT AM_FILT HR_Z_AXI S HR_Y_AXI S HR_X_AXI S AM_Z_AXI S AM_Y_AXI S AM_X_AXI S Access Reset Content DATA HR_FILT bits 7 Description `1' (`0') selects unfiltered (filtered) data for high rate interrupt AM_FILT 6 `1' (`0') selects unfiltered (filtered) data for any motion interrupt HR_Z_AXIS 5 1' (`0') enables (disables) high rate interrupt for z-axis HR_Y_AXIS 4 1' (`0') enables (disables) ) high rate interrupt for y-axis HR_X_AXIS 3 1' (`0') enables (disables) ) high rate interrupt for x-axis AM_Z_AXIS 2 1' (`0') enables (disables) any motion interrupt for z-axis AM_Y_AXIS 1 1' (`0') enables (disables) any motion interrupt for y-axis AM_X_AXIS 0 1' (`0') enables (disables) any motion interrupt for x-axis 4.4.17 GYR_HR_X_SET 0x18 Access Reset Content bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 reserved DATA HR_X_THRES_HY ST <1:0> bits <6:5> HR_X_Threshold <4:0> <4:0> HR_X_THRES_HYST <1:0> HR_X_Threshold <4:0> Description High rate hysteresis for X axis = (255 + 256 * HR_X_THRES_HYST) *4 LSB The high rate value scales with the range setting 1 LSB = 62.26/s in 2000/s-range 1 LSB = 31.13/s in 1000/s-range 1 LSB = 15.56/s in 500/s -range ... High rate threshold is for the gyroscope X axis. The threshold value is dependent on the gyroscope range selected in the GRY_Config_0 register. 1 LSB = 62.5/s in 2000/s-range 1 LSB = 31.25/s in 1000/s-range 1 LSB = 15.625/s in 500/s -range ... BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 87 4.4.18 GYR_DUR_X 0x19 Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 1 r/w 0 r/w 0 r/w 1 Content HR_X_Duration DATA HR_X_Duration bits <7:0> Description High rate duration = (1 + HR_X_Duration)*2.5ms 4.4.19 GYR_HR_Y_SET 0x1A bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 1 Access Reset Content reserved DATA HR_Y_THRES_HY ST <1:0> bits <6:5> HR_Y_Threshold <4:0> <4:0> HR_Y_THRES_HYST <1:0> HR_Y_Threshold <4:0> Description High rate hysteresis for Y axis = (255 + 256 * HR_Y_THRES_HYST) *4 LSB The high rate value scales with the range setting 1 LSB = 62.26/s in 2000/s-range 1 LSB = 31.13/s in 1000/s-range 1 LSB = 15.56/s in 500/s -range ... High rate threshold is for the gyroscope Y axis. The threshold value is dependent on the gyroscope range selected in the GRY_Config_0 register. 1 LSB = 62.5/s in 2000/s-range 1 LSB = 31.25/s in 1000/s-range 1 LSB = 15.625/s in 500/s -range ... 4.4.20 GYR_DUR_Y 0x1B Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 1 r/w 0 r/w 0 r/w 1 Content DATA HR_Y_Duration HR_Y_Duration bits <7:0> BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Description High rate duration = (1 + HR_Y_Duration)*2.5ms Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 88 4.4.21 GYR_HR_Z_SET 0x1C bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r 0 r 0 r 0 r 0 r 0 r 0 r 0 r 1 Access Reset Content reserved DATA HR_Z_THRES_HY ST <1:0> bits <6:5> HR_Z_Threshold <4:0> <4:0> HR_Z_THRES_HYST <1:0> HR_Z_Threshold <4:0> Description High rate hysteresis for Z axis = (255 + 256 * HR_Z_THRES_HYST) *4 LSB The high rate value scales with the range setting 1 LSB = 62.26/s in 2000/s-range 1 LSB = 31.13/s in 1000/s-range 1 LSB = 15.56/s in 500/s -range ... High rate threshold is for the gyroscope Z axis. The threshold value is dependent on the gyroscope range selected in the GRY_Config_0 register. 1 LSB = 62.5/s in 2000/s-range 1 LSB = 31.25/s in 1000/s-range 1 LSB = 15.625/s in 500/s -range ... 4.4.22 GYR_DUR_Z 0x1D Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 1 r/w 0 r/w 0 r/w 1 Content HR_Z_Duration DATA HR_Z_Duration bits <7:0> Description High rate duration = (1 + HR_Z_Duration)*2.5ms 4.4.23 GYR_AM_THRES 0x1E bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Access Reset r/w 0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 0 r/w 0 Content reserved DATA Gyro Any Motion Threshold <6:0> bits <6:0> Gyro Any Motion Threshold <6:0> Description Any motion threshold is for the gyroscope any motion interrupt. The threshold value is dependent on the gyroscope range selected in the GRY_Config_0 register. 1 LSB = 1 /s in 2000/s-range 1 LSB = 0.5/s in 1000/s-range 1 LSB = 0.25/s in 500/s -range ... BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 89 4.4.24 GYR_AM_SET 0x1F Access Reset bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 r/w 0 r/w 0 r/w 0 r/w 0 r/w 1 r/w 0 r/w 1 r/w 0 Content DATA Awake Duration <1:0> Slope Samples <1:0> reserved Awake Duration <1:0> Slope Samples <1:0> bits <3:2> Description 0=8 samples, 1=16 samples, 2=32 samples, 3=64 samples <1:0> Any motion interrupt triggers if [Slope Samples + 1]*4 consecutive data points are above the any motion interrupt threshold define in GYRO_AM_THRES register BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 90 4.5 Digital Interface The BNO055 supports two digital interfaces for communication between the salve and host device: I2C which supports the HID-I2C protocol and I2C Standard and Fast modes; and the UART interface. The active interface is selected by the state of the protocol select pins (PS1 and PS0), Table 4-4 shows the mapping between the protocol select pins and the selected interface mode. Table 4-4: protocol select pin mapping PS1 0 0 1 1 PS0 0 1 0 1 Functionality Standard/Fast I2C Interface HID over I2C UART Interface Reserved It is not allowed to keep the protocol select pins floating. Both digital interfaces share partially the same pins, the pin mapping for each interface is shown in Table 4-5. Table 4-5: Mapping of digital interface pins PIN COM0 COM1 COM2 COM3 I2C Interfaces (PS1=0b0) SDA SCL GNDIO I2C address select UART Interface (PS1.PS0=0b10) Tx Rx The following table shows the electrical specifications of the interface pins: Table 4-6: Electrical specification of the interface pins Parameter Symbol Condition Min Typ Max Units Pull-up Resistance, COM3 pin Rup Internal Pull-up Resistance to VDDIO 20 40 60 k Input Capacitance Cin 5 10 pF IC Bus Load Capacitance (max. drive capability) CI2C_Load 400 pF BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 91 4.6 I2C Protocol The IC bus uses SCL (= SCx pin, serial clock) and SDA (= SDx pin, serial data input and output) signal lines. Both lines are connected to VDDIO externally via pull-up resistors so that they are pulled high when the bus is free. The IC interface of the BNO055 is compatible with the IC Specification UM10204 Rev. 03 (19 June 2007), available at http://www.nxp.com. The BNO055 supports IC standard mode and fast mode, only 7-bit address mode is supported. The BNO055 IC interface uses clock stretching. The default IC address of the BNO055 device is 0101001b (0x29). The alternative address 0101000b (0x28), in I2C mode the input pin COM3 can be used to select between the primary and alternative I2C address as shown in Table 4-7. Table 4-7: I2C address selection I2C configuration Slave Slave HID-I2C COM3_state I2C address HIGH LOW X 0x29 0x28 0x40 The timing specification for IC of the BNO055 is given in Table 4-8: IC timings: Table 4-8: IC timings Parameter Symbol Clock Frequency SCL Low Period SCL High Period SDA Setup Time SDA Hold Time Setup Time for a repeated Start Condition Hold Time for a Start Condition Setup Time for a Stop Condition Time before a new Transmission can start Idle time between write accesses, normal mode, standby mode, lowpower mode 2 Idle time between write accesses, suspend mode, low-power mode 1 fSCL tLOW tHIGH BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Condition Min Max Units 400 kHz tSUDAT tHDDAT 1.3 0.6 0.1 0.0 tSUSTA 0.6 tHDSTA 0.6 tSUSTO 0.6 tBUF 1.3 tIDLE_wacc_nm 2 s 450 s tIDLE_wacc_su m s Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 92 Figure 5: IC timing diagram shows the definition of the IC timings given in Table 4-8: SDA tBUF tf tLOW SCL tHIGH tr tHDSTA tHDDAT tSUDAT SDA tSUSTA tSUSTO Figure 5: IC timing diagram The IC protocol works as follows: START: Data transmission on the bus begins with a high to low transition on the SDA line while SCL is held high (start condition (S) indicated by IC bus master). Once the START signal is transferred by the master, the bus is considered busy. STOP: Each data transfer should be terminated by a Stop signal (P) generated by master. The STOP condition is a low to HIGH transition on SDA line while SCL is held high. ACK: Each byte of data transferred must be acknowledged. It is indicated by an acknowledge bit sent by the receiver. The transmitter must release the SDA line (no pull down) during the acknowledge pulse while the receiver must then pull the SDA line low so that it remains stable low during the high period of the acknowledge clock cycle. In the following diagrams these abbreviations are used: S P ACKS ACKM NACKM RW Start Stop Acknowledge by slave Acknowledge by master Not acknowledge by master Read / Write A START immediately followed by a STOP (without SCL toggling from VDDIO to GND) is not supported. If such a combination occurs, the STOP is not recognized by the device. IC write access: IC write access can be used to write a data byte in one sequence. The sequence begins with start condition generated by the master, followed by 7 bits slave address and a write bit (RW = 0). The slave sends an acknowledge bit (ACK = 0) and releases the bus. Then the master sends the one byte register address. The slave again acknowledges the transmission BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 93 and waits for the 8 bits of data which shall be written to the specified register address. After the slave acknowledges the data byte, the master generates a stop signal and terminates the writing protocol. 1 0 1 0 0 0 A x ACKS 0 Register address (0x00 .. 0x7F) x x x x x x x A Data x x x x x x x x Stop 0 RW ACKS S Slave address dummy Start ACKS Example of an IC write access to the BNO055 (i2c address in this case: 0101000b = 0x28): A P Figure 6: IC write IC read access: IC read access also can be used to read one or multiple data bytes in one sequence. A read sequence consists of a one-byte IC write phase followed by the IC read phase. The two parts of the transmission must be separated by a repeated start condition (Sr). The IC write phase addresses the slave and sends the register address to be read. After slave acknowledges the transmission, the master generates again a start condition and sends the slave address together with a read bit (RW = 1). Then the master releases the bus and waits for the data bytes to be read out from slave. After each data byte the master has to generate an acknowledge bit (ACK = 0) to enable further data transfer. A NACKM (ACK = 1) from the master stops the data being transferred from the slave. The slave releases the bus so that the master can generate a STOP condition and terminate the transmission. The register address is automatically incremented and, therefore, more than one byte can be sequentially read out. Once a new data read transmission starts, the start address will be set to the register address specified in the latest IC write command. By default the start address is set at 0x00. In this way repetitive multi-bytes reads from the same starting address are possible. 0 1 0 1 0 0 0 x RW 1 A 0 A ... A 0 0 1 0 0 0 Read data (0x08) x x x x x x x x Read data (0x0A) x x ACKS ... ACKS A x x x x x x Read data (0x0C) x x x x x x A A Read data (0x09) x x A x x A x x x x x x x A ... x x NA P Read data (0x0B) x x x x x x Read data (0x0D) x x x x x x A ... x Stop Slave address 0 ACKM 0 ACKM 0 NACKM 0 ACKS Sr 1 ACKM Start 0 ACKM 1 Register address (0x08) ACKM 0 RW dummy S Slave address ACKS Start ACKS Example of an IC read access to the BNO055: Figure 7: IC multiple read BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 94 4.7 UART Protocol The BNO055 supports UART interface with the following settings: 115200 bps, 8N1 (8 data bits, no parity bit, one stop bit). The maximum length support for read and write is 128 Byte. The packet structure for register read and write are described below. Register write Command: Byte 1 Start Byte 0xAA Byte 2 Write 0x00 Byte 3 Reg addr <..> Byte 4 Length <..> Byte 5 Data 1 <..> ..... ..... ..... Byte (n+4) Data n <..> Acknowledge Response: Byte 1 Response Header 0xEE Byte 2 Status 0x01: WRITE_SUCCESS 0x03: WRITE_FAIL 0x04: REGMAP_INVALID_ADDRESS 0x05: REGMAP_WRITE_DISABLED 0x06: WRONG_START_BYTE 0x07: BUS_OVER_RUN_ERROR 0X08: MAX_LENGTH_ERROR 0x09: MIN_LENGTH_ERROR 0x0A: RECEIVE_CHARACTER_TIMEOUT Register read Command: Byte 1 Start Byte 0xAA Byte 2 Read 0x01 Byte 2 Reg addr <..> Byte 3 Length <..> Read Success Response: Byte 1 ResponseByte 0xBB Byte 2 length <..> Byte 3 Data 1 ..... ..... Byte (n+2) Data n Read Failure or Acknowledge Response: Byte 1 Response Header 0xEE Byte 2 Status 0x02: READ_FAIL 0x04: REGMAP_INVALID_ADDRESS 0x05: REGMAP_WRITE_DISABLED 0x06: WRONG_START_BYTE 0x07: BUS_OVER_RUN_ERROR 0X08: MAX_LENGTH_ERROR 0x09: MIN_LENGTH_ERROR 0x0A: RECEIVE_CHARACTER_TIMEOUT BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 95 4.8 HID over I2C HID over I2C is a standard interface protocol to connect devices with hosts via I2C. The main advantage of HID is that there exist generic drivers for different input devices (such as sensors) which can be used with sensors that implement the corresponding well defined HID profiles. HID over I2C describes how messages (reports and events) are exchanged between the device and the host. A descriptor of the structure of these reports is provided by the device and read by the host during initialization of the device at host system start. For detailed information on HID please refer to the HID over I2C documentation from Microsoft. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 96 5. Pin-out and connection diagram 5.1 Pin-out The pin-out of the LGA package is shown in Figure 8 and the pin function is described in Table 5-1. Figure 8: Pin-out bottom view Bottom view (pads visible) BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 97 Table 5-1: Pin description Pin # Name I/O Type Description I2C 1 2 3 4 PIN1 GND VDD nBOOT_LOAD_PIN -Ground Supply Digital In 5 PS1 Digital In 6 PS0 Digital In 7 8 9 10 PIN7 PIN8 CAP BL_IND 11 nRESET ---Digital Out -- 12 13 14 PIN12 PIN13 INT 15 16 17 PIN15 PIN16 COM3 --Digital Out Ground Ground Digital In 18 COM2 Digital I/O 19 COM1 Digital I/O 20 COM0 Digital I/O 21 22 23 24 25 26 PIN21 PIN22 PIN23 PIN24 GNDIO XOUT32 27 28 XIN32 VDDIO ----Ground Digital Out Digital In Supply BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Do not connect GND VDD Bootloader mode select pin (active low) Protocol select pin 1 Protocol select pin 2 Do not connect Do not connect External capacitor Boot loader indicator Reset pin (active low) Do not connect Do not connect Interrupt output Connect to GNDIO Connect to GNDIO Digital interface pin 3 Digital interface pin 2 Digital interface pin 1 Digital interface pin 0 Do not connect Do not connect Do not connect Do not connect GNDIO Optional OSC port Optional OSC port VDDIO Function UART HID-I2C DNC GND VDD nBOOT_LOAD_PIN GNDIO VDDIO GNDIO GNDIO GNDIO VDDIO DNC DNC CAP DNC nRESET DNC DNC Interrupt I2C address select GNDIO GNDIO GNDIO GNDIO GNDIO SCL Rx SCL SDA Tx SDA DNC DNC DNC DNC GNDIO OSC Output OSC Input VDDIO Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 98 5.2 Connection diagram I2C Figure 9: I2C connection diagram VDDIO VDD 6.8nF Optional OSC input RPULL Optional OSC input SDA COM0 PIN21 PIN22 PIN23 PIN24 GNDIO XOUT32 XIN32 Pull-up VDDIO PIN1 120nF 20 21 22 23 24 25 26 27 28 1 10k RPULL GND 100nF VDD nBOOT_LOAD_PIN 2 19 BNO 055 3 18 Top View 4 17 SCL COM1 COM2 COM3 IC_ADDR_SEL (Pads not visible!) 15 PIN15 14 INT 13 PIN13 12 PIN12 11 nRESET 10 PIN10 9 CAP PIN16 100nF 8 PIN8 PIN7 PS0 (GNDIO) Optional 10k 16 7 5 6 PS1 INT BL_IND nRESET BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 99 5.3 Connection diagram UART Figure 10: UART connection diagram VDDIO VDD 6.8nF Optional OSC input Optional OSC input TX COM0 PIN21 PIN22 PIN23 PIN24 GNDIO XOUT32 XIN32 Pull-up VDDIO PIN1 120nF GND 100nF VDD nBOOT_LOAD_PIN 2 20 21 22 23 24 25 26 27 28 1 10k 19 BNO 055 3 18 Top View 4 17 RX COM1 COM2 COM3 (Pads not visible!) 15 PIN16 PIN15 14 INT 13 PIN13 12 PIN12 11 nRESET 10 PIN10 9 CAP 8 PIN8 PIN7 PS0 (GNDIO) 16 7 5 6 PS1 100nF INT Optional 10k BL_IND nRESET BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 100 5.4 Connection diagram HID-I2C Figure 11 : HID via IC connection diagram VDDIO VDD 6.8nF Optional OSC input RPULL Optional OSC input SDA COM0 20 PIN21 21 PIN22 22 PIN23 23 PIN24 24 25 GNDIO XOUT32 26 XIN32 27 1 10k VDDIO Pull-up 28 PIN1 120nF RPULL GND 100nF VDD nBOOT_LOAD_PIN 2 19 BNO 055 3 18 Top View 4 17 SCL COM1 COM2 COM3 (Pads not visible!) 15 PIN15 14 INT 13 PIN13 12 PIN12 11 nRESET 10 PIN10 9 CAP PIN16 100nF 8 PIN8 PIN7 PS0 (GNDIO) Optional 10k 16 7 5 6 PS1 INT BL_IND nRESET BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 101 5.5 XOUT32 & XIN32 Connections The BNO055 can run from an internal or external 32 KHz clock source. By default, the internal clock is selected. An External clock can be selected by setting bit CLK_SEL in the SYSTEM_TRIGGER register. An external 32 KHz crystal oscillator has to be connected to the pins XIN32 and XOUT32 as shown below. To get the best performance out of BNO055, it is recommended to use the external crystal. 5.5.1 External 32kHz Crystal Oscillator Figure 12 : External 32kHz Crystal Oscillator with Load Capacitor Table 5-2: Crystal Oscillator Source Connections Pin Name XIN32 XOUT32 Recommended Pin Connection Load capacitor 22pF89 Load capacitor 22pF89 Description Timer oscillator input Timer oscillator output 5.5.2 Internal clock mode The internal clock can be selected by clearing bit CLK_SEL in the SYSTEM_TRIGGER register. When an internal clock is used, both pins XIN32 and XOUT32 can be left open. The internal clock of the BNO055 can have clock deviation up to +3% 8 9 These values are given only as typical example. Decoupling capacitor should be placed close to the device for each supply pin pair in the signal group. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 102 6. Package 6.1 Outline dimensions The sensor package is a standard LGA package; dimensions are shown in the following diagram. Units are in mm. Note: Unless otherwise specified tolerance = decimal 0.1mm. The chapter 3.5 provides information regarding the sensor axis orientation. Figure 13: Outline dimensions BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 103 6.2 Marking Table 6-1: Marking of mass production parts Labeling 701 TTTT CCC Name Pin 1 identifier Symbol Product number 701 Second Row T 3 numeric digits, internal identification for product type Internal use Third Row C Numerical counter * Remark --- 6.3 Soldering Guidelines The moisture sensitivity level of the BNO055 sensors corresponds to JEDEC Level 1, see also - IPC/JEDEC J-STD-020C "Joint Industry Standard: Moisture/Reflow Sensitivity Classification for non-hermetic Solid State Surface Mount Devices" IPC/JEDEC J-STD-033A "Joint Industry Standard: Handling, Packing, Shipping and Use of Moisture/Reflow Sensitive Surface Mount Devices" The sensor fulfils the lead-free soldering requirements of the above-mentioned IPC/JEDEC standard, i.e. reflow soldering with a peak temperature up to 260C. 6.4 Handling instructions Micromechanical sensors are designed to sense acceleration with high accuracy even at low amplitudes and contain highly sensitive structures inside the sensor element. The MEMS sensor can tolerate mechanical shocks up to several thousand g's. However, these limits might be exceeded in conditions with extreme shock loads such as e.g. hammer blow on or next to the sensor, dropping of the sensor onto hard surfaces etc. We recommend avoiding g-forces beyond the specified limits during transport, handling and mounting of the sensors in a defined and qualified installation process. This device has built-in protections against high electrostatic discharges or electric fields (e.g. 2kV HBM); however, anti-static precautions should be taken as for any other CMOS component. Unless otherwise specified, proper operation can only occur when all terminal voltages are kept within the supply voltage range. Unused inputs must always be tied to a defined logic voltage level. For more details on recommended handling, soldering and mounting please contact your local Bosch Sensortec sales representative and ask for the "Handling, soldering and mounting instructions" document. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 104 6.5 Tape and reel specification The BNO055 is shipped in a standard cardboard box. For details please refer to the `Shipment packaging details' document. 6.6 Environmental safety The BNO055 sensor meets the requirements of the EC restriction of hazardous substances (RoHS and RoHS2) directive, see also: Directive 2002/95/EC of the European Parliament and of the Council of 27 January 2003 on the restriction of the use of certain hazardous substances in electrical and electronic equipment. 6.6.1 Halogen content The BNO055 is halogen-free. For more details on the analysis results please contact your Bosch Sensortec representative. 6.6.2 Internal package structure Within the scope of Bosch Sensortec's ambition to improve its products and secure the mass product supply, Bosch Sensortec qualifies additional sources (e.g. 2nd source) for the LGA package of the BNO055. While Bosch Sensortec took care that all of the technical packages parameters are described above are 100% identical for all sources, there can be differences in the chemical content and the internal structural between the different package sources. However, as secured by the extensive product qualification process of Bosch Sensortec, this has no impact to the usage or to the quality of the BMNO55 product. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 105 7. Legal disclaimer 7.1 Engineering samples Engineering Samples are marked with an asterisk (*) or (e) or (E). Samples may vary from the valid technical specifications of the product series contained in this data sheet. They are therefore not intended or fit for resale to third parties or for use in end products. Their sole purpose is internal client testing. The testing of an engineering sample may in no way replace the testing of a product series. Bosch Sensortec assumes no liability for the use of engineering samples. The Purchaser shall indemnify Bosch Sensortec from all claims arising from the use of engineering samples. 7.2 Product use Bosch Sensortec products are developed for the consumer goods industry. They may only be used within the parameters of this product data sheet. They are not fit for use in lifesustaining or security sensitive systems. Security sensitive systems are those for which a malfunction is expected to lead to bodily harm or significant property damage. In addition, they are not fit for use in products which interact with motor vehicle systems. The resale and/or use of products are at the purchaser's own risk and his own responsibility. The examination of fitness for the intended use is the sole responsibility of the Purchaser. The purchaser shall indemnify Bosch Sensortec from all third party claims arising from any product use not covered by the parameters of this product data sheet or not approved by Bosch Sensortec and reimburse Bosch Sensortec for all costs in connection with such claims. The purchaser must monitor the market for the purchased products, particularly with regard to product safety, and inform Bosch Sensortec without delay of all security relevant incidents. 7.3 Application examples and hints With respect to any examples or hints given herein, any typical values stated herein and/or any information regarding the application of the device, Bosch Sensortec hereby disclaims any and all warranties and liabilities of any kind, including without limitation warranties of non-infringement of intellectual property rights or copyrights of any third party. The information given in this document shall in no event be regarded as a guarantee of conditions or characteristics. They are provided for illustrative purposes only and no evaluation regarding infringement of intellectual property rights or copyrights or regarding functionality, performance or error has been made. BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice. BNO055 Data sheet Page 106 8. Document history and modifications Rev. No 0.1 0.2 0.9 1.0 1.1 1.2 1.3 1.4 Chapter Description of modification/changes Date Initial version Completely revised version (BMF055 added) Preliminary version with feature set of Firmware version 0.2.B.0 Complete review Rearrangement of subsections in chapter 3 for better 3 readability. Table 3.1 is updated for better readability and all the 3.3 operation modes are elaborated 3.11 Chapter on calibration included 3.7, 3.10 Update The default value of the UNIT_SEL register is 4.2 updated 4.6 I2C communication example figures are updated. 5.1, 5.2, 5.3, Included table 5.1 Pin description. 5.4 Connection diagram updated 5 Updated pin description and connection diagram 6.1 Updated outline dimensions Chapter removed and the respective information is 6.2 updated in the Handling, soldering and mounting instructions application note. 1.1 Supply current in low power mode is updated 1.2 Table 0-2 is updated for POR time description 3.5 Accelerometer restrictions updated in table 3.8 New section called `Data Register Shadowing' is 3.7 included to explain the concept shadowing The SMNM bit field for Slow motion and no motion 4.4.15 updated in the register description 1.1 Representation of voltage in the table 0-1 is updated 2 The max value for ESD is updated ACC_Sleep_Config register is updated for 4.4.6 Accelerometer Sleep Phase Duration Table 5-1: Pin description together with all the 3 5.1 connection diagrams are updated. 2013-09-02 2013-10-15 2014-04-25 2014-07-11 2014-11-05 2014-11-30 2015-08-19 2016-06-02 Bosch Sensortec GmbH Gerhard-Kindler-Strasse 9 72770 Reutlingen / Germany contact@bosch-sensortec.com www.bosch-sensortec.com Modifications reserved | Printed in Germany Specifications subject to change without notice Document number: BST-BNO055-DS000-14 Revision_1.4_201606 BST-BNO055-DS000-14 | Revision 1.4 | June 2016 Bosch Sensortec (c) Bosch Sensortec GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany. Note: Specifications within this document are subject to change without notice.