36#define BNO055_G_CHIP_ADDR (0x28 << 1)
37#define BNO055_V_CHIP_ADDR (0x29 << 1)
40#define CONFIGMODE 0x00
42#define MODE_COMPASS 0x09
44#define MODE_NDOF_FMC_OFF 0x0b
48#define UNIT_ACC_MSS 0x00
49#define UNIT_ACC_MG 0x01
50#define UNIT_GYR_DPS 0x00
51#define UNIT_GYR_RPS 0x02
52#define UNIT_EULER_DEG 0x00
53#define UNIT_EULER_RAD 0x04
54#define UNIT_TEMP_C 0x00
55#define UNIT_TEMP_F 0x10
56#define UNIT_ORI_WIN 0x00
57#define UNIT_ORI_ANDROID 0x80
60#define I_AM_BNO055_CHIP 0xa0
61#define I_AM_BNO055_ACC 0xfb
62#define I_AM_BNO055_MAG 0x32
63#define I_AM_BNO055_GYR 0x0f
147 BNO055(PinName p_sda, PinName p_scl, PinName p_reset, uint8_t addr, uint8_t mode);
153 BNO055(PinName p_sda, PinName p_scl, PinName p_reset);
159 BNO055(I2C& p_i2c, PinName p_reset, uint8_t addr, uint8_t mode);
165 BNO055(I2C& p_i2c, PinName p_reset, uint8_t mode);
336 uint8_t bootldr_rev_id;
339 bool unit_flag_is_set(uint8_t flag);
346#define BNO055_PAGE_ID 0x07
349#define BNO055_CHIP_ID 0x00
350#define BNO055_ACCEL_REV_ID 0x01
351#define BNO055_MAG_REV_ID 0x02
352#define BNO055_GYRO_REV_ID 0x03
353#define BNO055_SW_REV_ID_LSB 0x04
354#define BNO055_SW_REV_ID_MSB 0x05
355#define BNO055_BL_REV_ID 0x06
358#define BNO055_ACC_X_LSB 0x08
359#define BNO055_ACC_X_MSB 0x09
360#define BNO055_ACC_Y_LSB 0x0a
361#define BNO055_ACC_Y_MSB 0x0b
362#define BNO055_ACC_Z_LSB 0x0c
363#define BNO055_ACC_Z_MSB 0x0d
366#define BNO055_MAG_X_LSB 0x0e
367#define BNO055_MAG_X_MSB 0x0f
368#define BNO055_MAG_Y_LSB 0x10
369#define BNO055_MAG_Y_MSB 0x11
370#define BNO055_MAG_Z_LSB 0x12
371#define BNO055_MAG_Z_MSB 0x13
374#define BNO055_GYR_X_LSB 0x14
375#define BNO055_GYR_X_MSB 0x15
376#define BNO055_GYR_Y_LSB 0x16
377#define BNO055_GYR_Y_MSB 0x17
378#define BNO055_GYR_Z_LSB 0x18
379#define BNO055_GYR_Z_MSB 0x19
382#define BNO055_EULER_H_LSB 0x1a
383#define BNO055_EULER_H_MSB 0x1b
385#define BNO055_EULER_R_LSB 0x1c
386#define BNO055_EULER_R_MSB 0x1d
388#define BNO055_EULER_P_LSB 0x1e
389#define BNO055_EULER_P_MSB 0x1f
392#define BNO055_QUATERNION_W_LSB 0x20
393#define BNO055_QUATERNION_W_MSB 0x21
394#define BNO055_QUATERNION_X_LSB 0x22
395#define BNO055_QUATERNION_X_MSB 0x23
396#define BNO055_QUATERNION_Y_LSB 0x24
397#define BNO055_QUATERNION_Y_MSB 0x25
398#define BNO055_QUATERNION_Z_LSB 0x26
399#define BNO055_QUATERNION_Z_MSB 0x27
402#define BNO055_LINEAR_ACC_X_LSB 0x28
403#define BNO055_LINEAR_ACC_X_MSB 0x29
404#define BNO055_LINEAR_ACC_Y_LSB 0x2a
405#define BNO055_LINEAR_ACC_Y_MSB 0x2b
406#define BNO055_LINEAR_ACC_Z_LSB 0x2c
407#define BNO055_LINEAR_ACC_Z_MSB 0x2d
410#define BNO055_GRAVITY_X_LSB 0x2e
411#define BNO055_GRAVITY_X_MSB 0x2f
412#define BNO055_GRAVITY_Y_LSB 0x30
413#define BNO055_GRAVITY_Y_MSB 0x31
414#define BNO055_GRAVITY_Z_LSB 0x32
415#define BNO055_GRAVITY_Z_MSB 0x33
418#define BNO055_TEMP 0x34
421#define BNO055_CALIB_STAT 0x35
422#define BNO055_SELFTEST_RESULT 0x36
423#define BNO055_INTR_STAT 0x37
424#define BNO055_SYS_CLK_STAT 0x38
425#define BNO055_SYS_STAT 0x39
426#define BNO055_SYS_ERR 0x3a
429#define BNO055_UNIT_SEL 0x3b
430#define BNO055_DATA_SELECT 0x3c
433#define BNO055_OPR_MODE 0x3d
434#define BNO055_PWR_MODE 0x3e
435#define BNO055_SYS_TRIGGER 0x3f
436#define BNO055_TEMP_SOURCE 0x40
439#define BNO055_AXIS_MAP_CONFIG 0x41
440#define BNO055_AXIS_MAP_SIGN 0x42
443#define BNO055_SIC_MTRX_0_LSB 0x43
444#define BNO055_SIC_MTRX_0_MSB 0x44
445#define BNO055_SIC_MTRX_1_LSB 0x45
446#define BNO055_SIC_MTRX_1_MSB 0x46
447#define BNO055_SIC_MTRX_2_LSB 0x47
448#define BNO055_SIC_MTRX_2_MSB 0x48
449#define BNO055_SIC_MTRX_3_LSB 0x49
450#define BNO055_SIC_MTRX_3_MSB 0x4a
451#define BNO055_SIC_MTRX_4_LSB 0x4b
452#define BNO055_SIC_MTRX_4_MSB 0x4c
453#define BNO055_SIC_MTRX_5_LSB 0x4d
454#define BNO055_SIC_MTRX_5_MSB 0x4e
455#define BNO055_SIC_MTRX_6_LSB 0x4f
456#define BNO055_SIC_MTRX_6_MSB 0x50
457#define BNO055_SIC_MTRX_7_LSB 0x51
458#define BNO055_SIC_MTRX_7_MSB 0x52
459#define BNO055_SIC_MTRX_8_LSB 0x53
460#define BNO055_SIC_MTRX_8_MSB 0x54
463#define ACCEL_OFFSET_X_LSB 0x55
464#define ACCEL_OFFSET_X_MSB 0x56
465#define ACCEL_OFFSET_Y_LSB 0x57
466#define ACCEL_OFFSET_Y_MSB 0x58
467#define ACCEL_OFFSET_Z_LSB 0x59
468#define ACCEL_OFFSET_Z_MSB 0x5a
471#define MAG_OFFSET_X_LSB 0x5b
472#define MAG_OFFSET_X_MSB 0x5c
473#define MAG_OFFSET_Y_LSB 0x5d
474#define MAG_OFFSET_Y_MSB 0x5e
475#define MAG_OFFSET_Z_LSB 0x5f
476#define MAG_OFFSET_Z_MSB 0x60
479#define GYRO_OFFSET_X_LSB 0x61
480#define GYRO_OFFSET_X_MSB 0x62
481#define GYRO_OFFSET_Y_LSB 0x63
482#define GYRO_OFFSET_Y_MSB 0x64
483#define GYRO_OFFSET_Z_LSB 0x65
484#define GYRO_OFFSET_Z_MSB 0x66
487#define ACCEL_RADIUS_LSB 0x67
488#define ACCEL_RADIUS_MSB 0x68
489#define MAG_RADIUS_LSB 0x69
490#define MAG_RADIUS_MSB 0x6a
494#define ACCEL_CONFIG 0x08
495#define MAG_CONFIG 0x09
496#define GYRO_CONFIG 0x0a
497#define GYRO_MODE_CONFIG 0x0b
498#define ACCEL_SLEEP_CONFIG 0x0c
499#define GYRO_SLEEP_CONFIG 0x0d
500#define MAG_SLEEP_CONFIG 0x0e
505#define ACCEL_ANY_MOTION_THRES 0x11
506#define ACCEL_INTR_SETTINGS 0x12
507#define ACCEL_HIGH_G_DURN 0x13
508#define ACCEL_HIGH_G_THRES 0x14
509#define ACCEL_NO_MOTION_THRES 0x15
510#define ACCEL_NO_MOTION_SET 0x16
511#define GYRO_INTR_SETING 0x17
512#define GYRO_HIGHRATE_X_SET 0x18
513#define GYRO_DURN_X 0x19
514#define GYRO_HIGHRATE_Y_SET 0x1a
515#define GYRO_DURN_Y 0x1b
516#define GYRO_HIGHRATE_Z_SET 0x1c
517#define GYRO_DURN_Z 0x1d
518#define GYRO_ANY_MOTION_THRES 0x1e
519#define GYRO_ANY_MOTION_SET 0x1f
@ MT_P7
Definition BNO055.h:105
@ MT_P0
Definition BNO055.h:105
@ MT_P6
Definition BNO055.h:105
@ MT_P1
Definition BNO055.h:105
@ MT_P4
Definition BNO055.h:105
@ MT_P5
Definition BNO055.h:105
@ MT_P3
Definition BNO055.h:105
@ MT_P2
Definition BNO055.h:105
int data[]
Definition Map_placement_new.cpp:1
void get_euler_angles(BNO055_EULER_TypeDef *el)
Definition BNO055.cpp:61
bool use_dps()
Definition BNO055.cpp:334
int cantReadDataCount
Definition BNO055.h:308
uint8_t read_calib_status(void)
Definition BNO055.cpp:543
void get_chip_temperature(BNO055_TEMPERATURE_TypeDef *tmp)
Definition BNO055.cpp:247
void unit_selection(void)
Definition BNO055.cpp:310
void get_gravity(BNO055_VECTOR_TypeDef *gr)
Definition BNO055.cpp:162
void get_id(void)
Definition BNO055.cpp:411
void get_angular_position_quat(BNO055_ANGULAR_POSITION_typedef *an_pos)
Definition BNO055.cpp:118
void get_gyro(BNO055_VECTOR_TypeDef *gr)
Definition BNO055.cpp:225
void get_accel(BNO055_VECTOR_TypeDef *la)
Definition BNO055.cpp:202
void get_quaternion(BNO055_QUATERNION_TypeDef *qua)
Definition BNO055.cpp:84
uint8_t write_reg0(uint8_t addr, uint8_t data)
Definition BNO055.cpp:663
void frequency(int hz)
Definition BNO055.cpp:648
void calibrate(void)
Definition BNO055.cpp:460
void change_fusion_mode(uint8_t mode)
Definition BNO055.cpp:553
DigitalOut _res
Definition BNO055.h:323
uint8_t chip_ready(void)
Definition BNO055.cpp:451
uint8_t write_reg1(uint8_t addr, uint8_t data)
Definition BNO055.cpp:687
void initialize_reset_pin(void)
Definition BNO055.cpp:304
uint8_t read_reg0(uint8_t addr)
Definition BNO055.cpp:654
void set_mounting_position(uint8_t position)
Definition BNO055.cpp:597
void read_id_inf(BNO055_ID_INF_TypeDef *id)
Definition BNO055.cpp:440
void set_initial_dt_to_regs(void)
Definition BNO055.cpp:404
uint8_t reset(void)
Definition BNO055.cpp:380
bool use_degrees()
Definition BNO055.cpp:318
bool use_celsius()
Definition BNO055.cpp:342
bool use_mss()
Definition BNO055.cpp:326
I2C * _i2c_p
Definition BNO055.h:321
uint8_t read_reg1(uint8_t addr)
Definition BNO055.cpp:678
uint8_t select_page(uint8_t page)
Definition BNO055.cpp:362
uint8_t get_operating_mode(void)
Definition BNO055.cpp:587
void initialize(void)
Definition BNO055.cpp:284
I2C & _i2c
Definition BNO055.h:322
void get_linear_accel(BNO055_VECTOR_TypeDef *la)
Definition BNO055.cpp:139
double multiturnYaw
Definition BNO055.h:310
void get_mag(BNO055_VECTOR_TypeDef *qua)
Definition BNO055.cpp:185
double yaw
Definition BNO055.h:89
double pitch
Definition BNO055.h:91
double roll
Definition BNO055.h:90
double h
Definition BNO055.h:76
double r
Definition BNO055.h:77
double p
Definition BNO055.h:78
uint8_t acc_id
Definition BNO055.h:68
uint8_t bootldr_rev_id
Definition BNO055.h:71
uint8_t chip_id
Definition BNO055.h:67
uint8_t mag_id
Definition BNO055.h:69
uint16_t sw_rev_id
Definition BNO055.h:72
uint8_t gyr_id
Definition BNO055.h:70
double y
Definition BNO055.h:83
double x
Definition BNO055.h:82
double w
Definition BNO055.h:85
double z
Definition BNO055.h:84
int8_t acc_chip
Definition BNO055.h:101
int8_t gyr_chip
Definition BNO055.h:102
double z
Definition BNO055.h:97
double x
Definition BNO055.h:95
double y
Definition BNO055.h:96