27 #include <mraa/i2c.hpp>
28 #include <mraa/gpio.hpp>
30 #define BNO055_I2C_BUS 0
31 #define BNO055_DEFAULT_ADDR 0x28
108 const uint8_t BNO055_CHIPID = 0xa0;
111 const int calibrationDataNumBytes = 22;
123 typedef enum : uint8_t {
135 REG_SW_REV_ID_LSB = 0x04,
136 REG_SW_REV_ID_MSB = 0x05,
137 REG_BL_REV_ID = 0x06,
141 REG_ACC_DATA_X_LSB = 0x08,
142 REG_ACC_DATA_X_MSB = 0x09,
143 REG_ACC_DATA_Y_LSB = 0x0a,
144 REG_ACC_DATA_Y_MSB = 0x0b,
145 REG_ACC_DATA_Z_LSB = 0x0c,
146 REG_ACC_DATA_Z_MSB = 0x0d,
148 REG_MAG_DATA_X_LSB = 0x0e,
149 REG_MAG_DATA_X_MSB = 0x0f,
150 REG_MAG_DATA_Y_LSB = 0x10,
151 REG_MAG_DATA_Y_MSB = 0x11,
152 REG_MAG_DATA_Z_LSB = 0x12,
153 REG_MAG_DATA_Z_MSB = 0x13,
155 REG_GYR_DATA_X_LSB = 0x14,
156 REG_GYR_DATA_X_MSB = 0x15,
157 REG_GYR_DATA_Y_LSB = 0x16,
158 REG_GYR_DATA_Y_MSB = 0x17,
159 REG_GYR_DATA_Z_LSB = 0x18,
160 REG_GYR_DATA_Z_MSB = 0x19,
163 REG_EUL_HEADING_LSB = 0x1a,
164 REG_EUL_HEADING_MSB = 0x1b,
165 REG_EUL_ROLL_LSB = 0x1c,
166 REG_EUL_ROLL_MSB = 0x1d,
167 REG_EUL_PITCH_LSB = 0x1e,
168 REG_EUL_PITCH_MSB = 0x1f,
171 REG_QUA_DATA_W_LSB = 0x20,
172 REG_QUA_DATA_W_MSB = 0x21,
173 REG_QUA_DATA_X_LSB = 0x22,
174 REG_QUA_DATA_X_MSB = 0x23,
175 REG_QUA_DATA_Y_LSB = 0x24,
176 REG_QUA_DATA_Y_MSB = 0x25,
177 REG_QUA_DATA_Z_LSB = 0x26,
178 REG_QUA_DATA_Z_MSB = 0x27,
181 REG_LIA_DATA_X_LSB = 0x28,
182 REG_LIA_DATA_X_MSB = 0x29,
183 REG_LIA_DATA_Y_LSB = 0x2a,
184 REG_LIA_DATA_Y_MSB = 0x2b,
185 REG_LIA_DATA_Z_LSB = 0x2c,
186 REG_LIA_DATA_Z_MSB = 0x2d,
189 REG_GRV_DATA_X_LSB = 0x2e,
190 REG_GRV_DATA_X_MSB = 0x2f,
191 REG_GRV_DATA_Y_LSB = 0x30,
192 REG_GRV_DATA_Y_MSB = 0x31,
193 REG_GRV_DATA_Z_LSB = 0x32,
194 REG_GRV_DATA_Z_MSB = 0x33,
196 REG_TEMPERATURE = 0x34,
198 REG_CALIB_STAT = 0x35,
199 REG_ST_RESULT = 0x36,
203 REG_SYS_CLK_STATUS = 0x38,
205 REG_SYS_STATUS = 0x39,
206 REG_SYS_ERROR = 0x3a,
212 REG_OPER_MODE = 0x3d,
213 REG_POWER_MODE = 0x3e,
215 REG_SYS_TRIGGER = 0x3f,
216 REG_TEMP_SOURCE = 0x40,
218 REG_AXIS_MAP_CONFIG = 0x41,
219 REG_AXIS_MAP_SIGN = 0x42,
224 REG_ACC_OFFSET_X_LSB = 0x55,
225 REG_ACC_OFFSET_X_MSB = 0x56,
226 REG_ACC_OFFSET_Y_LSB = 0x57,
227 REG_ACC_OFFSET_Y_MSB = 0x58,
228 REG_ACC_OFFSET_Z_LSB = 0x59,
229 REG_ACC_OFFSET_Z_MSB = 0x5a,
231 REG_MAG_OFFSET_X_LSB = 0x5b,
232 REG_MAG_OFFSET_X_MSB = 0x5c,
233 REG_MAG_OFFSET_Y_LSB = 0x5d,
234 REG_MAG_OFFSET_Y_MSB = 0x5e,
235 REG_MAG_OFFSET_Z_LSB = 0x5f,
236 REG_MAG_OFFSET_Z_MSB = 0x60,
238 REG_GYR_OFFSET_X_LSB = 0x61,
239 REG_GYR_OFFSET_X_MSB = 0x62,
240 REG_GYR_OFFSET_Y_LSB = 0x63,
241 REG_GYR_OFFSET_Y_MSB = 0x64,
242 REG_GYR_OFFSET_Z_LSB = 0x65,
243 REG_GYR_OFFSET_Z_MSB = 0x66,
245 REG_ACC_RADIUS_LSB = 0x67,
246 REG_ACC_RADIUS_MSB = 0x68,
248 REG_MAG_RADIUS_LSB = 0x69,
249 REG_MAG_RADIUS_MSB = 0x6a,
259 REG_ACC_CONFIG = 0x08,
260 REG_MAG_CONFIG = 0x09,
261 REG_GYR_CONFIG0 = 0x0a,
262 REG_GYR_CONFIG1 = 0x0b,
263 REG_ACC_SLEEP_CONFIG = 0x0c,
264 REG_GYR_SLEEP_CONFIG = 0x0d,
270 REG_ACC_AM_THRES = 0x11,
271 REG_ACC_INT_SETTINGS = 0x12,
272 REG_ACC_HG_DURATION = 0x13,
273 REG_ACC_HG_THRES = 0x14,
274 REG_ACC_NM_THRES = 0x15,
275 REG_ACC_NM_SET = 0x16,
277 REG_GYR_INT_SETTING = 0x17,
278 REG_GYR_HR_X_SET = 0x18,
279 REG_GYR_DUR_X = 0x19,
280 REG_GYR_HR_Y_SET = 0x1a,
281 REG_GYR_DUR_Y = 0x1b,
282 REG_GYR_HR_Z_SET = 0x1c,
283 REG_GYR_DUR_Z = 0x1d,
284 REG_GYR_AM_THRES = 0x1e,
285 REG_GYR_AM_SET = 0x1f,
290 REG_BNO_UNIQUE_ID = 0x50
301 CALIB_STAT_MAG0 = 0x01,
302 CALIB_STAT_MAG1 = 0x02,
303 _CALIB_STAT_MAG_MASK = 3,
304 _CALIB_STAT_MAG_SHIFT = 0,
306 CALIB_STAT_ACC0 = 0x04,
307 CALIB_STAT_ACC1 = 0x08,
308 _CALIB_STAT_ACC_MASK = 3,
309 _CALIB_STAT_ACC_SHIFT = 2,
311 CALIB_STAT_GYR0 = 0x10,
312 CALIB_STAT_GYR1 = 0x20,
313 _CALIB_STAT_GYR_MASK = 3,
314 _CALIB_STAT_GYR_SHIFT = 4,
316 CALIB_STAT_SYS0 = 0x40,
317 CALIB_STAT_SYS1 = 0x80,
318 _CALIB_STAT_SYS_MASK = 3,
319 _CALIB_STAT_SYS_SHIFT = 6
326 ST_RESULT_ACC = 0x01,
327 ST_RESULT_MAG = 0x02,
328 ST_RESULT_GYR = 0x04,
338 INT_STA_GYRO_AM = 0x04,
339 INT_STA_GYR_HIGH_RATE = 0x08,
341 INT_STA_ACC_HIGH_G = 0x20,
342 INT_STA_ACC_AM = 0x40,
343 INT_STA_ACC_NM = 0x80
350 SYS_CLK_STATUS_ST_MAIN_CLK = 0x01
359 SYS_STATUS_SYS_ERR = 1,
360 SYS_STATUS_INIT_PERIPHERALS = 2,
361 SYS_STATUS_SYSTEM_INIT = 3,
362 SYS_STATUS_EXECUTING_SELFTEST = 4,
363 SYS_STATUS_FUSION_RUNNING = 5,
364 SYS_STATUS_NO_FUSION_RUNNING = 6
372 SYS_ERR_PERIPH_INIT_ERROR = 1,
373 SYS_ERR_SYS_INIT_ERROR = 2,
374 SYS_ERR_SELFTEST_FAIL_ERROR = 3,
375 SYS_ERR_REG_VAL_OUTOFRANGE_ERROR = 4,
376 SYS_ERR_REG_ADDR_OUTOFRANGE_ERROR = 5,
377 SYS_ERR_REG_WRITE_ERROR = 6,
378 SYS_ERR_LP_MODE_NOT_AVAIL_ERROR = 7,
379 SYS_ERR_ACC_PWR_MODE_NOT_AVAIL_ERROR = 8,
380 SYS_ERR_FUSION_CONFIG_ERROR = 9,
381 SYS_ERR_SENSOR_CONFIG_ERROR = 10
389 UNIT_SEL_ACC_UNIT = 0x01,
390 UNIT_SEL_GYR_UNIT = 0x02,
391 UNIT_SEL_EUL_UNIT = 0x04,
393 UNIT_SEL_TEMP_UNIT = 0x10,
395 UNIT_SEL_ORI_ANDROID_WINDOWS = 0x80
402 OPR_MODE_OPERATION_MODE0 = 0x01,
403 OPR_MODE_OPERATION_MODE1 = 0x02,
404 OPR_MODE_OPERATION_MODE2 = 0x04,
405 OPR_MODE_OPERATION_MODE3 = 0x08,
406 _OPR_MODE_OPERATION_MODE_MASK = 15,
407 _OPR_MODE_OPERATION_MODE_SHIFT = 0
415 OPERATION_MODE_CONFIGMODE = 0,
416 OPERATION_MODE_ACCONLY = 1,
417 OPERATION_MODE_MAGONLY = 2,
418 OPERATION_MODE_GYROONLY = 3,
419 OPERATION_MODE_ACCMAG = 4,
420 OPERATION_MODE_ACCGYRO = 5,
421 OPERATION_MODE_MAGGYRO = 6,
422 OPERATION_MODE_AMG = 7,
424 OPERATION_MODE_IMU = 8,
425 OPERATION_MODE_COMPASS = 9,
426 OPERATION_MODE_M4G = 10,
427 OPERATION_MODE_NDOF_FMC_OFF = 11,
428 OPERATION_MODE_NDOF = 12
435 PWR_MODE_POWER_MODE0 = 0x01,
436 PWR_MODE_POWER_MODE1 = 0x02,
437 _PWR_MODE_POWER_MODE_MASK = 3,
438 _PWR_MODE_POWER_MODE_SHIFT = 0
446 POWER_MODE_NORMAL = 0,
448 POWER_MODE_SUSPEND = 2
455 SYS_TRIGGER_SELF_TEST = 0x01,
457 SYS_TRIGGER_RST_SYS = 0x20,
458 SYS_TRIGGER_RST_INT = 0x40,
459 SYS_TRIGGER_CLK_SEL = 0x80
466 TEMP_SOURCE_TEMP_SOURCE0 = 0x01,
467 TEMP_SOURCE_TEMP_SOURCE1 = 0x02,
468 _TEMP_SOURCE_TEMP_SOURCE_MASK = 3,
469 _TEMP_SOURCE_TEMP_SOURCE_SHIFT = 0
485 AXIS_MAP_CONFIG_REMAPPED_X_VAL0 = 0x01,
486 AXIS_MAP_CONFIG_REMAPPED_X_VAL1 = 0x02,
487 _AXIS_MAP_CONFIG_REMAPPED_X_VAL_MASK = 3,
488 _AXIS_MAP_CONFIG_REMAPPED_X_VAL_SHIFT = 0,
490 AXIS_MAP_CONFIG_REMAPPED_Y_VAL0 = 0x04,
491 AXIS_MAP_CONFIG_REMAPPED_Y_VAL1 = 0x08,
492 _AXIS_MAP_CONFIG_REMAPPED_Y_VAL_MASK = 3,
493 _AXIS_MAP_CONFIG_REMAPPED_Y_VAL_SHIFT = 2,
495 AXIS_MAP_CONFIG_REMAPPED_Z_VAL0 = 0x10,
496 AXIS_MAP_CONFIG_REMAPPED_Z_VAL1 = 0x20,
497 _AXIS_MAP_CONFIG_REMAPPED_Z_VAL_MASK = 3,
498 _AXIS_MAP_CONFIG_REMAPPED_Z_VAL_SHIFT = 4
517 AXIS_MAP_SIGN_REMAPPED_Z_SIGN = 0x01,
518 AXIS_MAP_SIGN_REMAPPED_Y_SIGN = 0x02,
519 AXIS_MAP_SIGN_REMAPPED_X_SIGN = 0x04
529 ACC_CONFIG_ACC_RANGE0 = 0x01,
530 ACC_CONFIG_ACC_RANGE1 = 0x02,
531 _ACC_CONFIG_ACC_RANGE_MASK = 3,
532 _ACC_CONFIG_ACC_RANGE_SHIFT = 0,
534 ACC_CONFIG_ACC_BW0 = 0x04,
535 ACC_CONFIG_ACC_BW1 = 0x08,
536 ACC_CONFIG_ACC_BW2 = 0x10,
537 _ACC_CONFIG_ACC_BW_MASK = 7,
538 _ACC_CONFIG_ACC_BW_SHIFT = 2,
540 ACC_CONFIG_ACC_PWR_MODE0 = 0x20,
541 ACC_CONFIG_ACC_PWR_MODE1 = 0x40,
542 ACC_CONFIG_ACC_PWR_MODE2 = 0x80,
543 _ACC_CONFIG_ACC_PWR_MODE_MASK = 7,
544 _ACC_CONFIG_ACC_PWR_MODE_SHIFT = 5
575 ACC_PWR_MODE_NORMAL = 0,
576 ACC_PWR_MODE_SUSPEND = 1,
577 ACC_PWR_MODE_LOWPOWER1 = 2,
578 ACC_PWR_MODE_STANDBY = 3,
579 ACC_PWR_MODE_LOWPOWER2 = 4,
580 ACC_PWR_MODE_DEEPSUSPEND = 5
587 MAG_CONFIG_MAG_ODR0 = 0x01,
588 MAG_CONFIG_MAG_ODR1 = 0x02,
589 MAG_CONFIG_MAG_ODR2 = 0x04,
590 _MAG_CONFIG_MAG_ODR_MASK = 7,
591 _MAG_CONFIG_MAG_ODR_SHIFT = 0,
593 MAG_CONFIG_MAG_OPR_MODE0 = 0x08,
594 MAG_CONFIG_MAG_OPR_MODE1 = 0x10,
595 _MAG_CONFIG_MAG_OPR_MODE_MASK = 3,
596 _MAG_CONFIG_MAG_OPR_MODE_SHIFT = 3,
598 MAG_CONFIG_MAG_POWER_MODE0 = 0x20,
599 MAG_CONFIG_MAG_POWER_MODE1 = 0x40,
600 _MAG_CONFIG_MAG_POWER_MODE_MASK = 3,
601 _MAG_CONFIG_MAG_POWER_MODE_SHIFT = 5
625 MAG_OPR_ENHANCED_REGULAR = 2,
626 MAG_OPR_HIGH_ACCURACY = 3
633 MAG_POWER_NORMAL = 0,
635 MAG_POWER_SUSPEND = 2,
636 MAG_POWER_FORCE_MODE = 3
643 GYR_CONFIG0_GYR_RANGE0 = 0x01,
644 GYR_CONFIG0_GYR_RANGE1 = 0x02,
645 GYR_CONFIG0_GYR_RANGE2 = 0x04,
646 _GYR_CONFIG0_GYR_RANGE_MASK = 7,
647 _GYR_CONFIG0_GYR_RANGE_SHIFT = 0,
649 GYR_CONFIG0_GYR_BW0 = 0x08,
650 GYR_CONFIG0_GYR_BW1 = 0x10,
651 GYR_CONFIG0_GYR_BW2 = 0x20,
652 _GYR_CONFIG0_GYR_BW_MASK = 7,
653 _GYR_CONFIG0_GYR_BW_SHIFT = 3
686 GYR_CONFIG1_GYR_POWER_MODE0 = 0x01,
687 GYR_CONFIG1_GYR_POWER_MODE1 = 0x02,
688 GYR_CONFIG1_GYR_POWER_MODE2 = 0x04,
689 _GYR_CONFIG1_GYR_POWER_MODE_MASK = 7,
690 _GYR_CONFIG1_GYR_POWER_MODE_SHIFT = 0
698 GYR_POWER_MODE_NORMAL = 0,
699 GYR_POWER_MODE_FAST_POWERUP = 1,
700 GYR_POWER_MODE_DEEP_SUSPEND = 2,
701 GYR_POWER_MODE_SUSPEND = 3,
702 GYR_POWER_MODE_ADVANCED_POWERSAVE= 4
709 ACC_SLEEP_CONFIG_SLP_MODE = 0x01,
711 ACC_SLEEP_CONFIG_ACC_SLP_DUR0 = 0x02,
712 ACC_SLEEP_CONFIG_ACC_SLP_DUR1 = 0x04,
713 ACC_SLEEP_CONFIG_ACC_SLP_DUR2 = 0x08,
714 ACC_SLEEP_CONFIG_ACC_SLP_DUR3 = 0x10,
715 _ACC_SLEEP_CONFIG_ACC_SLP_DUR_MASK = 15,
716 _ACC_SLEEP_CONFIG_ACC_SLP_DUR_SHIFT = 1
734 ACC_SLP_DUR_100 = 13,
743 GYR_SLEEP_CONFIG_GYR_SLEEP_DUR0 = 0x01,
744 GYR_SLEEP_CONFIG_GYR_SLEEP_DUR1 = 0x02,
745 GYR_SLEEP_CONFIG_GYR_SLEEP_DUR2 = 0x04,
746 _GYR_SLEEP_CONFIG_GYR_SLEEP_DUR_MASK = 7,
747 _GYR_SLEEP_CONFIG_GYR_SLEEP_DUR_SHIFT = 0,
749 GYR_SLEEP_CONFIG_GYR_AUTO_SLP_DUR0 = 0x08,
750 GYR_SLEEP_CONFIG_GYR_AUTO_SLP_DUR1 = 0x10,
751 GYR_SLEEP_CONFIG_GYR_AUTO_SLP_DUR2 = 0x20,
752 _GYR_SLEEP_CONFIG_GYR_AUTO_SLP_DUR_MASK = 7,
753 _GYR_SLEEP_CONFIG_GYR_AUTO_SLP_DUR_SHIFT = 3
765 GYR_SLEEP_DUR_10 = 4,
766 GYR_SLEEP_DUR_15 = 5,
767 GYR_SLEEP_DUR_18 = 6,
776 GYR_AUTO_SLP_DUR_4 = 1,
777 GYR_AUTO_SLP_DUR_5 = 2,
778 GYR_AUTO_SLP_DUR_8 = 3,
779 GYR_AUTO_SLP_DUR_10 = 4,
780 GYR_AUTO_SLP_DUR_15 = 5,
781 GYR_AUTO_SLP_DUR_20 = 6,
782 GYR_AUTO_SLP_DUR_40 = 7
791 INT_GYRO_HIGH_RATE = 0x08,
793 INT_ACC_HIGH_G = 0x20,
802 ACC_INT_SETTINGS_AM_DUR0 = 0x01,
803 ACC_INT_SETTINGS_AM_DUR1 = 0x02,
804 _ACC_INT_SETTINGS_AM_DUR_MASK = 3,
805 _ACC_INT_SETTINGS_AM_DUR_SHIFT = 0,
807 ACC_INT_SETTINGS_AM_NM_X_AXIS = 0x04,
808 ACC_INT_SETTINGS_AM_NM_Y_AXIS = 0x08,
809 ACC_INT_SETTINGS_AM_NM_Z_AXIS = 0x10,
811 ACC_INT_SETTINGS_HG_X_AXIS = 0x20,
812 ACC_INT_SETTINGS_HG_Y_AXIS = 0x40,
813 ACC_INT_SETTINGS_HG_Z_AXIS = 0x80
820 ACC_NM_SET_SM_NM = 0x01,
822 ACC_NM_SET_SM_NM_DUR0 = 0x02,
823 ACC_NM_SET_SM_NM_DUR1 = 0x04,
824 ACC_NM_SET_SM_NM_DUR2 = 0x08,
825 ACC_NM_SET_SM_NM_DUR3 = 0x10,
826 ACC_NM_SET_SM_NM_DUR4 = 0x20,
827 ACC_NM_SET_SM_NM_DUR5 = 0x40,
828 _ACC_NM_SET_SM_NM_DUR_MASK = 63,
829 _ACC_NM_SET_SM_NM_DUR_SHIFT = 1
837 GYR_INT_SETTING_AM_X_AXIS = 0x01,
838 GYR_INT_SETTING_AM_Y_AXIS = 0x02,
839 GYR_INT_SETTING_AM_Z_AXIS = 0x04,
841 GYR_INT_SETTING_HR_X_AXIS = 0x08,
842 GYR_INT_SETTING_HR_Y_AXIS = 0x10,
843 GYR_INT_SETTING_HR_Z_AXIS = 0x20,
845 GYR_INT_SETTING_AM_FILT = 0x40,
846 GYR_INT_SETTING_HR_FILT = 0x80
853 GYR_HR_XYZ_SET_HR_THRESH0 = 0x01,
854 GYR_HR_XYZ_SET_HR_THRESH1 = 0x02,
855 GYR_HR_XYZ_SET_HR_THRESH2 = 0x04,
856 GYR_HR_XYZ_SET_HR_THRESH3 = 0x08,
857 GYR_HR_XYZ_SET_HR_THRESH4 = 0x10,
858 _GYR_HR_XYZ_SET_HR_THRESH_MASK = 31,
859 _GYR_HR_XYZ_SET_HR_THRESH_SHIFT = 0,
861 GYR_HR_XYZ_SET_HR_THRESH_HYST0 = 0x20,
862 GYR_HR_XYZ_SET_HR_THRESH_HYST1 = 0x40,
863 _GYR_HR_XYZ_SET_HR_THRESH_HYST_MASK = 3,
864 _GYR_HR_XYZ_SET_HR_THRESH_HYST_SHIFT = 5
871 GYR_AM_SET_SLOPE_SAMPLES0 = 0x01,
872 GYR_AM_SET_SLOPE_SAMPLES1 = 0x02,
873 _GYR_AM_SET_SLOPE_SAMPLES_MASK = 3,
874 _GYR_AM_SET_SLOPE_SAMPLES_SHIFT = 0,
876 GYR_AM_SET_AWAKE_DUR0 = 0x04,
877 GYR_AM_SET_AWAKE_DUR1 = 0x08,
878 _GYR_AM_SET_AWAKE_DUR_MASK = 3,
879 _GYR_AM_SET_AWAKE_DUR_SHIFT = 2
889 SLOPE_SAMPLES_16 = 1,
890 SLOPE_SAMPLES_32 = 2,
909 BNO055(
int bus=BNO055_I2C_BUS, uint8_t addr=BNO055_DEFAULT_ADDR);
1379 #if defined(SWIGJAVA) || defined(JAVACALLBACK)
1380 void installISR(
int gpio, mraa::Edge level, jobject runnable);
1393 void (*isr)(
void *),
void *arg);
1404 mraa::Gpio *m_gpioIntr;
1408 float m_temperature;
1423 float m_accUnitScale;
1431 float m_gyrUnitScale;
1439 float m_eulUnitScale;
1458 bool updateFusionData();
1459 bool updateNonFusionData();
1460 void setPage(uint8_t page,
bool force=
false);
1476 void readRegs(uint8_t reg, uint8_t *buffer,
int len);
1485 bool writeReg(uint8_t reg, uint8_t val);
1495 bool writeRegs(uint8_t reg, uint8_t *buffer,
int len);
1503 #if defined(SWIGJAVA) || defined(JAVACALLBACK)
1505 void (*isr)(
void *),
void *arg);
float * getEulerAngles()
Definition: bno055.cxx:602
float * getMagnetometer()
Definition: bno055.cxx:706
void resetSystem()
Definition: bno055.cxx:383
float * getGravityVectors()
Definition: bno055.cxx:665
uint8_t getInterruptStatus()
Definition: bno055.cxx:406
MAG_CONFIG_BITS_T
Definition: bno055.hpp:586
void writeCalibrationData(std::string calibData)
Definition: bno055.cxx:482
ACC_INT_SETTINGS_BITS_T
Definition: bno055.hpp:801
SYS_CLK_STATUS_BITS_T
Definition: bno055.hpp:349
GYR_CONFIG1_BITS_T
Definition: bno055.hpp:685
INT_BITS_T
Definition: bno055.hpp:788
float * getLinearAcceleration()
Definition: bno055.cxx:646
uint8_t getInterruptEnable()
Definition: bno055.cxx:413
ST_RESULT_BITS_T
Definition: bno055.hpp:325
AXIS_MAP_SIGN_BITS_T
Definition: bno055.hpp:516
bool writeRegs(uint8_t reg, uint8_t *buffer, int len)
Definition: bno055.cxx:150
REGS_T
Definition: bno055.hpp:123
MAG_ODR_T
Definition: bno055.hpp:608
void setTemperatureSource(TEMP_SOURCES_T src)
Definition: bno055.cxx:242
GYR_CONFIG0_BITS_T
Definition: bno055.hpp:642
void setOperationMode(OPERATION_MODES_T mode)
Definition: bno055.cxx:324
uint8_t readReg(uint8_t reg)
Definition: bno055.cxx:128
void setClockExternal(bool extClock)
Definition: bno055.cxx:221
MAG_OPR_T
Definition: bno055.hpp:622
void readRegs(uint8_t reg, uint8_t *buffer, int len)
Definition: bno055.cxx:133
SLOPE_SAMPLES_T
Definition: bno055.hpp:887
uint8_t getACCID()
Definition: bno055.cxx:174
MAG_POWER_T
Definition: bno055.hpp:632
ACC_RANGE_T
Definition: bno055.hpp:550
OPERATION_MODES_T
Definition: bno055.hpp:414
GYR_BW_T
Definition: bno055.hpp:671
ACC_SLEEP_CONFIG_BITS_T
Definition: bno055.hpp:708
INT_STA_BITS_T
Definition: bno055.hpp:336
GYR_AM_SET_BITS_T
Definition: bno055.hpp:870
uint8_t getInterruptMask()
Definition: bno055.cxx:427
uint8_t getGYRID()
Definition: bno055.cxx:186
uint16_t getSWRevID()
Definition: bno055.cxx:192
SYS_STATUS_T
Definition: bno055.hpp:357
void uninstallISR()
Definition: bno055.cxx:800
ACC_NM_SET_BITS_T
Definition: bno055.hpp:819
POWER_MODES_T
Definition: bno055.hpp:445
GYR_RANGE_T
Definition: bno055.hpp:660
SYS_ERR_T
Definition: bno055.hpp:370
bool isFullyCalibrated()
Definition: bno055.cxx:370
void installISR(int gpio, mraa::Edge level, void(*isr)(void *), void *arg)
Definition: bno055.cxx:786
void setInterruptEnable(uint8_t enables)
Definition: bno055.cxx:420
GYR_INT_SETTING_BITS_T
Definition: bno055.hpp:836
SYS_ERR_T getSystemError()
Definition: bno055.cxx:448
void setAccelerationConfig(ACC_RANGE_T range, ACC_BW_T bw, ACC_PWR_MODE_T pwr)
Definition: bno055.cxx:732
UNIT_SEL_BITS_T
Definition: bno055.hpp:388
void setMagnetometerConfig(MAG_ODR_T odr, MAG_OPR_T opr, MAG_POWER_T pwr)
Definition: bno055.cxx:744
void setInterruptMask(uint8_t mask)
Definition: bno055.cxx:434
float * getQuaternions()
Definition: bno055.cxx:627
GYR_AUTO_SLP_DUR_T
Definition: bno055.hpp:774
uint8_t getBootLoaderID()
Definition: bno055.cxx:202
void resetInterruptStatus()
Definition: bno055.cxx:395
void setEulerUnits(bool radians=false)
Definition: bno055.cxx:304
void setAccelerometerUnits(bool mg=false)
Definition: bno055.cxx:264
void setGyroscopeConfig(GYR_RANGE_T range, GYR_BW_T bw, GYR_POWER_MODE_T pwr)
Definition: bno055.cxx:756
uint8_t getChipID()
Definition: bno055.cxx:168
API for the BNO055 Absolute Orientation 9DOF Fusion Hub.
Definition: bno055.hpp:105
SYS_TRIGGER_BITS_T
Definition: bno055.hpp:454
bool writeReg(uint8_t reg, uint8_t val)
Definition: bno055.cxx:138
ACC_BW_T
Definition: bno055.hpp:560
REMAPPED_AXIS_T
Definition: bno055.hpp:506
float * getGyroscope()
Definition: bno055.cxx:725
AXIS_MAP_CONFIG_BITS_T
Definition: bno055.hpp:484
TEMP_SOURCES_T
Definition: bno055.hpp:476
ACC_CONFIG_BITS_T
Definition: bno055.hpp:528
ACC_SLP_DUR_T
Definition: bno055.hpp:723
std::string readCalibrationData()
Definition: bno055.cxx:455
void setGyroscopeUnits(bool radians=false)
Definition: bno055.cxx:284
void update()
Definition: bno055.cxx:113
float getTemperature(bool fahrenheit=false)
Definition: bno055.cxx:507
void setTemperatureUnits(bool celsius)
Definition: bno055.cxx:248
OPR_MODE_BITS_T
Definition: bno055.hpp:401
TEMP_SOURCE_BITS_T
Definition: bno055.hpp:465
GYR_POWER_MODE_T
Definition: bno055.hpp:697
ACC_PWR_MODE_T
Definition: bno055.hpp:574
BNO055(int bus=BNO055_I2C_BUS, uint8_t addr=BNO055_DEFAULT_ADDR)
Definition: bno055.cxx:48
GYR_HR_XYZ_SET_BITS_T
Definition: bno055.hpp:852
float * getAccelerometer()
Definition: bno055.cxx:684
SYS_STATUS_T getSystemStatus()
Definition: bno055.cxx:441
CALIB_STAT_BITS_T
Definition: bno055.hpp:300
GYR_SLEEP_CONFIG_BITS_T
Definition: bno055.hpp:742
~BNO055()
Definition: bno055.cxx:108
GYR_SLEEP_DUR_T
Definition: bno055.hpp:760
PWR_MODE_BITS_T
Definition: bno055.hpp:434
int * getCalibrationStatus()
Definition: bno055.cxx:362
uint8_t getMAGID()
Definition: bno055.cxx:180