|
esp32_BNO08x 1.1
C++ BNO08x IMU driver component for esp-idf.
|
#include <BNO08x.hpp>

Classes | |
| struct | bno08x_rx_packet_t |
| Holds data that is received over spi. More... | |
| struct | bno08x_tx_packet_t |
| Holds data that is sent over spi. More... | |
Public Member Functions | |
| BNO08x (bno08x_config_t imu_config=default_imu_config) | |
| BNO08x imu constructor. | |
| bool | initialize () |
| Initializes BNO08x sensor. | |
| bool | hard_reset () |
| Hard resets BNO08x sensor. | |
| bool | soft_reset () |
| Soft resets BNO08x sensor using executable channel. | |
| uint8_t | get_reset_reason () |
| Requests product ID, prints the returned info over serial, and returns the reason for the most resent reset. | |
| bool | mode_sleep () |
| Puts BNO08x sensor into sleep/low power mode using executable channel. | |
| bool | mode_on () |
| Turns on/ brings BNO08x sensor out of sleep mode using executable channel. | |
| float | q_to_float (int16_t fixed_point_value, uint8_t q_point) |
| Converts a register value to a float using its associated Q point. (See https://en.wikipedia.org/wiki/Q_(number_format)) | |
| bool | run_full_calibration_routine () |
| Runs full calibration routine. | |
| void | calibrate_all () |
| Sends command to calibrate accelerometer, gyro, and magnetometer. | |
| void | calibrate_accelerometer () |
| Sends command to calibrate accelerometer. | |
| void | calibrate_gyro () |
| Sends command to calibrate gyro. | |
| void | calibrate_magnetometer () |
| Sends command to calibrate magnetometer. | |
| void | calibrate_planar_accelerometer () |
| Sends command to calibrate planar accelerometer. | |
| void | request_calibration_status () |
| Requests ME calibration status from BNO08x (see Ref. Manual 6.4.7.2) | |
| bool | calibration_complete () |
| Returns true if calibration has completed. | |
| void | end_calibration () |
| Sends command to end calibration procedure. | |
| void | save_calibration () |
| Sends command to save internal calibration data (See Ref. Manual 6.4.7). | |
| void | enable_rotation_vector (uint32_t time_between_reports) |
| Sends command to enable rotation vector reports (See Ref. Manual 6.5.18) | |
| void | enable_game_rotation_vector (uint32_t time_between_reports) |
| Sends command to enable game rotation vector reports (See Ref. Manual 6.5.19) | |
| void | enable_ARVR_stabilized_rotation_vector (uint32_t time_between_reports) |
| Sends command to enable ARVR stabilized rotation vector reports (See Ref. Manual 6.5.42) | |
| void | enable_ARVR_stabilized_game_rotation_vector (uint32_t time_between_reports) |
| Sends command to enable ARVR stabilized game rotation vector reports (See Ref. Manual 6.5.43) | |
| void | enable_gyro_integrated_rotation_vector (uint32_t time_between_reports) |
| Sends command to enable gyro integrated rotation vector reports (See Ref. Manual 6.5.44) | |
| void | enable_accelerometer (uint32_t time_between_reports) |
| Sends command to enable accelerometer reports (See Ref. Manual 6.5.9) | |
| void | enable_linear_accelerometer (uint32_t time_between_reports) |
| Sends command to enable linear accelerometer reports (See Ref. Manual 6.5.10) | |
| void | enable_gravity (uint32_t time_between_reports) |
| Sends command to enable gravity reading reports (See Ref. Manual 6.5.11) | |
| void | enable_gyro (uint32_t time_between_reports) |
| Sends command to enable gyro reports (See Ref. Manual 6.5.13) | |
| void | enable_uncalibrated_gyro (uint32_t time_between_reports) |
| Sends command to enable uncalibrated gyro reports (See Ref. Manual 6.5.14) | |
| void | enable_magnetometer (uint32_t time_between_reports) |
| Sends command to enable magnetometer reports (See Ref. Manual 6.5.16) | |
| void | enable_tap_detector (uint32_t time_between_reports) |
| Sends command to enable tap detector reports (See Ref. Manual 6.5.27) | |
| void | enable_step_counter (uint32_t time_between_reports) |
| Sends command to enable step counter reports (See Ref. Manual 6.5.29) | |
| void | enable_stability_classifier (uint32_t time_between_reports) |
| Sends command to enable activity stability classifier reports (See Ref. Manual 6.5.31) | |
| void | enable_activity_classifier (uint32_t time_between_reports, uint32_t activities_to_enable, uint8_t(&activity_confidence_vals)[9]) |
| Sends command to enable activity classifier reports (See Ref. Manual 6.5.36) | |
| void | enable_raw_accelerometer (uint32_t time_between_reports) |
| Sends command to enable raw accelerometer reports (See Ref. Manual 6.5.8) | |
| void | enable_raw_gyro (uint32_t time_between_reports) |
| Sends command to enable raw gyro reports (See Ref. Manual 6.5.12) | |
| void | enable_raw_magnetometer (uint32_t time_between_reports) |
| Sends command to enable raw magnetometer reports (See Ref. Manual 6.5.15) | |
| void | disable_rotation_vector () |
| Sends command to disable rotation vector reports by setting report interval to 0. | |
| void | disable_game_rotation_vector () |
| Sends command to disable game rotation vector reports by setting report interval to 0. | |
| void | disable_ARVR_stabilized_rotation_vector () |
| Sends command to disable ARVR stabilized rotation vector reports by setting report interval to 0. | |
| void | disable_ARVR_stabilized_game_rotation_vector () |
| Sends command to disable ARVR stabilized game rotation vector reports by setting report interval to 0. | |
| void | disable_gyro_integrated_rotation_vector () |
| Sends command to disable gyro integrated rotation vector reports by setting report interval to 0. | |
| void | disable_accelerometer () |
| Sends command to disable accelerometer reports by setting report interval to 0. | |
| void | disable_linear_accelerometer () |
| Sends command to disable linear accelerometer reports by setting report interval to 0. | |
| void | disable_gravity () |
| Sends command to disable gravity reports by setting report interval to 0. | |
| void | disable_gyro () |
| Sends command to disable gyro reports by setting report interval to 0. | |
| void | disable_uncalibrated_gyro () |
| Sends command to disable uncalibrated gyro reports by setting report interval to 0. | |
| void | disable_magnetometer () |
| Sends command to disable magnetometer reports by setting report interval to 0. | |
| void | disable_tap_detector () |
| Sends command to disable tap detector reports by setting report interval to 0. | |
| void | disable_step_counter () |
| Sends command to disable step counter reports by setting report interval to 0. | |
| void | disable_stability_classifier () |
| Sends command to disable stability reports by setting report interval to 0. | |
| void | disable_activity_classifier () |
| Sends command to disable activity classifier reports by setting report interval to 0. | |
| void | disable_raw_accelerometer () |
| Sends command to disable raw accelerometer reports by setting report interval to 0. | |
| void | disable_raw_gyro () |
| Sends command to disable raw gyro reports by setting report interval to 0. | |
| void | disable_raw_magnetometer () |
| Sends command to disable raw magnetometer reports by setting report interval to 0. | |
| void | tare_now (uint8_t axis_sel=TARE_AXIS_ALL, uint8_t rotation_vector_basis=TARE_ROTATION_VECTOR) |
| Sends command to tare an axis (See Ref. Manual 6.4.4.1) | |
| void | save_tare () |
| Sends command to save tare into non-volatile memory of BNO08x (See Ref. Manual 6.4.4.2) | |
| void | clear_tare () |
| Sends command to clear persistent tare settings in non-volatile memory of BNO08x (See Ref. Manual 6.4.4.3) | |
| bool | data_available () |
| Checks if BNO08x has asserted interrupt and sent data. | |
| void | register_cb (std::function< void()> cb_fxn) |
| Registers a callback to execute when new data from a report is received. | |
| uint32_t | get_time_stamp () |
| Return timestamp of most recent report. | |
| void | get_magf (float &x, float &y, float &z, uint8_t &accuracy) |
| Get the full magnetic field vector. | |
| float | get_magf_X () |
| Get X component of magnetic field vector. | |
| float | get_magf_Y () |
| Get Y component of magnetic field vector. | |
| float | get_magf_Z () |
| Get Z component of magnetic field vector. | |
| uint8_t | get_magf_accuracy () |
| Get accuracy of reported magnetic field vector. | |
| void | get_gravity (float &x, float &y, float &z, uint8_t &accuracy) |
| Get full reported gravity vector, units in m/s^2. | |
| float | get_gravity_X () |
| Get the reported x axis gravity. | |
| float | get_gravity_Y () |
| Get the reported y axis gravity. | |
| float | get_gravity_Z () |
| Get the reported z axis gravity. | |
| uint8_t | get_gravity_accuracy () |
| Get the reported gravity accuracy. | |
| float | get_roll () |
| Get the reported rotation about x axis. | |
| float | get_pitch () |
| Get the reported rotation about y axis. | |
| float | get_yaw () |
| Get the reported rotation about z axis. | |
| float | get_roll_deg () |
| Get the reported rotation about x axis. | |
| float | get_pitch_deg () |
| Get the reported rotation about y axis. | |
| float | get_yaw_deg () |
| Get the reported rotation about z axis. | |
| void | get_quat (float &i, float &j, float &k, float &real, float &rad_accuracy, uint8_t &accuracy) |
| Get the full quaternion reading. | |
| float | get_quat_I () |
| Get I component of reported quaternion. | |
| float | get_quat_J () |
| Get J component of reported quaternion. | |
| float | get_quat_K () |
| Get K component of reported quaternion. | |
| float | get_quat_real () |
| Get real component of reported quaternion. | |
| float | get_quat_radian_accuracy () |
| Get radian accuracy of reported quaternion. | |
| uint8_t | get_quat_accuracy () |
| Get accuracy of reported quaternion. | |
| void | get_accel (float &x, float &y, float &z, uint8_t &accuracy) |
| Get full acceleration (total acceleration of device, units in m/s^2). | |
| float | get_accel_X () |
| Get x axis acceleration (total acceleration of device, units in m/s^2). | |
| float | get_accel_Y () |
| Get y axis acceleration (total acceleration of device, units in m/s^2). | |
| float | get_accel_Z () |
| Get z axis acceleration (total acceleration of device, units in m/s^2). | |
| uint8_t | get_accel_accuracy () |
| Get accuracy of linear acceleration. | |
| void | get_linear_accel (float &x, float &y, float &z, uint8_t &accuracy) |
| Get full linear acceleration (acceleration of the device minus gravity, units in m/s^2). | |
| float | get_linear_accel_X () |
| Get x axis linear acceleration (acceleration of device minus gravity, units in m/s^2) | |
| float | get_linear_accel_Y () |
| Get y axis linear acceleration (acceleration of device minus gravity, units in m/s^2) | |
| float | get_linear_accel_Z () |
| Get z axis linear acceleration (acceleration of device minus gravity, units in m/s^2) | |
| uint8_t | get_linear_accel_accuracy () |
| Get accuracy of linear acceleration. | |
| int16_t | get_raw_accel_X () |
| Get raw accelerometer x axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8) | |
| int16_t | get_raw_accel_Y () |
| Get raw accelerometer y axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8) | |
| int16_t | get_raw_accel_Z () |
| Get raw accelerometer z axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8) | |
| int16_t | get_raw_gyro_X () |
| Get raw gyroscope x axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12) | |
| int16_t | get_raw_gyro_Y () |
| Get raw gyroscope y axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12) | |
| int16_t | get_raw_gyro_Z () |
| Get raw gyroscope z axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12) | |
| int16_t | get_raw_magf_X () |
| Get raw magnetometer x axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15) | |
| int16_t | get_raw_magf_Y () |
| Get raw magnetometer y axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15) | |
| int16_t | get_raw_magf_Z () |
| Get raw magnetometer z axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15) | |
| void | get_gyro_calibrated_velocity (float &x, float &y, float &z, uint8_t &accuracy) |
| Get full rotational velocity with drift compensation (units in Rad/s). | |
| float | get_gyro_calibrated_velocity_X () |
| Get calibrated gyro x axis angular velocity measurement. | |
| float | get_gyro_calibrated_velocity_Y () |
| Get calibrated gyro y axis angular velocity measurement. | |
| float | get_gyro_calibrated_velocity_Z () |
| Get calibrated gyro z axis angular velocity measurement. | |
| uint8_t | get_gyro_accuracy () |
| Get calibrated gyro accuracy. | |
| void | get_uncalibrated_gyro (float &x, float &y, float &z, float &bx, float &by, float &bz, uint8_t &accuracy) |
| Get full rotational velocity without drift compensation (units in Rad/s). An estimate of drift is given but not applied. | |
| float | get_uncalibrated_gyro_X () |
| Get uncalibrated gyro x axis angular velocity measurement. | |
| float | get_uncalibrated_gyro_Y () |
| Get uncalibrated gyro Y axis angular velocity measurement. | |
| float | get_uncalibrated_gyro_Z () |
| Get uncalibrated gyro Z axis angular velocity measurement. | |
| float | get_uncalibrated_gyro_bias_X () |
| Get uncalibrated gyro x axis drift estimate. | |
| float | get_uncalibrated_gyro_bias_Y () |
| Get uncalibrated gyro Y axis drift estimate. | |
| float | get_uncalibrated_gyro_bias_Z () |
| Get uncalibrated gyro Z axis drift estimate. | |
| uint8_t | get_uncalibrated_gyro_accuracy () |
| Get uncalibrated gyro accuracy. | |
| void | get_gyro_velocity (float &x, float &y, float &z) |
| Full rotational velocity from gyro-integrated rotation vector (See Ref. Manual 6.5.44) | |
| float | get_gyro_velocity_X () |
| Get x axis angular velocity from gyro-integrated rotation vector. (See Ref. Manual 6.5.44) | |
| float | get_gyro_velocity_Y () |
| Get y axis angular velocity from gyro-integrated rotation vector. (See Ref. Manual 6.5.44) | |
| float | get_gyro_velocity_Z () |
| Get z axis angular velocity from gyro-integrated rotation vector. (See Ref. Manual 6.5.44) | |
| uint8_t | get_tap_detector () |
| Get if tap has occured. | |
| uint16_t | get_step_count () |
| Get the counted amount of steps. | |
| int8_t | get_stability_classifier () |
| Get the current stability classifier (Seee Ref. Manual 6.5.31) | |
| uint8_t | get_activity_classifier () |
| Get the current activity classifier (Seee Ref. Manual 6.5.36) | |
| int16_t | get_Q1 (uint16_t record_ID) |
| Gets Q1 point from BNO08x FRS (flash record system). | |
| int16_t | get_Q2 (uint16_t record_ID) |
| Gets Q2 point from BNO08x FRS (flash record system). | |
| int16_t | get_Q3 (uint16_t record_ID) |
| Gets Q3 point from BNO08x FRS (flash record system). | |
| float | get_resolution (uint16_t record_ID) |
| Gets resolution from BNO08x FRS (flash record system). | |
| float | get_range (uint16_t record_ID) |
| Gets range from BNO08x FRS (flash record system). | |
| uint32_t | FRS_read_word (uint16_t record_ID, uint8_t word_number) |
| Reads meta data word from BNO08x FRS (flash record system) given the record ID and word number. (See Ref. Manual 5.1 & 6.3.7) | |
| bool | FRS_read_request (uint16_t record_ID, uint16_t read_offset, uint16_t block_size) |
| Requests meta data from BNO08x FRS (flash record system) given the record ID. Contains Q points and other info. (See Ref. Manual 5.1 & 6.3.6) | |
| bool | FRS_read_data (uint16_t record_ID, uint8_t start_location, uint8_t words_to_read) |
| Read meta data from BNO08x FRS (flash record system) given the record ID. Contains Q points and other info. (See Ref. Manual 5.1 & 6.3.7) | |
Static Public Attributes | |
| static const constexpr uint16_t | FRS_RECORD_ID_ACCELEROMETER |
| Accelerometer record ID, to be passed in metadata functions like get_Q1() | |
| static const constexpr uint16_t | FRS_RECORD_ID_GYROSCOPE_CALIBRATED |
| Calirated gyroscope record ID, to be passed in metadata functions like get_Q1() | |
| static const constexpr uint16_t | FRS_RECORD_ID_MAGNETIC_FIELD_CALIBRATED |
| Calibrated magnetometer record ID, to be passed in metadata functions like get_Q1() | |
| static const constexpr uint16_t | FRS_RECORD_ID_ROTATION_VECTOR |
| Rotation vector record ID, to be passed in metadata functions like get_Q1() | |
| static const constexpr uint8_t | TARE_AXIS_ALL = 0x07 |
| Tare all axes (used with tare now command) | |
| static const constexpr uint8_t | TARE_AXIS_Z = 0x04 |
| Tar yaw axis only (used with tare now command) | |
| static const constexpr uint8_t | TARE_ROTATION_VECTOR = 0 |
| Tare rotation vector. | |
| static const constexpr uint8_t | TARE_GAME_ROTATION_VECTOR = 1 |
| Tare game rotation vector. | |
| static const constexpr uint8_t | TARE_GEOMAGNETIC_ROTATION_VECTOR = 2 |
| tare geomagnetic rotation vector | |
| static const constexpr uint8_t | TARE_GYRO_INTEGRATED_ROTATION_VECTOR = 3 |
| Tare gyro integrated rotation vector. | |
| static const constexpr uint8_t | TARE_ARVR_STABILIZED_ROTATION_VECTOR = 4 |
| Tare ARVR stabilized rotation vector. | |
| static const constexpr uint8_t | TARE_ARVR_STABILIZED_GAME_ROTATION_VECTOR = 5 |
| Tare ARVR stabilized game rotation vector. | |
| static const constexpr int16_t | ROTATION_VECTOR_Q1 = 14 |
| Rotation vector Q point (See SH-2 Ref. Manual 6.5.18) | |
| static const constexpr int16_t | ROTATION_VECTOR_ACCURACY_Q1 = 12 |
| Rotation vector accuracy estimate Q point (See SH-2 Ref. Manual 6.5.18) | |
| static const constexpr int16_t | ACCELEROMETER_Q1 = 8 |
| Acceleration Q point (See SH-2 Ref. Manual 6.5.9) | |
| static const constexpr int16_t | LINEAR_ACCELEROMETER_Q1 = 8 |
| Linear acceleration Q point (See SH-2 Ref. Manual 6.5.10) | |
| static const constexpr int16_t | GYRO_Q1 = 9 |
| Gyro Q point (See SH-2 Ref. Manual 6.5.13) | |
| static const constexpr int16_t | MAGNETOMETER_Q1 = 4 |
| Magnetometer Q point (See SH-2 Ref. Manual 6.5.16) | |
| static const constexpr int16_t | ANGULAR_VELOCITY_Q1 = 10 |
| Angular velocity Q point (See SH-2 Ref. Manual 6.5.44) | |
| static const constexpr int16_t | GRAVITY_Q1 = 8 |
| Gravity Q point (See SH-2 Ref. Manual 6.5.11) | |
Private Types | |
| typedef struct BNO08x::bno08x_rx_packet_t | bno08x_rx_packet_t |
| Holds data that is received over spi. | |
| typedef struct BNO08x::bno08x_tx_packet_t | bno08x_tx_packet_t |
| Holds data that is sent over spi. | |
Private Member Functions | |
| bool | wait_for_rx_done () |
| Waits for data to be received over SPI, or HOST_INT_TIMEOUT_MS to elapse. | |
| bool | wait_for_tx_done () |
| Waits for a queued packet to be sent or HOST_INT_TIMEOUT_MS to elapse. | |
| bool | wait_for_data () |
| Waits for a valid or invalid packet to be received or HOST_INT_TIMEOUT_MS to elapse. | |
| bool | receive_packet () |
| Receives a SHTP packet via SPI and sends it to data_proc_task() | |
| void | send_packet (bno08x_tx_packet_t *packet) |
| Sends a queued SHTP packet via SPI. | |
| void | enable_report (uint8_t report_ID, uint32_t time_between_reports, const EventBits_t report_evt_grp_bit) |
| Enables a sensor report for a given ID. | |
| void | disable_report (uint8_t report_ID, const EventBits_t report_evt_grp_bit) |
| Disables a sensor report for a given ID by setting its time interval to 0. | |
| void | queue_packet (uint8_t channel_number, uint8_t data_length, uint8_t *commands) |
| Queues an SHTP packet to be sent via SPI. | |
| void | queue_command (uint8_t command, uint8_t *commands) |
| Queues a packet containing a command. | |
| void | queue_feature_command (uint8_t report_ID, uint32_t time_between_reports) |
| Queues a packet containing a command with a request for sensor reports, reported periodically. (See Ref. Manual 6.5.4) | |
| void | queue_feature_command (uint8_t report_ID, uint32_t time_between_reports, uint32_t specific_config) |
| Queues a packet containing a command with a request for sensor reports, reported periodically. (See Ref. Manual 6.5.4) | |
| void | queue_calibrate_command (uint8_t _to_calibrate) |
| Queues a packet containing a command to calibrate the specified sensor. | |
| void | queue_tare_command (uint8_t command, uint8_t axis=TARE_AXIS_ALL, uint8_t rotation_vector_basis=TARE_ROTATION_VECTOR) |
| Queues a packet containing a command related to zeroing sensor's axes. (See Ref. Manual 6.4.4.1) | |
| void | queue_request_product_id_command () |
| Queues a packet containing the request product ID command. | |
| uint16_t | parse_packet (bno08x_rx_packet_t *packet) |
| Parses a packet received from bno08x, updating any data according to received reports. | |
| uint16_t | parse_product_id_report (bno08x_rx_packet_t *packet) |
| Parses product id report and prints device info. | |
| uint16_t | parse_frs_read_response_report (bno08x_rx_packet_t *packet) |
| Sends packet to be parsed to meta data function call (frs_read_word()) through queue. | |
| uint16_t | parse_input_report (bno08x_rx_packet_t *packet) |
| Parses received input report sent by BNO08x. | |
| uint16_t | parse_command_report (bno08x_rx_packet_t *packet) |
| Parses received command report sent by BNO08x (See Ref. Manual 6.3.9) | |
| void | print_header (bno08x_rx_packet_t *packet) |
| Prints the header of the passed SHTP packet to serial console with ESP_LOG statement. | |
| void | print_packet (bno08x_rx_packet_t *packet) |
| Prints the passed SHTP packet to serial console with ESP_LOG statement. | |
| void | spi_task () |
| Task responsible for SPI transactions. Executed when HINT in is asserted by BNO08x. | |
| void | data_proc_task () |
| Task responsible parsing packets. Executed when SPI task sends a packet to be parsed, notifies wait_for_data() call. | |
Static Private Member Functions | |
| static void | spi_task_trampoline (void *arg) |
| Static function used to launch spi task. | |
| static void | data_proc_task_trampoline (void *arg) |
| Static function used to launch data processing task. | |
| static void IRAM_ATTR | hint_handler (void *arg) |
| HINT interrupt service routine, handles falling edge of BNO08x HINT pin. | |
Private Attributes | |
| EventGroupHandle_t | evt_grp_spi |
| Event group for indicating when bno08x hint pin has triggered and when new data has been processed. Used by calls to sending or receiving functions. | |
| EventGroupHandle_t | evt_grp_report_en |
| Event group for indicating which reports are currently enabled. | |
| QueueHandle_t | queue_rx_data |
| Packet queue used to send data received from bno08x from spi_task to data_proc_task. | |
| QueueHandle_t | queue_tx_data |
| Packet queue used to send data to be sent over SPI from sending functions to spi_task. | |
| QueueHandle_t | queue_frs_read_data |
| Queue used to send packet body from data_proc_task to frs read functions. | |
| QueueHandle_t | queue_reset_reason |
| Queue used to send reset reason from product id report to reset_reason() function. | |
| std::vector< std::function< void()> > | cb_list |
| uint32_t | meta_data [9] |
| First 9 bytes of meta data returned from FRS read operation (we don't really need the rest) (See Ref. Manual 5.1) | |
| bno08x_config_t | imu_config {} |
| IMU configuration settings. | |
| spi_bus_config_t | bus_config {} |
| SPI bus GPIO configuration settings. | |
| spi_device_interface_config_t | imu_spi_config {} |
| SPI slave device settings. | |
| spi_device_handle_t | spi_hdl {} |
| SPI device handle. | |
| spi_transaction_t | spi_transaction {} |
| SPI transaction handle. | |
| uint32_t | time_stamp |
| Report timestamp (see datasheet 1.3.5.3) | |
| uint16_t | raw_accel_X |
| uint16_t | raw_accel_Y |
| uint16_t | raw_accel_Z |
| uint16_t | accel_accuracy |
| Raw acceleration readings (See SH-2 Ref. Manual 6.5.8) | |
| uint16_t | raw_lin_accel_X |
| uint16_t | raw_lin_accel_Y |
| uint16_t | raw_lin_accel_Z |
| uint16_t | accel_lin_accuracy |
| Raw linear acceleration (See SH-2 Ref. Manual 6.5.10) | |
| uint16_t | raw_gyro_X |
| uint16_t | raw_gyro_Y |
| uint16_t | raw_gyro_Z |
| uint16_t | gyro_accuracy |
| Raw gyro reading (See SH-2 Ref. Manual 6.5.13) | |
| uint16_t | raw_quat_I |
| uint16_t | raw_quat_J |
| uint16_t | raw_quat_K |
| uint16_t | raw_quat_real |
| uint16_t | raw_quat_radian_accuracy |
| uint16_t | quat_accuracy |
| Raw quaternion reading (See SH-2 Ref. Manual 6.5.44) | |
| uint16_t | raw_velocity_gyro_X |
| uint16_t | raw_velocity_gyro_Y |
| uint16_t | raw_velocity_gyro_Z |
| Raw gyro angular velocity reading (See SH-2 Ref. Manual 6.5.44) | |
| uint16_t | gravity_X |
| uint16_t | gravity_Y |
| uint16_t | gravity_Z |
| uint16_t | gravity_accuracy |
| Gravity reading in m/s^2 (See SH-2 Ref. Manual 6.5.11) | |
| uint16_t | raw_uncalib_gyro_X |
| uint16_t | raw_uncalib_gyro_Y |
| uint16_t | raw_uncalib_gyro_Z |
| uint16_t | raw_bias_X |
| uint16_t | raw_bias_Y |
| uint16_t | raw_bias_Z |
| uint16_t | uncalib_gyro_accuracy |
| Uncalibrated gyro reading (See SH-2 Ref. Manual 6.5.14) | |
| uint16_t | raw_magf_X |
| uint16_t | raw_magf_Y |
| uint16_t | raw_magf_Z |
| uint16_t | magf_accuracy |
| Calibrated magnetic field reading in uTesla (See SH-2 Ref. Manual 6.5.16) | |
| uint8_t | tap_detector |
| Tap detector reading (See SH-2 Ref. Manual 6.5.27) | |
| uint16_t | step_count |
| Step counter reading (See SH-2 Ref. Manual 6.5.29) | |
| uint8_t | stability_classifier |
| Stability status reading (See SH-2 Ref. Manual 6.5.31) | |
| uint8_t | activity_classifier |
| Activity status reading (See SH-2 Ref. Manual 6.5.36) | |
| uint8_t * | activity_confidences |
| Confidence of read activities (See SH-2 Ref. Manual 6.5.36) | |
| uint8_t | calibration_status |
| Calibration status of device (See SH-2 Ref. Manual 6.4.7.1 & 6.4.7.2) | |
| uint16_t | mems_raw_accel_X |
| uint16_t | mems_raw_accel_Y |
| uint16_t | mems_raw_accel_Z |
| Raw accelerometer readings from MEMS sensor (See SH2 Ref. Manual 6.5.8) | |
| uint16_t | mems_raw_gyro_X |
| uint16_t | mems_raw_gyro_Y |
| uint16_t | mems_raw_gyro_Z |
| Raw gyro readings from MEMS sensor (See SH-2 Ref. Manual 6.5.12) | |
| uint16_t | mems_raw_magf_X |
| uint16_t | mems_raw_magf_Y |
| uint16_t | mems_raw_magf_Z |
| Raw magnetometer (compass) readings from MEMS sensor (See SH-2 Ref. Manual 6.5.15) | |
| TaskHandle_t | spi_task_hdl |
| spi_task() handle | |
| TaskHandle_t | data_proc_task_hdl |
| data_proc_task() task handle | |
Static Private Attributes | |
| static bno08x_config_t | default_imu_config |
| default imu config settings | |
| static bool | isr_service_installed = {false} |
| true of the isr service has been installed, only has to be done once regardless of how many devices are used | |
| static const constexpr uint16_t | RX_DATA_LENGTH = 300 |
| length buffer containing data received over spi | |
| static const constexpr uint16_t | MAX_METADATA_LENGTH = 9 |
| max length of metadata used in frs read operations | |
| static const constexpr uint64_t | HOST_INT_TIMEOUT_MS |
| Max wait between HINT being asserted by BNO08x before transaction is considered failed (in miliseconds) | |
| static const constexpr EventBits_t | EVT_GRP_SPI_RX_DONE_BIT |
| When this bit is set it indicates a receive procedure has completed. | |
| static const constexpr EventBits_t | EVT_GRP_SPI_RX_VALID_PACKET |
| When this bit is set, it indicates a valid packet has been received and processed. | |
| static const constexpr EventBits_t | EVT_GRP_SPI_RX_INVALID_PACKET |
| When this bit is set, it indicates an invalid packet has been received. | |
| static const constexpr EventBits_t | EVT_GRP_SPI_TX_DONE = (1 << 3) |
| When this bit is set, it indicates a queued packet has been sent. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_ROTATION_VECTOR_BIT = (1 << 0) |
| When set, rotation vector reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_GAME_ROTATION_VECTOR_BIT = (1 << 1) |
| When set, game rotation vector reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_ARVR_S_ROTATION_VECTOR_BIT |
| When set, ARVR stabilized rotation vector reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_ARVR_S_GAME_ROTATION_VECTOR_BIT |
| When set, ARVR stabilized game rotation vector reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_GYRO_ROTATION_VECTOR_BIT |
| When set, gyro integrator rotation vector reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_ACCELEROMETER_BIT = (1 << 5) |
| When set, accelerometer reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_LINEAR_ACCELEROMETER_BIT = (1 << 6) |
| When set, linear accelerometer reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_GRAVITY_BIT = (1 << 7) |
| When set, gravity reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_GYRO_BIT = (1 << 8) |
| When set, gyro reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_GYRO_UNCALIBRATED_BIT = (1 << 9) |
| When set, uncalibrated gyro reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_MAGNETOMETER_BIT = (1 << 10) |
| When set, magnetometer reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_TAP_DETECTOR_BIT = (1 << 11) |
| When set, tap detector reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_STEP_COUNTER_BIT = (1 << 12) |
| When set, step counter reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_STABILITY_CLASSIFIER_BIT = (1 << 13) |
| When set, stability classifier reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_ACTIVITY_CLASSIFIER_BIT = (1 << 14) |
| When set, activity classifier reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_RAW_ACCELEROMETER_BIT = (1 << 15) |
| When set, raw accelerometer reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_RAW_GYRO_BIT = (1 << 16) |
| When set, raw gyro reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_RAW_MAGNETOMETER_BIT = (1 << 17) |
| When set, raw magnetometer reports are active. | |
| static const constexpr EventBits_t | EVT_GRP_RPT_ALL_BITS |
| static const constexpr uint8_t | CALIBRATE_ACCEL = 0 |
| Calibrate accelerometer command used by queue_calibrate_command. | |
| static const constexpr uint8_t | CALIBRATE_GYRO = 1 |
| Calibrate gyro command used by queue_calibrate_command. | |
| static const constexpr uint8_t | CALIBRATE_MAG = 2 |
| Calibrate magnetometer command used by queue_calibrate_command. | |
| static const constexpr uint8_t | CALIBRATE_PLANAR_ACCEL = 3 |
| Calibrate planar acceleration command used by queue_calibrate_command. | |
| static const constexpr uint8_t | CALIBRATE_ACCEL_GYRO_MAG |
| Calibrate accelerometer, gyro, & magnetometer command used by queue_calibrate_command. | |
| static const constexpr uint8_t | CALIBRATE_STOP = 5 |
| Stop calibration command used by queue_calibrate_command. | |
| static const constexpr uint8_t | COMMAND_ERRORS = 1 |
| static const constexpr uint8_t | COMMAND_COUNTER = 2 |
| static const constexpr uint8_t | COMMAND_TARE = 3 |
| Command and response to tare command (See Sh2 Ref. Manual 6.4.4) | |
| static const constexpr uint8_t | COMMAND_INITIALIZE = 4 |
| Reinitialize sensor hub components See (SH2 Ref. Manual 6.4.5) | |
| static const constexpr uint8_t | COMMAND_DCD = 6 |
| Save DCD command (See SH2 Ref. Manual 6.4.7) | |
| static const constexpr uint8_t | COMMAND_ME_CALIBRATE = 7 |
| Command and response to configure ME calibration (See SH2 Ref. Manual 6.4.7) | |
| static const constexpr uint8_t | COMMAND_DCD_PERIOD_SAVE = 9 |
| Configure DCD periodic saving (See SH2 Ref. Manual 6.4) | |
| static const constexpr uint8_t | COMMAND_OSCILLATOR = 10 |
| Retrieve oscillator type command (See SH2 Ref. Manual 6.4) | |
| static const constexpr uint8_t | COMMAND_CLEAR_DCD = 11 |
| Clear DCD & Reset command (See SH2 Ref. Manual 6.4) | |
| static const constexpr uint8_t | SHTP_REPORT_COMMAND_RESPONSE = 0xF1 |
| See SH2 Ref. Manual 6.3.9. | |
| static const constexpr uint8_t | SHTP_REPORT_COMMAND_REQUEST = 0xF2 |
| See SH2 Ref. Manual 6.3.8. | |
| static const constexpr uint8_t | SHTP_REPORT_FRS_READ_RESPONSE = 0xF3 |
| See SH2 Ref. Manual 6.3.7. | |
| static const constexpr uint8_t | SHTP_REPORT_FRS_READ_REQUEST = 0xF4 |
| See SH2 Ref. Manual 6.3.6. | |
| static const constexpr uint8_t | SHTP_REPORT_PRODUCT_ID_RESPONSE = 0xF8 |
| See SH2 Ref. Manual 6.3.2. | |
| static const constexpr uint8_t | SHTP_REPORT_PRODUCT_ID_REQUEST = 0xF9 |
| See SH2 Ref. Manual 6.3.1. | |
| static const constexpr uint8_t | SHTP_REPORT_BASE_TIMESTAMP = 0xFB |
| See SH2 Ref. Manual 7.2.1. | |
| static const constexpr uint8_t | SHTP_REPORT_SET_FEATURE_COMMAND = 0xFD |
| See SH2 Ref. Manual 6.5.4. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_ACCELEROMETER = 0x01 |
| See SH2 Ref. Manual 6.5.9. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_GYROSCOPE = 0x02 |
| See SH2 Ref. Manual 6.5.13. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_MAGNETIC_FIELD = 0x03 |
| See SH2 Ref. Manual 6.5.16. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_LINEAR_ACCELERATION = 0x04 |
| See SH2 Ref. Manual 6.5.10. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_ROTATION_VECTOR = 0x05 |
| See SH2 Ref. Manual 6.5.18. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_GRAVITY = 0x06 |
| See SH2 Ref. Manual 6.5.11. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_UNCALIBRATED_GYRO = 0x07 |
| See SH2 Ref. Manual 6.5.14. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_GAME_ROTATION_VECTOR = 0x08 |
| See SH2 Ref. Manual 6.5.19. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_GEOMAGNETIC_ROTATION_VECTOR = 0x09 |
| See SH2 Ref. Manual 6.5.20. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_GYRO_INTEGRATED_ROTATION_VECTOR = 0x2A |
| See SH2 Ref. Manual 6.5.44. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_TAP_DETECTOR = 0x10 |
| See SH2 Ref. Manual 6.5.27. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_STEP_COUNTER = 0x11 |
| See SH2 Ref. Manual 6.5.29. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_STABILITY_CLASSIFIER = 0x13 |
| See SH2 Ref. Manual 6.5.31. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_RAW_ACCELEROMETER = 0x14 |
| See SH2 Ref. Manual 6.5.8. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_RAW_GYROSCOPE = 0x15 |
| See SH2 Ref. Manual 6.5.12. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_RAW_MAGNETOMETER = 0x16 |
| See SH2 Ref. Manual 6.5.15. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_PERSONAL_ACTIVITY_CLASSIFIER = 0x1E |
| See SH2 Ref. Manual 6.5.36. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_ARVR_STABILIZED_ROTATION_VECTOR = 0x28 |
| See SH2 Ref. Manual 6.5.42. | |
| static const constexpr uint8_t | SENSOR_REPORT_ID_ARVR_STABILIZED_GAME_ROTATION_VECTOR = 0x29 |
| See SH2 Ref. Manual 6.5.43. | |
| static const constexpr uint8_t | TARE_NOW = 0 |
| See SH2 Ref. Manual 6.4.4.1. | |
| static const constexpr uint8_t | TARE_PERSIST = 1 |
| See SH2 Ref. Manual 6.4.4.2. | |
| static const constexpr uint8_t | TARE_SET_REORIENTATION = 2 |
| See SH2 Ref. Manual 6.4.4.3. | |
| static const constexpr char * | TAG = "BNO08x" |
| Class tag used for serial print statements. | |
|
private |
Holds data that is received over spi.
|
private |
Holds data that is sent over spi.
| BNO08x::BNO08x | ( | bno08x_config_t | imu_config = default_imu_config | ) |
BNO08x imu constructor.
Construct a BNO08x object for managing a BNO08x sensor. Initializes required GPIO pins, interrupts, SPI peripheral.
| imu_config | Configuration settings (optional), default settings can be seen in bno08x_config_t |

| void BNO08x::calibrate_accelerometer | ( | ) |
Sends command to calibrate accelerometer.

| void BNO08x::calibrate_all | ( | ) |
Sends command to calibrate accelerometer, gyro, and magnetometer.


| void BNO08x::calibrate_gyro | ( | ) |
Sends command to calibrate gyro.

| void BNO08x::calibrate_magnetometer | ( | ) |
Sends command to calibrate magnetometer.

| void BNO08x::calibrate_planar_accelerometer | ( | ) |
Sends command to calibrate planar accelerometer.

| bool BNO08x::calibration_complete | ( | ) |
Returns true if calibration has completed.

| void BNO08x::clear_tare | ( | ) |
Sends command to clear persistent tare settings in non-volatile memory of BNO08x (See Ref. Manual 6.4.4.3)

| bool BNO08x::data_available | ( | ) |
Checks if BNO08x has asserted interrupt and sent data.


|
private |
Task responsible parsing packets. Executed when SPI task sends a packet to be parsed, notifies wait_for_data() call.


|
staticprivate |
Static function used to launch data processing task.
Used such that data_proc_task() can be non-static class member.
| arg | void pointer to BNO08x imu object |


| void BNO08x::disable_accelerometer | ( | ) |
Sends command to disable accelerometer reports by setting report interval to 0.

| void BNO08x::disable_activity_classifier | ( | ) |
Sends command to disable activity classifier reports by setting report interval to 0.

| void BNO08x::disable_ARVR_stabilized_game_rotation_vector | ( | ) |
Sends command to disable ARVR stabilized game rotation vector reports by setting report interval to 0.

| void BNO08x::disable_ARVR_stabilized_rotation_vector | ( | ) |
Sends command to disable ARVR stabilized rotation vector reports by setting report interval to 0.

| void BNO08x::disable_game_rotation_vector | ( | ) |
Sends command to disable game rotation vector reports by setting report interval to 0.

| void BNO08x::disable_gravity | ( | ) |
Sends command to disable gravity reports by setting report interval to 0.

| void BNO08x::disable_gyro | ( | ) |
Sends command to disable gyro reports by setting report interval to 0.

| void BNO08x::disable_gyro_integrated_rotation_vector | ( | ) |
Sends command to disable gyro integrated rotation vector reports by setting report interval to 0.

| void BNO08x::disable_linear_accelerometer | ( | ) |
Sends command to disable linear accelerometer reports by setting report interval to 0.

| void BNO08x::disable_magnetometer | ( | ) |
Sends command to disable magnetometer reports by setting report interval to 0.

| void BNO08x::disable_raw_accelerometer | ( | ) |
Sends command to disable raw accelerometer reports by setting report interval to 0.

| void BNO08x::disable_raw_gyro | ( | ) |
Sends command to disable raw gyro reports by setting report interval to 0.

| void BNO08x::disable_raw_magnetometer | ( | ) |
Sends command to disable raw magnetometer reports by setting report interval to 0.

|
private |
Disables a sensor report for a given ID by setting its time interval to 0.
| report_ID | The report ID of the sensor, i.e. SENSOR_REPORT_ID_X |
| report_evt_grp_bit | The event group bit for the respective report, to indicate to spi_task() it's disabled, i.e. EVT_GRP_RPT_X |
If no reports are enabled after disabling, this function will disable interrupts on hint pin.


| void BNO08x::disable_rotation_vector | ( | ) |
Sends command to disable rotation vector reports by setting report interval to 0.

| void BNO08x::disable_stability_classifier | ( | ) |
Sends command to disable stability reports by setting report interval to 0.

| void BNO08x::disable_step_counter | ( | ) |
Sends command to disable step counter reports by setting report interval to 0.

| void BNO08x::disable_tap_detector | ( | ) |
Sends command to disable tap detector reports by setting report interval to 0.

| void BNO08x::disable_uncalibrated_gyro | ( | ) |
Sends command to disable uncalibrated gyro reports by setting report interval to 0.

| void BNO08x::enable_accelerometer | ( | uint32_t | time_between_reports | ) |
Sends command to enable accelerometer reports (See Ref. Manual 6.5.9)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_activity_classifier | ( | uint32_t | time_between_reports, |
| uint32_t | activities_to_enable, | ||
| uint8_t(&) | activity_confidence_vals[9] ) |
Sends command to enable activity classifier reports (See Ref. Manual 6.5.36)
| time_between_reports | Desired time between reports in microseconds. |
| activities_to_enable | Desired activities to enable (0x1F enables all). |
| activity_confidence_vals | Returned activity level confidences. |

| void BNO08x::enable_ARVR_stabilized_game_rotation_vector | ( | uint32_t | time_between_reports | ) |
Sends command to enable ARVR stabilized game rotation vector reports (See Ref. Manual 6.5.43)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_ARVR_stabilized_rotation_vector | ( | uint32_t | time_between_reports | ) |
Sends command to enable ARVR stabilized rotation vector reports (See Ref. Manual 6.5.42)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_game_rotation_vector | ( | uint32_t | time_between_reports | ) |
Sends command to enable game rotation vector reports (See Ref. Manual 6.5.19)
| time_between_reports | Desired time between reports in microseconds. |


| void BNO08x::enable_gravity | ( | uint32_t | time_between_reports | ) |
Sends command to enable gravity reading reports (See Ref. Manual 6.5.11)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_gyro | ( | uint32_t | time_between_reports | ) |
Sends command to enable gyro reports (See Ref. Manual 6.5.13)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_gyro_integrated_rotation_vector | ( | uint32_t | time_between_reports | ) |
Sends command to enable gyro integrated rotation vector reports (See Ref. Manual 6.5.44)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_linear_accelerometer | ( | uint32_t | time_between_reports | ) |
Sends command to enable linear accelerometer reports (See Ref. Manual 6.5.10)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_magnetometer | ( | uint32_t | time_between_reports | ) |
Sends command to enable magnetometer reports (See Ref. Manual 6.5.16)
| time_between_reports | Desired time between reports in microseconds. |


| void BNO08x::enable_raw_accelerometer | ( | uint32_t | time_between_reports | ) |
Sends command to enable raw accelerometer reports (See Ref. Manual 6.5.8)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_raw_gyro | ( | uint32_t | time_between_reports | ) |
Sends command to enable raw gyro reports (See Ref. Manual 6.5.12)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_raw_magnetometer | ( | uint32_t | time_between_reports | ) |
Sends command to enable raw magnetometer reports (See Ref. Manual 6.5.15)
| time_between_reports | Desired time between reports in microseconds. |

|
private |
Enables a sensor report for a given ID.
| report_ID | The report ID of the sensor, i.e. SENSOR_REPORT_ID_X |
| time_between_reports | The desired time in microseconds between each report. The BNO08x will send reports according to this interval. |
| report_evt_grp_bit | The event group bit for the respective report, to indicate to spi_task() it's enabled, i.e. EVT_GRP_RPT_X |
If no reports were enabled prior to call, this function will re-enable interrupts on hint pin.


| void BNO08x::enable_rotation_vector | ( | uint32_t | time_between_reports | ) |
Sends command to enable rotation vector reports (See Ref. Manual 6.5.18)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_stability_classifier | ( | uint32_t | time_between_reports | ) |
Sends command to enable activity stability classifier reports (See Ref. Manual 6.5.31)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_step_counter | ( | uint32_t | time_between_reports | ) |
Sends command to enable step counter reports (See Ref. Manual 6.5.29)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_tap_detector | ( | uint32_t | time_between_reports | ) |
Sends command to enable tap detector reports (See Ref. Manual 6.5.27)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::enable_uncalibrated_gyro | ( | uint32_t | time_between_reports | ) |
Sends command to enable uncalibrated gyro reports (See Ref. Manual 6.5.14)
| time_between_reports | Desired time between reports in microseconds. |

| void BNO08x::end_calibration | ( | ) |
Sends command to end calibration procedure.

| bool BNO08x::FRS_read_data | ( | uint16_t | record_ID, |
| uint8_t | start_location, | ||
| uint8_t | words_to_read ) |
Read meta data from BNO08x FRS (flash record system) given the record ID. Contains Q points and other info. (See Ref. Manual 5.1 & 6.3.7)
Note that Q points from the data sheet can be used as well, using the ones stored in flash is optional.
| record_ID | Which record ID/ sensor to request meta data from. |
| start_location | Start byte location. |
| words_to_read | Length of words to read. |


| bool BNO08x::FRS_read_request | ( | uint16_t | record_ID, |
| uint16_t | read_offset, | ||
| uint16_t | block_size ) |
Requests meta data from BNO08x FRS (flash record system) given the record ID. Contains Q points and other info. (See Ref. Manual 5.1 & 6.3.6)
Note that Q points from the data sheet can be used as well, using the ones stored in flash is optional.
| record_ID | Which record ID/ sensor to request meta data from. |
| start_location | Start byte location. |
| words_to_read | Length of words to read. |


| uint32_t BNO08x::FRS_read_word | ( | uint16_t | record_ID, |
| uint8_t | word_number ) |
Reads meta data word from BNO08x FRS (flash record system) given the record ID and word number. (See Ref. Manual 5.1 & 6.3.7)
Note that Q points from the data sheet can be used as well, using the ones stored in flash is optional.
| record_ID | Which record ID/ sensor to request meta data from. |
| word_number | Desired word to read. |


| void BNO08x::get_accel | ( | float & | x, |
| float & | y, | ||
| float & | z, | ||
| uint8_t & | accuracy ) |
Get full acceleration (total acceleration of device, units in m/s^2).
| x | Reference variable to save X axis acceleration. |
| y | Reference variable to save Y axis acceleration. |
| z | Reference variable to save Z axis acceleration. |
| accuracy | Reference variable to save reported acceleration accuracy. |

| uint8_t BNO08x::get_accel_accuracy | ( | ) |
Get accuracy of linear acceleration.
| float BNO08x::get_accel_X | ( | ) |
Get x axis acceleration (total acceleration of device, units in m/s^2).

| float BNO08x::get_accel_Y | ( | ) |
Get y axis acceleration (total acceleration of device, units in m/s^2).

| float BNO08x::get_accel_Z | ( | ) |
Get z axis acceleration (total acceleration of device, units in m/s^2).

| uint8_t BNO08x::get_activity_classifier | ( | ) |
Get the current activity classifier (Seee Ref. Manual 6.5.36)
| void BNO08x::get_gravity | ( | float & | x, |
| float & | y, | ||
| float & | z, | ||
| uint8_t & | accuracy ) |
Get full reported gravity vector, units in m/s^2.
| x | Reference variable to save X axis gravity. |
| y | Reference variable to save Y axis axis gravity. |
| z | Reference variable to save Z axis axis gravity. |
| accuracy | Reference variable to save reported gravity accuracy. |

| uint8_t BNO08x::get_gravity_accuracy | ( | ) |
Get the reported gravity accuracy.
| float BNO08x::get_gravity_X | ( | ) |
Get the reported x axis gravity.

| float BNO08x::get_gravity_Y | ( | ) |
Get the reported y axis gravity.

| float BNO08x::get_gravity_Z | ( | ) |
Get the reported z axis gravity.

| uint8_t BNO08x::get_gyro_accuracy | ( | ) |
Get calibrated gyro accuracy.
| void BNO08x::get_gyro_calibrated_velocity | ( | float & | x, |
| float & | y, | ||
| float & | z, | ||
| uint8_t & | accuracy ) |
Get full rotational velocity with drift compensation (units in Rad/s).
| x | Reference variable to save X axis angular velocity |
| y | Reference variable to save Y axis angular velocity |
| z | Reference variable to save Z axis angular velocity |
| accuracy | Reference variable to save reported gyro accuracy. |

| float BNO08x::get_gyro_calibrated_velocity_X | ( | ) |
Get calibrated gyro x axis angular velocity measurement.

| float BNO08x::get_gyro_calibrated_velocity_Y | ( | ) |
Get calibrated gyro y axis angular velocity measurement.

| float BNO08x::get_gyro_calibrated_velocity_Z | ( | ) |
Get calibrated gyro z axis angular velocity measurement.

| void BNO08x::get_gyro_velocity | ( | float & | x, |
| float & | y, | ||
| float & | z ) |
Full rotational velocity from gyro-integrated rotation vector (See Ref. Manual 6.5.44)
| x | Reference variable to save X axis angular velocity |
| y | Reference variable to save Y axis angular velocity |
| z | Reference variable to save Z axis angular velocity |

| float BNO08x::get_gyro_velocity_X | ( | ) |
Get x axis angular velocity from gyro-integrated rotation vector. (See Ref. Manual 6.5.44)

| float BNO08x::get_gyro_velocity_Y | ( | ) |
Get y axis angular velocity from gyro-integrated rotation vector. (See Ref. Manual 6.5.44)

| float BNO08x::get_gyro_velocity_Z | ( | ) |
Get z axis angular velocity from gyro-integrated rotation vector. (See Ref. Manual 6.5.44)

| void BNO08x::get_linear_accel | ( | float & | x, |
| float & | y, | ||
| float & | z, | ||
| uint8_t & | accuracy ) |
Get full linear acceleration (acceleration of the device minus gravity, units in m/s^2).
| x | Reference variable to save X axis acceleration. |
| y | Reference variable to save Y axis acceleration. |
| z | Reference variable to save Z axis acceleration. |
| accuracy | Reference variable to save reported linear acceleration accuracy. |

| uint8_t BNO08x::get_linear_accel_accuracy | ( | ) |
Get accuracy of linear acceleration.
| float BNO08x::get_linear_accel_X | ( | ) |
Get x axis linear acceleration (acceleration of device minus gravity, units in m/s^2)

| float BNO08x::get_linear_accel_Y | ( | ) |
Get y axis linear acceleration (acceleration of device minus gravity, units in m/s^2)

| float BNO08x::get_linear_accel_Z | ( | ) |
Get z axis linear acceleration (acceleration of device minus gravity, units in m/s^2)

| void BNO08x::get_magf | ( | float & | x, |
| float & | y, | ||
| float & | z, | ||
| uint8_t & | accuracy ) |
Get the full magnetic field vector.
| x | Reference variable to save reported x magnitude. |
| y | Reference variable to save reported y magnitude. |
| x | Reference variable to save reported z magnitude. |
| accuracy | Reference variable save reported accuracy. |

| uint8_t BNO08x::get_magf_accuracy | ( | ) |
Get accuracy of reported magnetic field vector.

| float BNO08x::get_magf_X | ( | ) |
Get X component of magnetic field vector.


| float BNO08x::get_magf_Y | ( | ) |
Get Y component of magnetic field vector.


| float BNO08x::get_magf_Z | ( | ) |
Get Z component of magnetic field vector.


| float BNO08x::get_pitch | ( | ) |
Get the reported rotation about y axis.


| float BNO08x::get_pitch_deg | ( | ) |
Get the reported rotation about y axis.

| int16_t BNO08x::get_Q1 | ( | uint16_t | record_ID | ) |
Gets Q1 point from BNO08x FRS (flash record system).
Note that Q points from the data sheet can be used as well, using the ones stored in flash is optional.
| record_ID | Which record ID/ sensor to get Q1 value for. |


| int16_t BNO08x::get_Q2 | ( | uint16_t | record_ID | ) |
Gets Q2 point from BNO08x FRS (flash record system).
Note that Q points from the data sheet can be used as well, using the ones stored in flash is optional.
| record_ID | Which record ID/ sensor to get Q2 value for. |

| int16_t BNO08x::get_Q3 | ( | uint16_t | record_ID | ) |
Gets Q3 point from BNO08x FRS (flash record system).
Note that Q points from the data sheet can be used as well, using the ones stored in flash is optional.
| record_ID | Which record ID/ sensor to get Q3 value for. |

| void BNO08x::get_quat | ( | float & | i, |
| float & | j, | ||
| float & | k, | ||
| float & | real, | ||
| float & | rad_accuracy, | ||
| uint8_t & | accuracy ) |
Get the full quaternion reading.
| i | Reference variable to save reported i component of quaternion. |
| j | Reference variable to save reported j component of quaternion. |
| k | Reference variable to save reported k component of quaternion. |
| real | Reference variable to save reported real component of quaternion. |
| rad_accuracy | Reference variable to save reported raw quaternion radian accuracy. |
| accuracy | Reference variable to save reported quaternion accuracy. |

| uint8_t BNO08x::get_quat_accuracy | ( | ) |
Get accuracy of reported quaternion.

| float BNO08x::get_quat_I | ( | ) |
Get I component of reported quaternion.


| float BNO08x::get_quat_J | ( | ) |
Get J component of reported quaternion.


| float BNO08x::get_quat_K | ( | ) |
Get K component of reported quaternion.


| float BNO08x::get_quat_radian_accuracy | ( | ) |
Get radian accuracy of reported quaternion.

| float BNO08x::get_quat_real | ( | ) |
Get real component of reported quaternion.


| float BNO08x::get_range | ( | uint16_t | record_ID | ) |
Gets range from BNO08x FRS (flash record system).
| record_ID | Which record ID/ sensor to get range value for. |

| int16_t BNO08x::get_raw_accel_X | ( | ) |
Get raw accelerometer x axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8)
| int16_t BNO08x::get_raw_accel_Y | ( | ) |
Get raw accelerometer y axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8)
| int16_t BNO08x::get_raw_accel_Z | ( | ) |
Get raw accelerometer z axis reading from physical accelerometer MEMs sensor (See Ref. Manual 6.5.8)
| int16_t BNO08x::get_raw_gyro_X | ( | ) |
Get raw gyroscope x axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12)
| int16_t BNO08x::get_raw_gyro_Y | ( | ) |
Get raw gyroscope y axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12)
| int16_t BNO08x::get_raw_gyro_Z | ( | ) |
Get raw gyroscope z axis reading from physical gyroscope MEMs sensor (See Ref. Manual 6.5.12)
| int16_t BNO08x::get_raw_magf_X | ( | ) |
Get raw magnetometer x axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15)
| int16_t BNO08x::get_raw_magf_Y | ( | ) |
Get raw magnetometer y axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15)
| int16_t BNO08x::get_raw_magf_Z | ( | ) |
Get raw magnetometer z axis reading from physical magnetometer sensor (See Ref. Manual 6.5.15)
| uint8_t BNO08x::get_reset_reason | ( | ) |
Requests product ID, prints the returned info over serial, and returns the reason for the most resent reset.


| float BNO08x::get_resolution | ( | uint16_t | record_ID | ) |
Gets resolution from BNO08x FRS (flash record system).
| record_ID | Which record ID/ sensor to get resolution value for. |

| float BNO08x::get_roll | ( | ) |
Get the reported rotation about x axis.


| float BNO08x::get_roll_deg | ( | ) |
Get the reported rotation about x axis.

| int8_t BNO08x::get_stability_classifier | ( | ) |
Get the current stability classifier (Seee Ref. Manual 6.5.31)
| uint16_t BNO08x::get_step_count | ( | ) |
Get the counted amount of steps.
| uint8_t BNO08x::get_tap_detector | ( | ) |
Get if tap has occured.
| uint32_t BNO08x::get_time_stamp | ( | ) |
Return timestamp of most recent report.
| void BNO08x::get_uncalibrated_gyro | ( | float & | x, |
| float & | y, | ||
| float & | z, | ||
| float & | b_x, | ||
| float & | b_y, | ||
| float & | b_z, | ||
| uint8_t & | accuracy ) |
Get full rotational velocity without drift compensation (units in Rad/s). An estimate of drift is given but not applied.
| x | Reference variable to save X axis angular velocity |
| y | Reference variable to save Y axis angular velocity |
| z | Reference variable to save Z axis angular velocity |
| b_x | Reference variable to save X axis drift estimate |
| b_y | Reference variable to save Y axis drift estimate |
| b_z | Reference variable to save Z axis drift estimate |
| accuracy | Reference variable to save reported gyro accuracy. |

| uint8_t BNO08x::get_uncalibrated_gyro_accuracy | ( | ) |
Get uncalibrated gyro accuracy.
| float BNO08x::get_uncalibrated_gyro_bias_X | ( | ) |
Get uncalibrated gyro x axis drift estimate.

| float BNO08x::get_uncalibrated_gyro_bias_Y | ( | ) |
Get uncalibrated gyro Y axis drift estimate.

| float BNO08x::get_uncalibrated_gyro_bias_Z | ( | ) |
Get uncalibrated gyro Z axis drift estimate.

| float BNO08x::get_uncalibrated_gyro_X | ( | ) |
Get uncalibrated gyro x axis angular velocity measurement.

| float BNO08x::get_uncalibrated_gyro_Y | ( | ) |
Get uncalibrated gyro Y axis angular velocity measurement.

| float BNO08x::get_uncalibrated_gyro_Z | ( | ) |
Get uncalibrated gyro Z axis angular velocity measurement.

| float BNO08x::get_yaw | ( | ) |
Get the reported rotation about z axis.


| float BNO08x::get_yaw_deg | ( | ) |
Get the reported rotation about z axis.

| bool BNO08x::hard_reset | ( | ) |
Hard resets BNO08x sensor.


|
staticprivate |
| bool BNO08x::initialize | ( | ) |
| bool BNO08x::mode_on | ( | ) |
Turns on/ brings BNO08x sensor out of sleep mode using executable channel.

| bool BNO08x::mode_sleep | ( | ) |
Puts BNO08x sensor into sleep/low power mode using executable channel.

|
private |
Parses received command report sent by BNO08x (See Ref. Manual 6.3.9)

|
private |
Sends packet to be parsed to meta data function call (frs_read_word()) through queue.
| packet | The packet containing the frs read report. |

|
private |
Parses received input report sent by BNO08x.
Unit responds with packet that contains the following:
packet->header[0:3]: First, a 4 byte header packet->body[0:4]: Then a 5 byte timestamp of microsecond ticks since reading was taken packet->body[5 + 0]: Then a feature report ID (0x01 for Accel, 0x05 for Rotation Vector, etc...) packet->body[5 + 1]: Sequence number (See Ref.Manual 6.5.8.2) packet->body[5 + 2]: Status packet->body[3]: Delay packet->body[4:5]: i/accel x/gyro x/etc packet->body[6:7]: j/accel y/gyro y/etc packet->body[8:9]: k/accel z/gyro z/etc packet->body[10:11]: real/gyro temp/etc packet->body[12:13]: Accuracy estimate

|
private |
Parses a packet received from bno08x, updating any data according to received reports.
| packet | The packet to be parsed. |


|
private |
Parses product id report and prints device info.
| packet | The packet containing product id report. |

|
private |
Prints the header of the passed SHTP packet to serial console with ESP_LOG statement.
| packet | The packet containing the header to be printed. |
|
private |
Prints the passed SHTP packet to serial console with ESP_LOG statement.
| packet | The packet to be printed. |
| float BNO08x::q_to_float | ( | int16_t | fixed_point_value, |
| uint8_t | q_point ) |
Converts a register value to a float using its associated Q point. (See https://en.wikipedia.org/wiki/Q_(number_format))
| q_point | Q point value associated with register. |
| fixed_point_value | The fixed point value to convert. |

|
private |
Queues a packet containing a command to calibrate the specified sensor.
| sensor_to_calibrate | The sensor to calibrate. |


|
private |
Queues a packet containing a command.
| command | The command to be sent. |
| commands | Command data array, pre-packed with exception of first 3 elements (command info) |


|
private |
Queues a packet containing a command with a request for sensor reports, reported periodically. (See Ref. Manual 6.5.4)
| report_ID | ID of sensor report being requested. |
| time_between_reports | Desired time between reports. |


|
private |
Queues a packet containing a command with a request for sensor reports, reported periodically. (See Ref. Manual 6.5.4)
| report_ID | ID of sensor report to be enabled. |
| time_between_reports | Desired time between reports in microseconds. |
| specific_config | Specific config word (used with personal activity classifier) |

|
private |
Queues an SHTP packet to be sent via SPI.

|
private |
Queues a packet containing the request product ID command.


|
private |
Queues a packet containing a command related to zeroing sensor's axes. (See Ref. Manual 6.4.4.1)
| command | Tare command to be sent. |
| axis | Specified axis (can be z or all at once) |
| rotation_vector_basis | Which rotation vector type to zero axes of, BNO08x saves seperate data for Rotation Vector, Gaming Rotation Vector, etc..) |


|
private |
Receives a SHTP packet via SPI and sends it to data_proc_task()

| void BNO08x::register_cb | ( | std::function< void()> | cb_fxn | ) |
Registers a callback to execute when new data from a report is received.
| cb_fxn | Pointer to the call-back function should be of void return type and void input parameters. |
| void BNO08x::request_calibration_status | ( | ) |
Requests ME calibration status from BNO08x (see Ref. Manual 6.4.7.2)


| bool BNO08x::run_full_calibration_routine | ( | ) |
Runs full calibration routine.
Enables game rotation vector and magnetometer, starts ME calibration process. Waits for accuracy of returned quaternions and magnetic field vectors to be high, then saves calibration data and returns.

| void BNO08x::save_calibration | ( | ) |
Sends command to save internal calibration data (See Ref. Manual 6.4.7).


| void BNO08x::save_tare | ( | ) |
Sends command to save tare into non-volatile memory of BNO08x (See Ref. Manual 6.4.4.2)

|
private |
Sends a queued SHTP packet via SPI.
| packet | The packet queued to be sent. |

| bool BNO08x::soft_reset | ( | ) |
Soft resets BNO08x sensor using executable channel.

|
private |
Task responsible for SPI transactions. Executed when HINT in is asserted by BNO08x.


|
staticprivate |
Static function used to launch spi task.
Used such that spi_task() can be non-static class member.
| arg | void pointer to BNO08x imu object |


| void BNO08x::tare_now | ( | uint8_t | axis_sel = TARE_AXIS_ALL, |
| uint8_t | rotation_vector_basis = TARE_ROTATION_VECTOR ) |
Sends command to tare an axis (See Ref. Manual 6.4.4.1)
| axis_sel | Which axes to zero, can be TARE_AXIS_ALL (all axes) or TARE_AXIS_Z (only yaw) |
| rotation_vector_basis | Which rotation vector type to zero axes can be TARE_ROTATION_VECTOR, TARE_GAME_ROTATION_VECTOR, TARE_GEOMAGNETIC_ROTATION_VECTOR, etc.. |

|
private |
Waits for a valid or invalid packet to be received or HOST_INT_TIMEOUT_MS to elapse.
If no reports are currently enabled the hint pin interrupt will be re-enabled by this function.

|
private |
Waits for data to be received over SPI, or HOST_INT_TIMEOUT_MS to elapse.
If no reports are currently enabled the hint pin interrupt will be re-enabled by this function. This function is for when the validity of packets is not a concern, it is for flushing packets we do not care about.

|
private |
Waits for a queued packet to be sent or HOST_INT_TIMEOUT_MS to elapse.
If no reports are currently enabled the hint pin interrupt will be re-enabled by this function.

|
private |
Raw acceleration readings (See SH-2 Ref. Manual 6.5.8)
|
private |
Raw linear acceleration (See SH-2 Ref. Manual 6.5.10)
|
staticconstexpr |
Acceleration Q point (See SH-2 Ref. Manual 6.5.9)
|
private |
Activity status reading (See SH-2 Ref. Manual 6.5.36)
|
private |
Confidence of read activities (See SH-2 Ref. Manual 6.5.36)
|
staticconstexpr |
Angular velocity Q point (See SH-2 Ref. Manual 6.5.44)
|
private |
SPI bus GPIO configuration settings.
|
staticconstexprprivate |
Calibrate accelerometer command used by queue_calibrate_command.
|
staticconstexprprivate |
Calibrate accelerometer, gyro, & magnetometer command used by queue_calibrate_command.
|
staticconstexprprivate |
Calibrate gyro command used by queue_calibrate_command.
|
staticconstexprprivate |
Calibrate magnetometer command used by queue_calibrate_command.
|
staticconstexprprivate |
Calibrate planar acceleration command used by queue_calibrate_command.
|
staticconstexprprivate |
Stop calibration command used by queue_calibrate_command.
|
private |
Calibration status of device (See SH-2 Ref. Manual 6.4.7.1 & 6.4.7.2)
|
private |
|
staticconstexprprivate |
Clear DCD & Reset command (See SH2 Ref. Manual 6.4)
|
staticconstexprprivate |
|
staticconstexprprivate |
Save DCD command (See SH2 Ref. Manual 6.4.7)
|
staticconstexprprivate |
Configure DCD periodic saving (See SH2 Ref. Manual 6.4)
|
staticconstexprprivate |
|
staticconstexprprivate |
Reinitialize sensor hub components See (SH2 Ref. Manual 6.4.5)
|
staticconstexprprivate |
Command and response to configure ME calibration (See SH2 Ref. Manual 6.4.7)
|
staticconstexprprivate |
Retrieve oscillator type command (See SH2 Ref. Manual 6.4)
|
staticconstexprprivate |
Command and response to tare command (See Sh2 Ref. Manual 6.4.4)
|
private |
data_proc_task() task handle
|
staticprivate |
default imu config settings
|
private |
Event group for indicating which reports are currently enabled.
|
staticconstexprprivate |
When set, accelerometer reports are active.
|
staticconstexprprivate |
When set, activity classifier reports are active.
|
staticconstexprprivate |
|
staticconstexprprivate |
When set, ARVR stabilized game rotation vector reports are active.
|
staticconstexprprivate |
When set, ARVR stabilized rotation vector reports are active.
|
staticconstexprprivate |
When set, game rotation vector reports are active.
|
staticconstexprprivate |
When set, gravity reports are active.
|
staticconstexprprivate |
When set, gyro reports are active.
|
staticconstexprprivate |
When set, gyro integrator rotation vector reports are active.
|
staticconstexprprivate |
When set, uncalibrated gyro reports are active.
|
staticconstexprprivate |
When set, linear accelerometer reports are active.
|
staticconstexprprivate |
When set, magnetometer reports are active.
|
staticconstexprprivate |
When set, raw accelerometer reports are active.
|
staticconstexprprivate |
When set, raw gyro reports are active.
|
staticconstexprprivate |
When set, raw magnetometer reports are active.
|
staticconstexprprivate |
When set, rotation vector reports are active.
|
staticconstexprprivate |
When set, stability classifier reports are active.
|
staticconstexprprivate |
When set, step counter reports are active.
|
staticconstexprprivate |
When set, tap detector reports are active.
|
private |
Event group for indicating when bno08x hint pin has triggered and when new data has been processed. Used by calls to sending or receiving functions.
|
staticconstexprprivate |
When this bit is set it indicates a receive procedure has completed.
|
staticconstexprprivate |
When this bit is set, it indicates an invalid packet has been received.
|
staticconstexprprivate |
When this bit is set, it indicates a valid packet has been received and processed.
|
staticconstexprprivate |
When this bit is set, it indicates a queued packet has been sent.
|
staticconstexpr |
Accelerometer record ID, to be passed in metadata functions like get_Q1()
|
staticconstexpr |
Calirated gyroscope record ID, to be passed in metadata functions like get_Q1()
|
staticconstexpr |
Calibrated magnetometer record ID, to be passed in metadata functions like get_Q1()
|
staticconstexpr |
Rotation vector record ID, to be passed in metadata functions like get_Q1()
|
private |
Gravity reading in m/s^2 (See SH-2 Ref. Manual 6.5.11)
|
staticconstexpr |
Gravity Q point (See SH-2 Ref. Manual 6.5.11)
|
private |
|
private |
|
private |
|
private |
Raw gyro reading (See SH-2 Ref. Manual 6.5.13)
|
staticconstexpr |
Gyro Q point (See SH-2 Ref. Manual 6.5.13)
|
staticconstexprprivate |
Max wait between HINT being asserted by BNO08x before transaction is considered failed (in miliseconds)
|
private |
IMU configuration settings.
|
private |
SPI slave device settings.
|
staticprivate |
true of the isr service has been installed, only has to be done once regardless of how many devices are used
|
staticconstexpr |
Linear acceleration Q point (See SH-2 Ref. Manual 6.5.10)
|
private |
Calibrated magnetic field reading in uTesla (See SH-2 Ref. Manual 6.5.16)
|
staticconstexpr |
Magnetometer Q point (See SH-2 Ref. Manual 6.5.16)
|
staticconstexprprivate |
max length of metadata used in frs read operations
|
private |
|
private |
|
private |
Raw accelerometer readings from MEMS sensor (See SH2 Ref. Manual 6.5.8)
|
private |
|
private |
|
private |
Raw gyro readings from MEMS sensor (See SH-2 Ref. Manual 6.5.12)
|
private |
|
private |
|
private |
Raw magnetometer (compass) readings from MEMS sensor (See SH-2 Ref. Manual 6.5.15)
|
private |
First 9 bytes of meta data returned from FRS read operation (we don't really need the rest) (See Ref. Manual 5.1)
|
private |
Raw quaternion reading (See SH-2 Ref. Manual 6.5.44)
|
private |
Queue used to send packet body from data_proc_task to frs read functions.
|
private |
Queue used to send reset reason from product id report to reset_reason() function.
|
private |
Packet queue used to send data received from bno08x from spi_task to data_proc_task.
|
private |
Packet queue used to send data to be sent over SPI from sending functions to spi_task.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Raw gyro angular velocity reading (See SH-2 Ref. Manual 6.5.44)
|
staticconstexpr |
Rotation vector accuracy estimate Q point (See SH-2 Ref. Manual 6.5.18)
|
staticconstexpr |
Rotation vector Q point (See SH-2 Ref. Manual 6.5.18)
|
staticconstexprprivate |
length buffer containing data received over spi
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.9.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.43.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.42.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.19.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.20.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.11.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.44.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.13.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.10.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.16.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.36.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.8.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.12.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.15.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.18.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.31.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.29.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.27.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.14.
|
staticconstexprprivate |
See SH2 Ref. Manual 7.2.1.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.3.8.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.3.9.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.3.6.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.3.7.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.3.1.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.3.2.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.5.4.
|
private |
SPI device handle.
|
private |
spi_task() handle
|
private |
SPI transaction handle.
|
private |
Stability status reading (See SH-2 Ref. Manual 6.5.31)
|
private |
Step counter reading (See SH-2 Ref. Manual 6.5.29)
|
staticconstexprprivate |
Class tag used for serial print statements.
|
private |
Tap detector reading (See SH-2 Ref. Manual 6.5.27)
|
staticconstexpr |
Tare ARVR stabilized game rotation vector.
|
staticconstexpr |
Tare ARVR stabilized rotation vector.
|
staticconstexpr |
Tare all axes (used with tare now command)
|
staticconstexpr |
Tar yaw axis only (used with tare now command)
|
staticconstexpr |
Tare game rotation vector.
|
staticconstexpr |
tare geomagnetic rotation vector
|
staticconstexpr |
Tare gyro integrated rotation vector.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.4.4.1.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.4.4.2.
|
staticconstexpr |
Tare rotation vector.
|
staticconstexprprivate |
See SH2 Ref. Manual 6.4.4.3.
|
private |
Report timestamp (see datasheet 1.3.5.3)
|
private |
Uncalibrated gyro reading (See SH-2 Ref. Manual 6.5.14)