bno055-imu-node
Version:
Interact with a BNO055 IMU from your Node.js app
222 lines (221 loc) • 11.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BNO055_ID = 0xA0;
exports.BNO055_CONFIG_MODE_WAIT = 20;
exports.BNO055_MODE_SWITCH_WAIT = 8;
var Axis;
(function (Axis) {
Axis[Axis["X"] = 0] = "X";
Axis[Axis["Y"] = 1] = "Y";
Axis[Axis["Z"] = 2] = "Z";
Axis[Axis["Invalid"] = 3] = "Invalid";
})(Axis = exports.Axis || (exports.Axis = {}));
var AxisSign;
(function (AxisSign) {
AxisSign[AxisSign["Positive"] = 0] = "Positive";
AxisSign[AxisSign["Negative"] = 1] = "Negative";
})(AxisSign = exports.AxisSign || (exports.AxisSign = {}));
var CalibrationStatus;
(function (CalibrationStatus) {
CalibrationStatus[CalibrationStatus["NotCalibrated"] = 0] = "NotCalibrated";
CalibrationStatus[CalibrationStatus["FullyCalibrated"] = 3] = "FullyCalibrated";
})(CalibrationStatus = exports.CalibrationStatus || (exports.CalibrationStatus = {}));
var DeviceAddress;
(function (DeviceAddress) {
DeviceAddress[DeviceAddress["A"] = 40] = "A";
DeviceAddress[DeviceAddress["B"] = 41] = "B";
})(DeviceAddress = exports.DeviceAddress || (exports.DeviceAddress = {}));
var PowerLevel;
(function (PowerLevel) {
PowerLevel[PowerLevel["Normal"] = 0] = "Normal";
PowerLevel[PowerLevel["Low"] = 1] = "Low";
PowerLevel[PowerLevel["Suspend"] = 2] = "Suspend";
})(PowerLevel = exports.PowerLevel || (exports.PowerLevel = {}));
var SystemError;
(function (SystemError) {
SystemError[SystemError["None"] = 0] = "None";
SystemError[SystemError["PeripheralInitialization"] = 1] = "PeripheralInitialization";
SystemError[SystemError["SystemInitialization"] = 2] = "SystemInitialization";
SystemError[SystemError["SelfTestResultFailed"] = 3] = "SelfTestResultFailed";
SystemError[SystemError["RegisterMapValueOutOfRange"] = 4] = "RegisterMapValueOutOfRange";
SystemError[SystemError["RegisterMapAddressOutOfRange"] = 5] = "RegisterMapAddressOutOfRange";
SystemError[SystemError["RegisterMapWrite"] = 6] = "RegisterMapWrite";
SystemError[SystemError["BnoLowPowerModeNotAvailableForSelectedOperationMode"] = 7] = "BnoLowPowerModeNotAvailableForSelectedOperationMode";
SystemError[SystemError["AccelerometerPowerModeNotAvailable"] = 8] = "AccelerometerPowerModeNotAvailable";
SystemError[SystemError["FusionAlgorithmConfiguration"] = 9] = "FusionAlgorithmConfiguration";
SystemError[SystemError["SensorConfiguration"] = 10] = "SensorConfiguration";
})(SystemError = exports.SystemError || (exports.SystemError = {}));
var SystemStatus;
(function (SystemStatus) {
SystemStatus[SystemStatus["Idle"] = 0] = "Idle";
SystemStatus[SystemStatus["Error"] = 1] = "Error";
SystemStatus[SystemStatus["InitializingPeripherals"] = 2] = "InitializingPeripherals";
SystemStatus[SystemStatus["Initialization"] = 3] = "Initialization";
SystemStatus[SystemStatus["ExecutingSelftest"] = 4] = "ExecutingSelftest";
SystemStatus[SystemStatus["RunningWithFusionAlgorithm"] = 5] = "RunningWithFusionAlgorithm";
SystemStatus[SystemStatus["RunningWithoutFusionAlgorithm"] = 6] = "RunningWithoutFusionAlgorithm";
})(SystemStatus = exports.SystemStatus || (exports.SystemStatus = {}));
var EulerUnitScale;
(function (EulerUnitScale) {
EulerUnitScale[EulerUnitScale["Degs"] = 16] = "Degs";
EulerUnitScale[EulerUnitScale["Rads"] = 900] = "Rads";
})(EulerUnitScale = exports.EulerUnitScale || (exports.EulerUnitScale = {}));
var TempUnitScale;
(function (TempUnitScale) {
TempUnitScale[TempUnitScale["C"] = 1] = "C";
TempUnitScale[TempUnitScale["F"] = 0.5] = "F";
})(TempUnitScale = exports.TempUnitScale || (exports.TempUnitScale = {}));
/** Operation modes */
var OpMode;
(function (OpMode) {
OpMode[OpMode["Config"] = 0] = "Config";
/** Non-fusion */
OpMode[OpMode["AccelOnly"] = 1] = "AccelOnly";
OpMode[OpMode["MagOnly"] = 2] = "MagOnly";
OpMode[OpMode["GyroOnly"] = 3] = "GyroOnly";
OpMode[OpMode["AccelMag"] = 4] = "AccelMag";
OpMode[OpMode["AccelGyro"] = 5] = "AccelGyro";
OpMode[OpMode["MagGyro"] = 6] = "MagGyro";
OpMode[OpMode["AccelMagGyro"] = 7] = "AccelMagGyro";
/** Fusion */
OpMode[OpMode["Imu"] = 8] = "Imu";
OpMode[OpMode["Compass"] = 9] = "Compass";
OpMode[OpMode["ImuMagForGyro"] = 10] = "ImuMagForGyro";
OpMode[OpMode["FullFmcOff"] = 11] = "FullFmcOff";
OpMode[OpMode["FullFusion"] = 12] = "FullFusion";
})(OpMode = exports.OpMode || (exports.OpMode = {}));
/** Page 0 Registers */
var Reg;
(function (Reg) {
/* Page ID register definition */
Reg[Reg["PAGE_ID"] = 7] = "PAGE_ID";
/* Components IDs */
Reg[Reg["DEVICE_ID"] = 0] = "DEVICE_ID";
Reg[Reg["ACCEL_ID"] = 1] = "ACCEL_ID";
Reg[Reg["MAG_ID"] = 2] = "MAG_ID";
Reg[Reg["GYRO_ID"] = 3] = "GYRO_ID";
Reg[Reg["SW_REV_ID_LSB"] = 4] = "SW_REV_ID_LSB";
Reg[Reg["SW_REV_ID_MSB"] = 5] = "SW_REV_ID_MSB";
Reg[Reg["BOOTLOADER_REV_ID"] = 6] = "BOOTLOADER_REV_ID";
/* Accel data */
Reg[Reg["ACCEL_DATA_X_LSB"] = 8] = "ACCEL_DATA_X_LSB";
Reg[Reg["ACCEL_DATA_X_MSB"] = 9] = "ACCEL_DATA_X_MSB";
Reg[Reg["ACCEL_DATA_Y_LSB"] = 10] = "ACCEL_DATA_Y_LSB";
Reg[Reg["ACCEL_DATA_Y_MSB"] = 11] = "ACCEL_DATA_Y_MSB";
Reg[Reg["ACCEL_DATA_Z_LSB"] = 12] = "ACCEL_DATA_Z_LSB";
Reg[Reg["ACCEL_DATA_Z_MSB"] = 13] = "ACCEL_DATA_Z_MSB";
/* Magnetometer data */
Reg[Reg["MAG_DATA_X_LSB"] = 14] = "MAG_DATA_X_LSB";
Reg[Reg["MAG_DATA_X_MSB"] = 15] = "MAG_DATA_X_MSB";
Reg[Reg["MAG_DATA_Y_LSB"] = 16] = "MAG_DATA_Y_LSB";
Reg[Reg["MAG_DATA_Y_MSB"] = 17] = "MAG_DATA_Y_MSB";
Reg[Reg["MAG_DATA_Z_LSB"] = 18] = "MAG_DATA_Z_LSB";
Reg[Reg["MAG_DATA_Z_MSB"] = 19] = "MAG_DATA_Z_MSB";
/* Gyro data */
Reg[Reg["GYRO_DATA_X_LSB"] = 20] = "GYRO_DATA_X_LSB";
Reg[Reg["GYRO_DATA_X_MSB"] = 21] = "GYRO_DATA_X_MSB";
Reg[Reg["GYRO_DATA_Y_LSB"] = 22] = "GYRO_DATA_Y_LSB";
Reg[Reg["GYRO_DATA_Y_MSB"] = 23] = "GYRO_DATA_Y_MSB";
Reg[Reg["GYRO_DATA_Z_LSB"] = 24] = "GYRO_DATA_Z_LSB";
Reg[Reg["GYRO_DATA_Z_MSB"] = 25] = "GYRO_DATA_Z_MSB";
/* Euler data */
Reg[Reg["EULER_H_LSB"] = 26] = "EULER_H_LSB";
Reg[Reg["EULER_H_MSB"] = 27] = "EULER_H_MSB";
Reg[Reg["EULER_R_LSB"] = 28] = "EULER_R_LSB";
Reg[Reg["EULER_R_MSB"] = 29] = "EULER_R_MSB";
Reg[Reg["EULER_P_LSB"] = 30] = "EULER_P_LSB";
Reg[Reg["EULER_P_MSB"] = 31] = "EULER_P_MSB";
/* Quaternion data */
Reg[Reg["QUATERNION_DATA_W_LSB"] = 32] = "QUATERNION_DATA_W_LSB";
Reg[Reg["QUATERNION_DATA_W_MSB"] = 33] = "QUATERNION_DATA_W_MSB";
Reg[Reg["QUATERNION_DATA_X_LSB"] = 34] = "QUATERNION_DATA_X_LSB";
Reg[Reg["QUATERNION_DATA_X_MSB"] = 35] = "QUATERNION_DATA_X_MSB";
Reg[Reg["QUATERNION_DATA_Y_LSB"] = 36] = "QUATERNION_DATA_Y_LSB";
Reg[Reg["QUATERNION_DATA_Y_MSB"] = 37] = "QUATERNION_DATA_Y_MSB";
Reg[Reg["QUATERNION_DATA_Z_LSB"] = 38] = "QUATERNION_DATA_Z_LSB";
Reg[Reg["QUATERNION_DATA_Z_MSB"] = 39] = "QUATERNION_DATA_Z_MSB";
/* Linear acceleration data */
Reg[Reg["LINEAR_ACCEL_DATA_X_LSB"] = 40] = "LINEAR_ACCEL_DATA_X_LSB";
Reg[Reg["LINEAR_ACCEL_DATA_X_MSB"] = 41] = "LINEAR_ACCEL_DATA_X_MSB";
Reg[Reg["LINEAR_ACCEL_DATA_Y_LSB"] = 42] = "LINEAR_ACCEL_DATA_Y_LSB";
Reg[Reg["LINEAR_ACCEL_DATA_Y_MSB"] = 43] = "LINEAR_ACCEL_DATA_Y_MSB";
Reg[Reg["LINEAR_ACCEL_DATA_Z_LSB"] = 44] = "LINEAR_ACCEL_DATA_Z_LSB";
Reg[Reg["LINEAR_ACCEL_DATA_Z_MSB"] = 45] = "LINEAR_ACCEL_DATA_Z_MSB";
/* Gravity data */
Reg[Reg["GRAVITY_DATA_X_LSB"] = 46] = "GRAVITY_DATA_X_LSB";
Reg[Reg["GRAVITY_DATA_X_MSB"] = 47] = "GRAVITY_DATA_X_MSB";
Reg[Reg["GRAVITY_DATA_Y_LSB"] = 48] = "GRAVITY_DATA_Y_LSB";
Reg[Reg["GRAVITY_DATA_Y_MSB"] = 49] = "GRAVITY_DATA_Y_MSB";
Reg[Reg["GRAVITY_DATA_Z_LSB"] = 50] = "GRAVITY_DATA_Z_LSB";
Reg[Reg["GRAVITY_DATA_Z_MSB"] = 51] = "GRAVITY_DATA_Z_MSB";
/* Temperature data */
Reg[Reg["TEMP"] = 52] = "TEMP";
/* Status registers */
Reg[Reg["CALIB_STAT"] = 53] = "CALIB_STAT";
Reg[Reg["SELFTEST_RESULT"] = 54] = "SELFTEST_RESULT";
Reg[Reg["INTR_STAT"] = 55] = "INTR_STAT";
Reg[Reg["SYS_CLK_STAT"] = 56] = "SYS_CLK_STAT";
Reg[Reg["SYS_STAT"] = 57] = "SYS_STAT";
Reg[Reg["SYS_ERR"] = 58] = "SYS_ERR";
/* Unit selectio */
Reg[Reg["UNIT_SEL"] = 59] = "UNIT_SEL";
Reg[Reg["DATA_SELECT"] = 60] = "DATA_SELECT";
/* Modes */
Reg[Reg["OPR_MODE"] = 61] = "OPR_MODE";
Reg[Reg["PWR_MODE"] = 62] = "PWR_MODE";
Reg[Reg["SYS_TRIGGER"] = 63] = "SYS_TRIGGER";
Reg[Reg["TEMP_SOURCE"] = 64] = "TEMP_SOURCE";
/* Axis remap */
Reg[Reg["AXIS_MAP_CONFIG"] = 65] = "AXIS_MAP_CONFIG";
Reg[Reg["AXIS_MAP_SIGN"] = 66] = "AXIS_MAP_SIGN";
/* Accelerometer offset */
Reg[Reg["ACCEL_OFFSET_X_LSB"] = 85] = "ACCEL_OFFSET_X_LSB";
Reg[Reg["ACCEL_OFFSET_X_MSB"] = 86] = "ACCEL_OFFSET_X_MSB";
Reg[Reg["ACCEL_OFFSET_Y_LSB"] = 87] = "ACCEL_OFFSET_Y_LSB";
Reg[Reg["ACCEL_OFFSET_Y_MSB"] = 88] = "ACCEL_OFFSET_Y_MSB";
Reg[Reg["ACCEL_OFFSET_Z_LSB"] = 89] = "ACCEL_OFFSET_Z_LSB";
Reg[Reg["ACCEL_OFFSET_Z_MSB"] = 90] = "ACCEL_OFFSET_Z_MSB";
/* Magnetometer offsets */
Reg[Reg["MAG_OFFSET_X_LSB"] = 91] = "MAG_OFFSET_X_LSB";
Reg[Reg["MAG_OFFSET_X_MSB"] = 92] = "MAG_OFFSET_X_MSB";
Reg[Reg["MAG_OFFSET_Y_LSB"] = 93] = "MAG_OFFSET_Y_LSB";
Reg[Reg["MAG_OFFSET_Y_MSB"] = 94] = "MAG_OFFSET_Y_MSB";
Reg[Reg["MAG_OFFSET_Z_LSB"] = 95] = "MAG_OFFSET_Z_LSB";
Reg[Reg["MAG_OFFSET_Z_MSB"] = 96] = "MAG_OFFSET_Z_MSB";
/* Gyroscope offsets */
Reg[Reg["GYRO_OFFSET_X_LSB"] = 97] = "GYRO_OFFSET_X_LSB";
Reg[Reg["GYRO_OFFSET_X_MSB"] = 98] = "GYRO_OFFSET_X_MSB";
Reg[Reg["GYRO_OFFSET_Y_LSB"] = 99] = "GYRO_OFFSET_Y_LSB";
Reg[Reg["GYRO_OFFSET_Y_MSB"] = 100] = "GYRO_OFFSET_Y_MSB";
Reg[Reg["GYRO_OFFSET_Z_LSB"] = 101] = "GYRO_OFFSET_Z_LSB";
Reg[Reg["GYRO_OFFSET_Z_MSB"] = 102] = "GYRO_OFFSET_Z_MSB";
/* Radii */
Reg[Reg["ACCEL_RADIUS_LSB"] = 103] = "ACCEL_RADIUS_LSB";
Reg[Reg["ACCEL_RADIUS_MSB"] = 104] = "ACCEL_RADIUS_MSB";
Reg[Reg["MAG_RADIUS_LSB"] = 105] = "MAG_RADIUS_LSB";
Reg[Reg["MAG_RADIUS_MSB"] = 106] = "MAG_RADIUS_MSB";
})(Reg = exports.Reg || (exports.Reg = {}));
/** Remap settings */
var RemapRegister;
(function (RemapRegister) {
RemapRegister[RemapRegister["REMAP_CONFIG_P0"] = 33] = "REMAP_CONFIG_P0";
RemapRegister[RemapRegister["REMAP_CONFIG_P1"] = 36] = "REMAP_CONFIG_P1";
RemapRegister[RemapRegister["REMAP_CONFIG_P2"] = 36] = "REMAP_CONFIG_P2";
RemapRegister[RemapRegister["REMAP_CONFIG_P3"] = 33] = "REMAP_CONFIG_P3";
RemapRegister[RemapRegister["REMAP_CONFIG_P4"] = 36] = "REMAP_CONFIG_P4";
RemapRegister[RemapRegister["REMAP_CONFIG_P5"] = 33] = "REMAP_CONFIG_P5";
RemapRegister[RemapRegister["REMAP_CONFIG_P6"] = 33] = "REMAP_CONFIG_P6";
RemapRegister[RemapRegister["REMAP_CONFIG_P7"] = 36] = "REMAP_CONFIG_P7";
})(RemapRegister = exports.RemapRegister || (exports.RemapRegister = {}));
/** Remap Signs */
var RemapSigns;
(function (RemapSigns) {
RemapSigns[RemapSigns["REMAP_SIGN_P0"] = 4] = "REMAP_SIGN_P0";
RemapSigns[RemapSigns["REMAP_SIGN_P1"] = 0] = "REMAP_SIGN_P1";
RemapSigns[RemapSigns["REMAP_SIGN_P2"] = 6] = "REMAP_SIGN_P2";
RemapSigns[RemapSigns["REMAP_SIGN_P3"] = 2] = "REMAP_SIGN_P3";
RemapSigns[RemapSigns["REMAP_SIGN_P4"] = 3] = "REMAP_SIGN_P4";
RemapSigns[RemapSigns["REMAP_SIGN_P5"] = 1] = "REMAP_SIGN_P5";
RemapSigns[RemapSigns["REMAP_SIGN_P6"] = 7] = "REMAP_SIGN_P6";
RemapSigns[RemapSigns["REMAP_SIGN_P7"] = 5] = "REMAP_SIGN_P7";
})(RemapSigns = exports.RemapSigns || (exports.RemapSigns = {}));