The library needs to be tested once we get the IMU
BNO080Constants.h@1:aac28ffd63ed, 2018-12-29 (annotated)
- Committer:
- Jamie Smith
- Date:
- Sat Dec 29 03:31:00 2018 -0800
- Revision:
- 1:aac28ffd63ed
- Child:
- 3:197ad972fb7c
Update from latest upstream, add missing headers
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jamie Smith |
1:aac28ffd63ed | 1 | // |
Jamie Smith |
1:aac28ffd63ed | 2 | // Constants used in communication with the BNO080 |
Jamie Smith |
1:aac28ffd63ed | 3 | // |
Jamie Smith |
1:aac28ffd63ed | 4 | |
Jamie Smith |
1:aac28ffd63ed | 5 | #ifndef HAMSTER_BNO080CONSTANTS_H |
Jamie Smith |
1:aac28ffd63ed | 6 | #define HAMSTER_BNO080CONSTANTS_H |
Jamie Smith |
1:aac28ffd63ed | 7 | |
Jamie Smith |
1:aac28ffd63ed | 8 | |
Jamie Smith |
1:aac28ffd63ed | 9 | //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
Jamie Smith |
1:aac28ffd63ed | 10 | |
Jamie Smith |
1:aac28ffd63ed | 11 | //Registers |
Jamie Smith |
1:aac28ffd63ed | 12 | #define CHANNEL_COMMAND 0 |
Jamie Smith |
1:aac28ffd63ed | 13 | #define CHANNEL_EXECUTABLE 1 |
Jamie Smith |
1:aac28ffd63ed | 14 | #define CHANNEL_CONTROL 2 |
Jamie Smith |
1:aac28ffd63ed | 15 | #define CHANNEL_REPORTS 3 |
Jamie Smith |
1:aac28ffd63ed | 16 | #define CHANNEL_WAKE_REPORTS 4 |
Jamie Smith |
1:aac28ffd63ed | 17 | #define CHANNEL_GYRO 5 |
Jamie Smith |
1:aac28ffd63ed | 18 | |
Jamie Smith |
1:aac28ffd63ed | 19 | // Report IDs on the command channel. |
Jamie Smith |
1:aac28ffd63ed | 20 | // Unlike the other constants, these come from the Sensor Hub Transport Protocol datasheet, section 5.1 |
Jamie Smith |
1:aac28ffd63ed | 21 | #define COMMAND_REPORTID_ADVERTISEMENT 0x0 |
Jamie Smith |
1:aac28ffd63ed | 22 | #define COMMAND_REPORTID_ERRORLIST 0x1 |
Jamie Smith |
1:aac28ffd63ed | 23 | |
Jamie Smith |
1:aac28ffd63ed | 24 | //All the ways we can configure or talk to the BNO080, figure 34, page 36 reference manual |
Jamie Smith |
1:aac28ffd63ed | 25 | //These are used for low level communication with the sensor, on channel 2 |
Jamie Smith |
1:aac28ffd63ed | 26 | #define SHTP_REPORT_COMMAND_RESPONSE 0xF1 |
Jamie Smith |
1:aac28ffd63ed | 27 | #define SHTP_REPORT_COMMAND_REQUEST 0xF2 |
Jamie Smith |
1:aac28ffd63ed | 28 | #define SHTP_REPORT_FRS_READ_RESPONSE 0xF3 |
Jamie Smith |
1:aac28ffd63ed | 29 | #define SHTP_REPORT_FRS_READ_REQUEST 0xF4 |
Jamie Smith |
1:aac28ffd63ed | 30 | #define SHTP_REPORT_PRODUCT_ID_RESPONSE 0xF8 |
Jamie Smith |
1:aac28ffd63ed | 31 | #define SHTP_REPORT_PRODUCT_ID_REQUEST 0xF9 |
Jamie Smith |
1:aac28ffd63ed | 32 | #define SHTP_REPORT_BASE_TIMESTAMP 0xFB |
Jamie Smith |
1:aac28ffd63ed | 33 | #define SHTP_REPORT_SET_FEATURE_COMMAND 0xFD |
Jamie Smith |
1:aac28ffd63ed | 34 | #define SHTP_REPORT_GET_FEATURE_RESPONSE 0xFC |
Jamie Smith |
1:aac28ffd63ed | 35 | |
Jamie Smith |
1:aac28ffd63ed | 36 | //All the different sensors and features we can get reports from |
Jamie Smith |
1:aac28ffd63ed | 37 | //These are used when enabling a given sensor |
Jamie Smith |
1:aac28ffd63ed | 38 | #define SENSOR_REPORTID_TIMESTAMP_REBASE 0xFA |
Jamie Smith |
1:aac28ffd63ed | 39 | #define SENSOR_REPORTID_ACCELEROMETER 0x01 |
Jamie Smith |
1:aac28ffd63ed | 40 | #define SENSOR_REPORTID_GYROSCOPE_CALIBRATED 0x02 |
Jamie Smith |
1:aac28ffd63ed | 41 | #define SENSOR_REPORTID_MAGNETIC_FIELD_CALIBRATED 0x03 |
Jamie Smith |
1:aac28ffd63ed | 42 | #define SENSOR_REPORTID_LINEAR_ACCELERATION 0x04 |
Jamie Smith |
1:aac28ffd63ed | 43 | #define SENSOR_REPORTID_ROTATION_VECTOR 0x05 |
Jamie Smith |
1:aac28ffd63ed | 44 | #define SENSOR_REPORTID_GRAVITY 0x06 |
Jamie Smith |
1:aac28ffd63ed | 45 | #define SENSOR_REPORTID_GAME_ROTATION_VECTOR 0x08 |
Jamie Smith |
1:aac28ffd63ed | 46 | #define SENSOR_REPORTID_GEOMAGNETIC_ROTATION_VECTOR 0x09 |
Jamie Smith |
1:aac28ffd63ed | 47 | #define SENSOR_REPORTID_MAGNETIC_FIELD_UNCALIBRATED 0x0F |
Jamie Smith |
1:aac28ffd63ed | 48 | #define SENSOR_REPORTID_TAP_DETECTOR 0x10 |
Jamie Smith |
1:aac28ffd63ed | 49 | #define SENSOR_REPORTID_STEP_COUNTER 0x11 |
Jamie Smith |
1:aac28ffd63ed | 50 | #define SENSOR_REPORTID_SIGNIFICANT_MOTION 0x12 |
Jamie Smith |
1:aac28ffd63ed | 51 | #define SENSOR_REPORTID_STABILITY_CLASSIFIER 0x13 |
Jamie Smith |
1:aac28ffd63ed | 52 | #define SENSOR_REPORTID_STEP_DETECTOR 0x18 |
Jamie Smith |
1:aac28ffd63ed | 53 | #define SENSOR_REPORTID_SHAKE_DETECTOR 0x19 |
Jamie Smith |
1:aac28ffd63ed | 54 | |
Jamie Smith |
1:aac28ffd63ed | 55 | // sensor report ID with the largest numeric value |
Jamie Smith |
1:aac28ffd63ed | 56 | #define MAX_SENSOR_REPORTID SENSOR_REPORTID_SHAKE_DETECTOR |
Jamie Smith |
1:aac28ffd63ed | 57 | |
Jamie Smith |
1:aac28ffd63ed | 58 | // Q points for various sensor data elements |
Jamie Smith |
1:aac28ffd63ed | 59 | #define ACCELEROMETER_Q_POINT 8 // for accelerometer based data |
Jamie Smith |
1:aac28ffd63ed | 60 | #define GYRO_Q_POINT 9 // for gyroscope data |
Jamie Smith |
1:aac28ffd63ed | 61 | #define MAGNETOMETER_Q_POINT 4 // for magnetometer data |
Jamie Smith |
1:aac28ffd63ed | 62 | #define ROTATION_Q_POINT 14 // for rotation data |
Jamie Smith |
1:aac28ffd63ed | 63 | #define ROTATION_ACCURACY_Q_POINT 12 // for rotation accuracy data |
Jamie Smith |
1:aac28ffd63ed | 64 | #define POWER_Q_POINT 10 // for power information in the metadata |
Jamie Smith |
1:aac28ffd63ed | 65 | #define ORIENTATION_QUAT_Q_POINT 14 // for the set orientation command |
Jamie Smith |
1:aac28ffd63ed | 66 | |
Jamie Smith |
1:aac28ffd63ed | 67 | // Report IDs on the Executable channel |
Jamie Smith |
1:aac28ffd63ed | 68 | // See Figure 1-27 in the BNO080 datasheet |
Jamie Smith |
1:aac28ffd63ed | 69 | #define EXECUTABLE_REPORTID_RESET 0x1 |
Jamie Smith |
1:aac28ffd63ed | 70 | |
Jamie Smith |
1:aac28ffd63ed | 71 | //Record IDs from SH-2 figure 28 |
Jamie Smith |
1:aac28ffd63ed | 72 | //These are used to read and set various configuration options |
Jamie Smith |
1:aac28ffd63ed | 73 | #define FRS_RECORDID_SERIAL_NUMBER 0x4B4B |
Jamie Smith |
1:aac28ffd63ed | 74 | |
Jamie Smith |
1:aac28ffd63ed | 75 | //Record IDs from SH-2 figure 29 |
Jamie Smith |
1:aac28ffd63ed | 76 | //These are used to read the metadata for each sensor type |
Jamie Smith |
1:aac28ffd63ed | 77 | #define FRS_RECORDID_ACCELEROMETER 0xE302 |
Jamie Smith |
1:aac28ffd63ed | 78 | #define FRS_RECORDID_GYROSCOPE_CALIBRATED 0xE306 |
Jamie Smith |
1:aac28ffd63ed | 79 | #define FRS_RECORDID_MAGNETIC_FIELD_CALIBRATED 0xE309 |
Jamie Smith |
1:aac28ffd63ed | 80 | #define FRS_RECORDID_ROTATION_VECTOR 0xE30B |
Jamie Smith |
1:aac28ffd63ed | 81 | |
Jamie Smith |
1:aac28ffd63ed | 82 | //Command IDs from section 6.4, page 42 |
Jamie Smith |
1:aac28ffd63ed | 83 | //These are used to calibrate, initialize, set orientation, tare etc the sensor |
Jamie Smith |
1:aac28ffd63ed | 84 | #define COMMAND_ERRORS 1 |
Jamie Smith |
1:aac28ffd63ed | 85 | #define COMMAND_COUNTER 2 |
Jamie Smith |
1:aac28ffd63ed | 86 | #define COMMAND_TARE 3 |
Jamie Smith |
1:aac28ffd63ed | 87 | #define COMMAND_INITIALIZE 4 |
Jamie Smith |
1:aac28ffd63ed | 88 | #define COMMAND_SAVE_DCD 6 |
Jamie Smith |
1:aac28ffd63ed | 89 | #define COMMAND_ME_CALIBRATE 7 |
Jamie Smith |
1:aac28ffd63ed | 90 | #define COMMAND_DCD_PERIOD_SAVE 9 |
Jamie Smith |
1:aac28ffd63ed | 91 | #define COMMAND_OSCILLATOR 10 |
Jamie Smith |
1:aac28ffd63ed | 92 | #define COMMAND_CLEAR_DCD 11 |
Jamie Smith |
1:aac28ffd63ed | 93 | #define COMMAND_UNSOLICITED_INITIALIZE 0x84 |
Jamie Smith |
1:aac28ffd63ed | 94 | |
Jamie Smith |
1:aac28ffd63ed | 95 | #define CALIBRATE_ACCEL 0 |
Jamie Smith |
1:aac28ffd63ed | 96 | #define CALIBRATE_GYRO 1 |
Jamie Smith |
1:aac28ffd63ed | 97 | #define CALIBRATE_MAG 2 |
Jamie Smith |
1:aac28ffd63ed | 98 | #define CALIBRATE_PLANAR_ACCEL 3 |
Jamie Smith |
1:aac28ffd63ed | 99 | #define CALIBRATE_ACCEL_GYRO_MAG 4 |
Jamie Smith |
1:aac28ffd63ed | 100 | #define CALIBRATE_STOP 5 |
Jamie Smith |
1:aac28ffd63ed | 101 | |
Jamie Smith |
1:aac28ffd63ed | 102 | // timing for reset |
Jamie Smith |
1:aac28ffd63ed | 103 | // per my measurement, reset takes about 90ms, so let's take twice that |
Jamie Smith |
1:aac28ffd63ed | 104 | #define BNO080_RESET_TIMEOUT .18f |
Jamie Smith |
1:aac28ffd63ed | 105 | |
Jamie Smith |
1:aac28ffd63ed | 106 | #endif //HAMSTER_BNO080CONSTANTS_H |