Data Sets (DIDs)
Data Sets (DIDs)¶
Data Sets in the form of C structures are available through binary protocol and provide access to system configuration and output data. The data sets are defined in SDK/src/data_sets.h of the InertialSense SDK.
INS / AHRS Output¶
DID_INS_1¶
ins_1_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeek | double | GPS time of week (since Sunday morning) in seconds |
| insStatus | uint32_t | INS status flags (eInsStatusFlags). Copy of DID_SYS_PARAMS.insStatus |
| hdwStatus | uint32_t | Hardware status flags (eHdwStatusFlags). Copy of DID_SYS_PARAMS.hdwStatus |
| theta | float[3] | Euler angles: roll, pitch, yaw in radians with respect to NED |
| uvw | float[3] | Velocity U, V, W in meters/second, in body frame. Convert to NED velocity using "vectorBodyToReference(uvw, theta, vel_ned)". |
| lla | double[3] | WGS84 latitude, longitude, height above ellipsoid (degrees, degrees, meters) |
| ned | float[3] | North, east, down (meters) offset from reference latitude, longitude, and altitude to current latitude, longitude, and altitude |
DID_INS_2¶
ins_2_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeek | double | GPS time of week (since Sunday morning) in seconds |
| insStatus | uint32_t | INS status flags (eInsStatusFlags). Copy of DID_SYS_PARAMS.insStatus |
| hdwStatus | uint32_t | Hardware status flags (eHdwStatusFlags). Copy of DID_SYS_PARAMS.hdwStatus |
| qn2b | float[4] | Quaternion body rotation with respect to NED: W, X, Y, Z |
| uvw | float[3] | Velocity U, V, W in meters/second, in body frame. Convert to NED velocity using "quatRot(vel_ned, qn2b, uvw)". |
| lla | double[3] | WGS84 latitude, longitude, height above ellipsoid in meters (not MSL) |
DID_INS_3¶
ins_3_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeek | double | GPS time of week (since Sunday morning) in seconds |
| insStatus | uint32_t | INS status flags (eInsStatusFlags). Copy of DID_SYS_PARAMS.insStatus |
| hdwStatus | uint32_t | Hardware status flags (eHdwStatusFlags). Copy of DID_SYS_PARAMS.hdwStatus |
| qn2b | float[4] | Quaternion body rotation with respect to NED: W, X, Y, Z |
| uvw | float[3] | Velocity U, V, W in meters/second, in body frame. Convert to NED velocity using "quatRot(vel_ned, qn2b, uvw)". |
| lla | double[3] | WGS84 latitude, longitude, height above ellipsoid in meters (not MSL) |
| msl | float | Height above mean sea level (MSL) in meters |
DID_INS_4¶
ins_4_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeek | double | GPS time of week (since Sunday morning) in seconds |
| insStatus | uint32_t | INS status flags (eInsStatusFlags). Copy of DID_SYS_PARAMS.insStatus |
| hdwStatus | uint32_t | Hardware status flags (eHdwStatusFlags). Copy of DID_SYS_PARAMS.hdwStatus |
| qe2b | float[4] | Quaternion body rotation with respect to ECEF: W, X, Y, Z |
| ve | float[3] | Velocity in ECEF (earth-centered earth-fixed) frame in meters per second |
| ecef | double[3] | Position in ECEF (earth-centered earth-fixed) frame in meters |
Inertial Measurement Unit (IMU)¶
DID_IMU¶
imu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMU status flags (eImuStatus) |
| I | imui_t | Combined Inertial Measurement Unit (IMU) sample: angular rate and acceleration |
DID_IMUS¶
imus_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMUs status flags (eImusStatus) |
| I | imui_t[1] | Per-device Inertial Measurement Unit (IMU) samples: angular rate and acceleration |
DID_IMUS_RAW¶
Multiple IMU data calibrated from DID_IMUS_UNCAL. We recommend use of DID_IMU or DID_PIMU as they are oversampled and contain less noise.
imus_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMUs status flags (eImusStatus) |
| I | imui_t[1] | Per-device Inertial Measurement Unit (IMU) samples: angular rate and acceleration |
DID_IMU_RAW¶
IMU data averaged from DID_IMUS_RAW. Use this IMU data for output data rates faster than DID_FLASH_CONFIG.startupNavDtMs. Otherwise we recommend use of DID_IMU or DID_PIMU as they are oversampled and contain less noise.
imu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMU status flags (eImuStatus) |
| I | imui_t | Combined Inertial Measurement Unit (IMU) sample: angular rate and acceleration |
DID_PIMU¶
pimu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| dt | float | Integration period in seconds for delta theta and delta velocity. Configured using DID_FLASH_CONFIG.startupNavDtMs |
| status | uint32_t | IMU status flags (eImuStatus) |
| theta | float[3] | IMU delta theta: gyroscope {p,q,r} integral over dt, in radians, in sensor/body frame |
| vel | float[3] | IMU delta velocity: accelerometer {x,y,z} integral over dt, in meters/second, in sensor/body frame |
Sensor Output¶
DID_BAROMETER¶
barometer_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| bar | float | Barometric pressure in kilopascals (kPa) |
| mslBar | float | MSL altitude derived from barometric pressure sensor, in meters |
| barTemp | float | Temperature of barometric pressure sensor in Celsius |
| humidity | float | Relative humidity as a percent (%rH). Range is 0% - 100% |
DID_MAGNETOMETER¶
magnetometer_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| mag | float[3] | Magnetometer X, Y, Z in microtesla (uT), in body frame |
DID_MAG_CAL¶
mag_cal_t
| Field | Type | Description |
|---|---|---|
| state | uint32_t | Mag recalibration command/status. COMMANDS: 1=multi-axis, 2=single-axis, 101=abort, STATUS: 200=running, 201=done (see eMagCalState) |
| progress | float | (%) Mag recalibration progress indicator: 0-100 |
| declination | float | (rad) Magnetic declination estimate |
DID_SYS_SENSORS¶
sys_sensors_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up, in seconds. Convert to GPS time of week by adding gps.towOffset |
| temp | float | IMU temperature, in Celsius |
| pqr | float[3] | Gyros {p,q,r}, in radians/second |
| acc | float[3] | Accelerometers {x,y,z}, in meters/second^2 |
| mag | float[3] | Magnetometers {x,y,z} (uncalibrated units) |
| bar | float | Barometric pressure, in kilopascals |
| barTemp | float | Temperature of barometric pressure sensor, in Celsius |
| mslBar | float | MSL altitude derived from barometric pressure sensor, in meters |
| humidity | float | Relative humidity as a percent (%rH). Range is 0% - 100% |
| vin | float | EVB system input voltage, in volts. uINS pin 5 (G2/AN2). Use 10K/1K resistor divider between Vin and GND. |
| ana1 | float | ADC analog input, in volts. uINS pin 4 (G1/AN1) |
| ana3 | float | ADC analog input, in volts. uINS pin 19 (G3/AN3) |
| ana4 | float | ADC analog input, in volts. uINS pin 20 (G4/AN4) |
GPS / GNSS¶
DID_GNSS1_POS¶
gnss_pos_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
| ecef | double[3] | Position in ECEF {x,y,z}, in meters |
| lla | double[3] | Position in WGS84 latitude, longitude, height above ellipsoid (not MSL), in degrees, degrees, meters |
| hMSL | float | Height above mean sea level (MSL), in meters |
| hAcc | float | Horizontal accuracy, in meters |
| vAcc | float | Vertical accuracy, in meters |
| pDop | float | Position dilution of precision (unitless) |
| cnoMean | float | Average of all non-zero satellite carrier to noise ratios (signal strengths), in dBHz |
| towOffset | double | Time sync offset between local time since boot up and GPS time of week, in seconds. Add this to IMU and sensor time to get GPS time of week in seconds. |
| leapS | uint8_t | GPS leap second (GPS-UTC) offset, in seconds. Receiver's best knowledge of the leap seconds offset from UTC to GPS time. Subtract from GPS time of week to get UTC time of week. (18 seconds as of December 31, 2016) |
| satsUsed | uint8_t | Number of satellites used in the position solution |
| cnoMeanSigma | uint8_t | Standard deviation of cnoMean over the past 5 seconds, in dBHz x10 |
| status2 | uint8_t | Secondary GNSS status byte (see eGnssStatus2): [0x0X] spoofing/jamming status, [0xX0] unused |
DID_GNSS1_RCVR_POS¶
GNSS 1 position data from GNSS receiver.
gnss_pos_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
| ecef | double[3] | Position in ECEF {x,y,z}, in meters |
| lla | double[3] | Position in WGS84 latitude, longitude, height above ellipsoid (not MSL), in degrees, degrees, meters |
| hMSL | float | Height above mean sea level (MSL), in meters |
| hAcc | float | Horizontal accuracy, in meters |
| vAcc | float | Vertical accuracy, in meters |
| pDop | float | Position dilution of precision (unitless) |
| cnoMean | float | Average of all non-zero satellite carrier to noise ratios (signal strengths), in dBHz |
| towOffset | double | Time sync offset between local time since boot up and GPS time of week, in seconds. Add this to IMU and sensor time to get GPS time of week in seconds. |
| leapS | uint8_t | GPS leap second (GPS-UTC) offset, in seconds. Receiver's best knowledge of the leap seconds offset from UTC to GPS time. Subtract from GPS time of week to get UTC time of week. (18 seconds as of December 31, 2016) |
| satsUsed | uint8_t | Number of satellites used in the position solution |
| cnoMeanSigma | uint8_t | Standard deviation of cnoMean over the past 5 seconds, in dBHz x10 |
| status2 | uint8_t | Secondary GNSS status byte (see eGnssStatus2): [0x0X] spoofing/jamming status, [0xX0] unused |
DID_GNSS1_RTK_POS¶
GNSS RTK position data
gnss_pos_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
| ecef | double[3] | Position in ECEF {x,y,z}, in meters |
| lla | double[3] | Position in WGS84 latitude, longitude, height above ellipsoid (not MSL), in degrees, degrees, meters |
| hMSL | float | Height above mean sea level (MSL), in meters |
| hAcc | float | Horizontal accuracy, in meters |
| vAcc | float | Vertical accuracy, in meters |
| pDop | float | Position dilution of precision (unitless) |
| cnoMean | float | Average of all non-zero satellite carrier to noise ratios (signal strengths), in dBHz |
| towOffset | double | Time sync offset between local time since boot up and GPS time of week, in seconds. Add this to IMU and sensor time to get GPS time of week in seconds. |
| leapS | uint8_t | GPS leap second (GPS-UTC) offset, in seconds. Receiver's best knowledge of the leap seconds offset from UTC to GPS time. Subtract from GPS time of week to get UTC time of week. (18 seconds as of December 31, 2016) |
| satsUsed | uint8_t | Number of satellites used in the position solution |
| cnoMeanSigma | uint8_t | Standard deviation of cnoMean over the past 5 seconds, in dBHz x10 |
| status2 | uint8_t | Secondary GNSS status byte (see eGnssStatus2): [0x0X] spoofing/jamming status, [0xX0] unused |
DID_GNSS1_RTK_POS_MISC¶
gnss_rtk_misc_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning), in milliseconds |
| accuracyPos | float[3] | Accuracy: estimated standard deviations of the position solution assuming the a priori error model and error parameters used by the positioning options. []: {ECEF x,y,z} or {north,east,down}, in meters |
| accuracyCov | float[3] | Accuracy: estimated covariance of the position solution. []: absolute value of the square root of the estimated covariance {NE, EU, UN}, in meters |
| arThreshold | float | Ambiguity resolution threshold for validation (unitless) |
| gDop | float | Geometric dilution of precision (unitless) |
| hDop | float | Horizontal dilution of precision (unitless) |
| vDop | float | Vertical dilution of precision (unitless) |
| baseLla | double[3] | Base station position: latitude, longitude, height (deg, deg, m) |
| cycleSlipCount | uint32_t | Cycle slip counter |
| roverGpsObservationCount | uint32_t | Rover GPS observation element counter |
| baseGpsObservationCount | uint32_t | Base station GPS observation element counter |
| roverGlonassObservationCount | uint32_t | Rover GLONASS observation element counter |
| baseGlonassObservationCount | uint32_t | Base station GLONASS observation element counter |
| roverGalileoObservationCount | uint32_t | Rover Galileo observation element counter |
| baseGalileoObservationCount | uint32_t | Base station Galileo observation element counter |
| roverBeidouObservationCount | uint32_t | Rover BeiDou observation element counter |
| baseBeidouObservationCount | uint32_t | Base station BeiDou observation element counter |
| roverQzsObservationCount | uint32_t | Rover QZSS observation element counter |
| baseQzsObservationCount | uint32_t | Base station QZSS observation element counter |
| roverGpsEphemerisCount | uint32_t | Rover GPS ephemeris element counter |
| baseGpsEphemerisCount | uint32_t | Base station GPS ephemeris element counter |
| roverGlonassEphemerisCount | uint32_t | Rover GLONASS ephemeris element counter |
| baseGlonassEphemerisCount | uint32_t | Base station GLONASS ephemeris element counter |
| roverGalileoEphemerisCount | uint32_t | Rover Galileo ephemeris element counter |
| baseGalileoEphemerisCount | uint32_t | Base station Galileo ephemeris element counter |
| roverBeidouEphemerisCount | uint32_t | Rover BeiDou ephemeris element counter |
| baseBeidouEphemerisCount | uint32_t | Base station BeiDou ephemeris element counter |
| roverQzsEphemerisCount | uint32_t | Rover QZSS ephemeris element counter |
| baseQzsEphemerisCount | uint32_t | Base station QZSS ephemeris element counter |
| roverSbasCount | uint32_t | Rover SBAS element counter |
| baseSbasCount | uint32_t | Base station SBAS element counter |
| baseAntennaCount | uint32_t | Base station antenna position element counter |
| ionUtcAlmCount | uint32_t | Ionosphere model, UTC, and almanac element counter |
| correctionChecksumFailures | uint32_t | Number of checksum failures from received corrections |
| timeToFirstFixMs | uint32_t | Time to first RTK fix, in milliseconds |
DID_GNSS1_RTK_POS_REL¶
gnss_rtk_rel_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) |
| differentialAge | float | (s) Age of differential corrections |
| arRatio | float | Ambiguity resolution ratio factor for validation (unitless; higher indicates greater confidence the fixed integer ambiguity is correct) |
| baseToRoverVector | float[3] | (m) Vector from base to rover GNSS antennas {x,y,z} in ECEF. DID_GNSS1_RTK_POS_REL: RTK base station (base) to GNSS1 (rover). DID_GNSS2_RTK_CMP_REL (compassing): GNSS1 (base) to GNSS2 (rover) |
| baseToRoverDistance | float | (m) Distance from base to rover GNSS antennas (baseline length) |
| baseToRoverHeading | float | (rad) Heading of baseToRoverVector in the local tangent (NED) plane. Compassing mode: GNSS1 (base) to GNSS2 (rover) |
| baseToRoverHeadingAcc | float | (rad) Accuracy (standard deviation) of baseToRoverHeading |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
| covEcefPacked | float[6] | RTK solution covariance in ECEF packed as [Pxx, Pyy, Pzz, Pxy, Pyz, Pzx], in meters^2 |
DID_GNSS1_SAT¶
gnss_sat_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| numSats | uint32_t | Number of satellites in the sky (valid entries in the sat[] list below) |
| sat | gnss_sat_sv_t[80] | Per-satellite tracking information list |
DID_GNSS1_VEL¶
gnss_vel_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| vel | float[3] | GNSS velocity, in meters/second. In ECEF {vx,vy,vz} if status bit GNSS_STATUS_FLAGS_GNSS_NMEA_DATA (0x00008000) is NOT set; in local tangent plane with no vertical velocity {vNorth, vEast, 0} if that bit IS set. |
| sAcc | float | Speed accuracy, in meters/second |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
DID_GNSS1_VERSION¶
gnss_version_t
| Field | Type | Description |
|---|---|---|
| swVersion | uint8_t[30] | GNSS receiver software version string |
| hwVersion | uint8_t[10] | GNSS receiver hardware version string |
| extension | gnss_extension_ver_t[6] | Additional 30-byte extension version-info strings reported by the receiver |
DID_GNSS2_POS¶
GNSS 2 position data
gnss_pos_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
| ecef | double[3] | Position in ECEF {x,y,z}, in meters |
| lla | double[3] | Position in WGS84 latitude, longitude, height above ellipsoid (not MSL), in degrees, degrees, meters |
| hMSL | float | Height above mean sea level (MSL), in meters |
| hAcc | float | Horizontal accuracy, in meters |
| vAcc | float | Vertical accuracy, in meters |
| pDop | float | Position dilution of precision (unitless) |
| cnoMean | float | Average of all non-zero satellite carrier to noise ratios (signal strengths), in dBHz |
| towOffset | double | Time sync offset between local time since boot up and GPS time of week, in seconds. Add this to IMU and sensor time to get GPS time of week in seconds. |
| leapS | uint8_t | GPS leap second (GPS-UTC) offset, in seconds. Receiver's best knowledge of the leap seconds offset from UTC to GPS time. Subtract from GPS time of week to get UTC time of week. (18 seconds as of December 31, 2016) |
| satsUsed | uint8_t | Number of satellites used in the position solution |
| cnoMeanSigma | uint8_t | Standard deviation of cnoMean over the past 5 seconds, in dBHz x10 |
| status2 | uint8_t | Secondary GNSS status byte (see eGnssStatus2): [0x0X] spoofing/jamming status, [0xX0] unused |
DID_GNSS2_RTK_CMP_MISC¶
RTK Dual GNSS RTK compassing related data.
gnss_rtk_misc_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning), in milliseconds |
| accuracyPos | float[3] | Accuracy: estimated standard deviations of the position solution assuming the a priori error model and error parameters used by the positioning options. []: {ECEF x,y,z} or {north,east,down}, in meters |
| accuracyCov | float[3] | Accuracy: estimated covariance of the position solution. []: absolute value of the square root of the estimated covariance {NE, EU, UN}, in meters |
| arThreshold | float | Ambiguity resolution threshold for validation (unitless) |
| gDop | float | Geometric dilution of precision (unitless) |
| hDop | float | Horizontal dilution of precision (unitless) |
| vDop | float | Vertical dilution of precision (unitless) |
| baseLla | double[3] | Base station position: latitude, longitude, height (deg, deg, m) |
| cycleSlipCount | uint32_t | Cycle slip counter |
| roverGpsObservationCount | uint32_t | Rover GPS observation element counter |
| baseGpsObservationCount | uint32_t | Base station GPS observation element counter |
| roverGlonassObservationCount | uint32_t | Rover GLONASS observation element counter |
| baseGlonassObservationCount | uint32_t | Base station GLONASS observation element counter |
| roverGalileoObservationCount | uint32_t | Rover Galileo observation element counter |
| baseGalileoObservationCount | uint32_t | Base station Galileo observation element counter |
| roverBeidouObservationCount | uint32_t | Rover BeiDou observation element counter |
| baseBeidouObservationCount | uint32_t | Base station BeiDou observation element counter |
| roverQzsObservationCount | uint32_t | Rover QZSS observation element counter |
| baseQzsObservationCount | uint32_t | Base station QZSS observation element counter |
| roverGpsEphemerisCount | uint32_t | Rover GPS ephemeris element counter |
| baseGpsEphemerisCount | uint32_t | Base station GPS ephemeris element counter |
| roverGlonassEphemerisCount | uint32_t | Rover GLONASS ephemeris element counter |
| baseGlonassEphemerisCount | uint32_t | Base station GLONASS ephemeris element counter |
| roverGalileoEphemerisCount | uint32_t | Rover Galileo ephemeris element counter |
| baseGalileoEphemerisCount | uint32_t | Base station Galileo ephemeris element counter |
| roverBeidouEphemerisCount | uint32_t | Rover BeiDou ephemeris element counter |
| baseBeidouEphemerisCount | uint32_t | Base station BeiDou ephemeris element counter |
| roverQzsEphemerisCount | uint32_t | Rover QZSS ephemeris element counter |
| baseQzsEphemerisCount | uint32_t | Base station QZSS ephemeris element counter |
| roverSbasCount | uint32_t | Rover SBAS element counter |
| baseSbasCount | uint32_t | Base station SBAS element counter |
| baseAntennaCount | uint32_t | Base station antenna position element counter |
| ionUtcAlmCount | uint32_t | Ionosphere model, UTC, and almanac element counter |
| correctionChecksumFailures | uint32_t | Number of checksum failures from received corrections |
| timeToFirstFixMs | uint32_t | Time to first RTK fix, in milliseconds |
DID_GNSS2_RTK_CMP_REL¶
Dual GNSS RTK compassing / moving base to rover (GNSS 1 to GNSS 2) relative info.
gnss_rtk_rel_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) |
| differentialAge | float | (s) Age of differential corrections |
| arRatio | float | Ambiguity resolution ratio factor for validation (unitless; higher indicates greater confidence the fixed integer ambiguity is correct) |
| baseToRoverVector | float[3] | (m) Vector from base to rover GNSS antennas {x,y,z} in ECEF. DID_GNSS1_RTK_POS_REL: RTK base station (base) to GNSS1 (rover). DID_GNSS2_RTK_CMP_REL (compassing): GNSS1 (base) to GNSS2 (rover) |
| baseToRoverDistance | float | (m) Distance from base to rover GNSS antennas (baseline length) |
| baseToRoverHeading | float | (rad) Heading of baseToRoverVector in the local tangent (NED) plane. Compassing mode: GNSS1 (base) to GNSS2 (rover) |
| baseToRoverHeadingAcc | float | (rad) Accuracy (standard deviation) of baseToRoverHeading |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
| covEcefPacked | float[6] | RTK solution covariance in ECEF packed as [Pxx, Pyy, Pzz, Pxy, Pyz, Pzx], in meters^2 |
DID_GNSS2_SAT¶
GNSS 2 GNSS satellite information: sat identifiers, carrier to noise ratio, elevation and azimuth angles, pseudo range residual.
gnss_sat_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| numSats | uint32_t | Number of satellites in the sky (valid entries in the sat[] list below) |
| sat | gnss_sat_sv_t[80] | Per-satellite tracking information list |
DID_GNSS2_VEL¶
GNSS 2 velocity data
gnss_vel_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| vel | float[3] | GNSS velocity, in meters/second. In ECEF {vx,vy,vz} if status bit GNSS_STATUS_FLAGS_GNSS_NMEA_DATA (0x00008000) is NOT set; in local tangent plane with no vertical velocity {vNorth, vEast, 0} if that bit IS set. |
| sAcc | float | Speed accuracy, in meters/second |
| status | uint32_t | GNSS status (see eGnssStatus): [0x000000xx] number of satellites used, [0x0000xx00] fix type, [0x00xx0000] status flags, NMEA input flag |
DID_GNSS2_VERSION¶
GNSS 2 version info
gnss_version_t
| Field | Type | Description |
|---|---|---|
| swVersion | uint8_t[30] | GNSS receiver software version string |
| hwVersion | uint8_t[10] | GNSS receiver hardware version string |
| extension | gnss_extension_ver_t[6] | Additional 30-byte extension version-info strings reported by the receiver |
DID_GNSS_RTK_OPT¶
RTK options - requires little endian CPU.
gnss_rtk_opt_t
| Field | Type | Description |
|---|---|---|
| mode | int32_t | Positioning mode (PMODE_???: e.g. single, DGPS, kinematic, static, moving-baseline) |
| soltype | int32_t | Solution type (0 = forward, 1 = backward, 2 = combined forward/backward) |
| nf | int32_t | Number of frequencies used (1 = L1, 2 = L1+L2, 3 = L1+L2+L5) |
| navsys | int32_t | Navigation systems bitmask (GPS/GLONASS/Galileo/BeiDou/QZSS/SBAS, SYS_??? bits) |
| elmin | float | Elevation mask angle, satellites below this are excluded (rad) |
| snrmin | int32_t | Minimum SNR/Cno for a satellite to be considered for RTK (0.25 dB-Hz units, see obsd_t.SNR) |
| snrrange | int32_t | SNR range from the highest-SNR satellite to consider (overrides snrmin if non-zero) |
| modear | int32_t | Integer ambiguity resolution (AR) mode (0 = off, 1 = continuous, 2 = instantaneous, 3 = fix-and-hold, 4 = PPP-AR) |
| glomodear | int32_t | GLONASS ambiguity resolution mode (0 = off, 1 = on, 2 = auto-calibrate inter-frequency bias, 3 = external calibration) |
| sbsmodear | int32_t | SBAS ambiguity resolution mode (0 = off, 1 = on) |
| bdsmodear | int32_t | BeiDou ambiguity resolution mode (0 = off, 1 = on) |
| arfilter | int32_t | Ambiguity-resolution filtering to reject bad satellites (0 = off, 1 = on) |
| maxout | int32_t | Consecutive observation outage count before resetting a satellite's carrier-phase bias |
| maxrej | int32_t | Consecutive rejection count before resetting a satellite's carrier-phase bias |
| minlock | int32_t | Minimum lock (continuous-tracking) count required before fixing an ambiguity |
| minfixsats | int32_t | Minimum number of satellites required to fix integer ambiguities |
| minholdsats | int32_t | Minimum number of satellites required to hold fixed integer ambiguities |
| mindropsats | int32_t | Minimum number of satellites below which satellites are dropped during ambiguity resolution |
| rcvstds | int32_t | Use receiver-reported stdev estimates to scale measurement variances (0 = off, 1 = on) |
| minfix | int32_t | Minimum consecutive fix count required before holding an ambiguity |
| armaxiter | int32_t | Maximum number of iterations used to resolve integer ambiguities |
| dynamics | int32_t | Dynamics model used by the filter (0 = none, 1 = velocity, 2 = acceleration) |
| intpref | int32_t | Interpolate reference (base) observations, used for post-mission processing (0 = off, 1 = on) |
| rovpos | int32_t | Rover position mode for fixed-position solutions |
| refpos | int32_t | Base station position mode for relative-positioning solutions |
| err | float[12] | Measurement error factor coefficients (indexed by error model term) |
| std | float[3] | Initial-state standard deviations: [0] carrier-phase bias, [1] ionosphere, [2] troposphere |
| prn | float[6] | Process-noise standard deviations: [0] bias, [1] iono, [2] trop, [3] horizontal accel, [4] vertical accel, [5] position |
| sclkstab | double | Satellite clock stability (sec/sec, i.e. fractional frequency error) |
| thresar | float[8] | Ambiguity-resolution validation thresholds (e.g. ratio test and related AR acceptance criteria) |
| elmaskar | float | Elevation mask for ambiguity resolution of a newly rising satellite (rad) |
| elmaskhold | float | Elevation mask below which a held ambiguity is dropped (rad) |
| thresslip | float | Cycle-slip detection threshold on the geometry-free phase combination (m) |
| thresdop | float | Cycle-slip detection threshold based on Doppler-predicted phase (m) |
| varholdamb | float | Variance assigned to fix-and-hold pseudo-measurements of ambiguity (cycle^2) |
| gainholdamb | float | Gain applied to GLONASS and SBAS satellites when adjusting held ambiguities |
| maxtdiff | float | Maximum allowed time difference between rover and base observations (sec) |
| fix_reset_base_msgs | int | Number of base messages without a fix after which satellite biases are reset |
| maxinno | float[2] | Innovation (measurement residual) rejection thresholds: [0] carrier-phase, [1] code/pseudorange (m) |
| maxnis_lo | float[2] | Lower normalized innovation squared (NIS) rejection thresholds: [0] phase, [1] code |
| maxnis_hi | float[2] | Upper normalized innovation squared (NIS) rejection thresholds: [0] phase, [1] code |
| maxgdop | double | Rejection threshold on geometric dilution of precision (GDOP) |
| baseline | float[3] | Baseline length constraint: {constrained length, sigma before fix, sigma after fix} (m) |
| max_baseline_error | float | Maximum allowed baseline length error before the solution is considered invalid (m) |
| reset_baseline_error | float | Baseline length error above which the filter is reset (m) |
| max_ubx_error | float | Maximum error with respect to the receiver's (u-blox) reported position, triggers a reset if exceeded (m) |
| ru | double[3] | Rover position for fixed-position mode {x,y,z} (ECEF, m) |
| rb | double[3] | Base station position for relative-positioning mode {x,y,z} (ECEF, m) |
| maxaveep | int32_t | Maximum number of epochs used when averaging a position |
| outsingle | int32_t | Output a single-point solution on DGPS/float/fixed/PPP outage (0 = off, 1 = on) |
| velcon | float[2] | Velocity constraint variance in compassing/moving-baseline mode: {before fix, after fix} (m2/s2) |
| mp_bias_lpf_alpha | float | Low-pass-filter alpha for multipath bias estimation; smaller values apply heavier filtering |
| mp_var_lpf_alpha | float | Low-pass-filter alpha for multipath variance estimation; smaller values apply heavier filtering |
GPX¶
DID_GPX_DEV_INFO¶
GPX device information
dev_info_t
| Field | Type | Description |
|---|---|---|
| reserved | uint8_t | Reserved bits |
| buildFlags | uint8_t | Build flags: 0x1=debug mode, 0x2=dirty (see eBuildFlags) |
| hardwareType | uint8_t | Hardware Type: 1=uINS, 2=EVB, 3=IMX, 4=GPX (see eIsHardwareType) |
| hdwRunState | uint8_t | Device Run State: Bootloader, App, etc (see eHdwRunStates) |
| serialNumber | uint32_t | Serial number |
| hardwareVer | uint8_t[3] | Hardware version: [0]=major, [1]=minor, [2]=pcb/a revision |
| hardwareVariant | uint8_t | Hardware variant; an arbitrary number independent of version that identifies some variation of the hardware; most commonly, IMU population type on IMX-6 (see eImx6ImuPopulationType) |
| firmwareVer | uint8_t[4] | Firmware (software) version |
| buildNumber | uint32_t | Build number |
| protocolVer | uint8_t[4] | Communications protocol version |
| repoRevision | uint32_t | Repository revision number |
| manufacturer | char[24] | Manufacturer name |
| buildType | uint8_t | Build type (0=production, 'c'=release candidate, 'b'=beta, 'a'=alpha, 'd'=developer, 's'=snapshot, '^'=dirty) |
| buildYear | uint8_t | Build date year - 2000 |
| buildMonth | uint8_t | Build date month |
| buildDay | uint8_t | Build date day |
| buildHour | uint8_t | Build time hour |
| buildMinute | uint8_t | Build time minute |
| buildSecond | uint8_t | Build time second |
| buildMillisecond | uint8_t | Build time millisecond |
| addInfo | char[24] | Additional info |
DID_GPX_FLASH_CFG¶
nvm_flash_cfg_t
| Field | Type | Description |
|---|---|---|
| size | uint32_t | Size of group or union, which is nvm_group_x_t + padding |
| checksum | uint32_t | Checksum, excluding size and checksum. 0xFFFFFFFF is invalid. |
| key | uint32_t | Manufacturer method for restoring flash defaults |
| startupImuDtMs | uint32_t | (ms) IMU sample (system input) period set on startup. Cannot be larger than startupNavDtMs. Zero disables sensor/IMU sampling. |
| startupNavDtMs | uint32_t | (ms) Navigation filter (system output) output period set on startup. Used to initialize sysParams.navOutputPeriodMs. |
| ser0BaudRate | uint32_t | (bps) Serial port 0 baud rate |
| ser1BaudRate | uint32_t | (bps) Serial port 1 baud rate |
| insRotation | float[3] | (rad) Rotation about the X,Y,Z axes from Sensor Frame to Intermediate Output Frame. Order applied: Z,Y,X. |
| insOffset | float[3] | (m) X,Y,Z offset from Intermediate Output Frame to INS Output Frame. |
| gnss1AntOffset | float[3] | (m) X,Y,Z offset in Sensor Frame to GNSS 1 antenna. |
| dynamicModel | uint8_t | INS dynamic platform model (see eDynamicModel). Options are: 0=PORTABLE, 2=STATIONARY, 3=PEDESTRIAN, 4=GROUND VEHICLE, 5=SEA, 6=AIRBORNE_1G, 7=AIRBORNE_2G, 8=AIRBORNE_4G, 9=WRIST. Used to balance noise and performance characteristics of the system. The dynamics selected here must be at least as fast as your system or you experience accuracy error. This is tied to the GNSS position estimation model and intend in the future to be incorporated into the INS position model. |
| debug | uint8_t | Debug |
| gnssSatSigConst | uint16_t | Satellite system constellation used in GNSS solution (see eGnssSatSigConst). 0x0003=GPS, 0x000C=QZSS, 0x0030=Galileo, 0x00C0=Beidou, 0x0300=GLONASS, 0x1000=SBAS |
| sysCfgBits | uint32_t | System configuration bits (see eSysConfigBits). |
| refLla | double[3] | (deg, deg, m) Reference latitude, longitude and height above ellipsoid for north east down (NED) calculations |
| lastLla | double[3] | (deg, deg, m) Last latitude, longitude, HAE (height above ellipsoid) used to aid GNSS startup. Updated when the distance between current LLA and lastLla exceeds lastLlaUpdateDistance. |
| lastLlaTimeOfWeekMs | uint32_t | (ms) Last LLA GPS time since week start (Sunday morning) |
| lastLlaWeek | uint32_t | Last LLA GPS number of weeks since January 6th, 1980 |
| lastLlaUpdateDistance | float | (m) Distance between current and last LLA that triggers an update of lastLla |
| ioConfig | uint32_t | Hardware interface configuration bits (see eIoConfig). |
| platformConfig | uint32_t | Hardware platform specifying the IMX carrier board type (i.e. RUG, EVB, IG) and configuration bits (see ePlatformConfig). The platform type is used to simplify the GNSS and I/O configuration process. Bit PLATFORM_CFG_UPDATE_IO_CONFIG is excluded from the flashConfig checksum and from determining whether to upload. |
| gnss2AntOffset | float[3] | (m) X,Y,Z offset in Sensor Frame origin to GNSS 2 antenna. |
| zeroVelRotation | float[3] | (rad) Euler (roll, pitch, yaw) rotation from INS Sensor Frame to Intermediate ZeroVelocity Frame. Order applied: heading, pitch, roll. |
| zeroVelOffset | float[3] | (m) X,Y,Z offset from Intermediate ZeroVelocity Frame to Zero Velocity Frame. |
| gnssTimeUserDelay | float | (sec) User defined delay for GPS time. This parameter can be used to account for GNSS antenna cable delay. |
| magDeclination | float | (rad) Earth magnetic field (magnetic north) declination (heading offset from true north) |
| gnssTimeSyncPeriodMs | uint32_t | (ms) Time between GPS time synchronization pulses. Requires reboot to take effect. |
| startupGnssDtMs | uint32_t | (ms) GNSS measurement (system input) update period set on startup. 200ms minimum (5Hz max). |
| RTKCfgBits | uint32_t | RTK configuration bits (see eRTKConfigBits). |
| sensorConfig | uint32_t | Sensor config to specify the full-scale sensing ranges and output rotation for the IMU and magnetometer (see eSensorConfig) |
| gnssMinimumElevation | float | (rad) Minimum elevation of a satellite above the horizon to be used in the solution. Low elevation satellites may provide degraded accuracy, due to the long signal path through the atmosphere. |
| ser2BaudRate | uint32_t | (bps) Serial port 2 baud rate |
| wheelConfig | wheel_config_t | Wheel encoder: euler angles describing the rotation from imu to left wheel, plus track width/radius and config bits (see eWheelCfgBits) |
| magInterferenceThreshold | float | Magnetometer interference sensitivity threshold. Typical range is 2-10 (3 default) and 1000 to disable mag interference detection. |
| magCalibrationQualityThreshold | float | Magnetometer calibration quality sensitivity threshold. Typical range is 10-20 (10 default) and 1000 to disable mag calibration quality check, forcing it to be always good. |
| gnssCn0Minimum | uint8_t | (dBHz) GNSS CN0 absolute minimum threshold for signals. Used to filter signals in RTK solution. |
| gnssCn0DynMinOffset | uint8_t | (dBHz) GNSS CN0 dynamic minimum threshold offset below max CN0 across all satellites. Used to filter signals used in RTK solution. To disable, set gnssCn0DynMinOffset to zero and increase gnssCn0Minimum. |
| imuRejectThreshGyroLow | uint8_t | IMU gyro fault rejection threshold low |
| imuRejectThreshGyroHigh | uint8_t | IMU gyro fault rejection threshold high |
| imuShockDetectLatencyMs | uint8_t | (ms) IMU shock detection latency. Time used for EKF rewind to prevent shock from influencing EKF estimates. |
| imuShockRejectLatchMs | uint8_t | (ms) IMU shock rejection latch time. Time required following detected shock end to disable shock rejection. |
| imuShockOptions | uint8_t | IMU shock rejection options (see eImuShockOptions) |
| imuShockDeltaAccHighThreshold | uint8_t | (m/s^2) IMU shock detection. Min acceleration difference between the 3 IMUs to detect the start of a shock. |
| imuShockDeltaAccLowThreshold | uint8_t | (m/s^2) IMU shock detection. Max acceleration difference between the 3 IMUs within the latch time to detect the end of a shock. |
| imuShockDeltaGyroHighThreshold | uint8_t | (deg/s) IMU shock detection. Min angular rate difference between the 3 IMUs to detect the start of a shock. |
| imuShockDeltaGyroLowThreshold | uint8_t | (deg/s) IMU shock detection. Max angular rate difference between the 3 IMUs within the latch time to detect the end of a shock. |
| ioConfig2 | uint8_t | Hardware interface configuration bits for GNSS2 PPS (see eIoConfig2). |
DID_GPX_RMC¶
GPX rmc
rmc_t
| Field | Type | Description |
|---|---|---|
| bits | uint64_t | Data stream enable bits for the specified ports (see RMC_BITS_...) |
| options | uint32_t | Options to select alternate ports to output data, persist across reboot, NMEA speed filtering, etc. (see RMC_OPTIONS_...) |
DID_GPX_STATUS¶
gpx_status_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) |
| status | uint32_t | Status (see eGpxStatus) |
| grmcBitsSer0 | uint64_t | GRMC message enable bits for serial port 0 (see GRMC_BITS_...) |
| grmcBitsSer1 | uint64_t | GRMC message enable bits for serial port 1 (see GRMC_BITS_...) |
| grmcBitsSer2 | uint64_t | GRMC message enable bits for serial port 2 (see GRMC_BITS_...) |
| grmcBitsUSB | uint64_t | GRMC message enable bits for USB (see GRMC_BITS_...) |
| grmcNMEABitsSer0 | uint64_t | NMEA message enable bits for serial port 0 (see NMEA_MSG_ID...) |
| grmcNMEABitsSer1 | uint64_t | NMEA message enable bits for serial port 1 (see NMEA_MSG_ID...) |
| grmcNMEABitsSer2 | uint64_t | NMEA message enable bits for serial port 2 (see NMEA_MSG_ID...) |
| grmcNMEABitsUSB | uint64_t | NMEA message enable bits for USB (see NMEA_MSG_ID...) |
| hdwStatus | uint32_t | Hardware status flags (see eGPXHdwStatusFlags) |
| mcuTemp | float | (C) MCU temperature (GPX_INVALID_MCU_TEMP if not available) |
| navOutputPeriodMs | uint32_t | (ms) Navigation output period |
| flashCfgChecksum | uint32_t | Flash config checksum used with host SDK synchronization |
| rtkMode | uint32_t | RTK mode bits (see eRTKConfigBits) |
| gnssStatus | gpx_gnss_status_t[2] | Per-GNSS-receiver driver status (GNSS1, GNSS2) |
| gpxSourcePort | uint8_t | Port this status message was sourced from |
| upTime | double | (s) Time since system was started |
Raw GPS Data¶
Raw GPS data is contained in the DID_GNSS1_RAW, DID_GNSS2_RAW, and DID_GNSS_BASE_RAW messages of type gnss_raw_t. The actual raw data is contained in the union member gnss_raw_t.data and should be interpreted based on the value of gnss_raw_t.dataType (i.e. as observation, ephemeris, SBAS, or base station position).
DID_GNSS1_RAW¶
GNSS raw data for rover (observation, ephemeris, etc.) - requires little endian CPU. The contents of data can vary for this message and are determined by dataType field. RTK positioning or RTK compassing must be enabled to stream this message.
gnss_raw_t
| Field | Type | Description |
|---|---|---|
| receiverIndex | uint8_t | Source receiver: 1=RECEIVER_INDEX_GNSS1, 2=RECEIVER_INDEX_EXTERNAL_BASE, 3=RECEIVER_INDEX_GNSS2 |
| dataType | uint8_t | Type of data in the data union (see eRawDataType): 1=observations, 2=ephemeris, 3=glonassEphemeris, 4=SBAS, 5=baseAntenna, 6=IonosphereModel |
| obsCount | uint8_t | Number of observations (obsd_t elements) present in data.obs when dataType==1 (raw_data_type_observation) |
| reserved | uint8_t | Reserved for alignment / future use |
| data | uGnssRawData | Raw data payload; interpret based on dataType (see eRawDataType) |
DID_GNSS2_RAW¶
GNSS raw data for rover (observation, ephemeris, etc.) - requires little endian CPU. The contents of data can vary for this message and are determined by dataType field. RTK positioning or RTK compassing must be enabled to stream this message.
gnss_raw_t
| Field | Type | Description |
|---|---|---|
| receiverIndex | uint8_t | Source receiver: 1=RECEIVER_INDEX_GNSS1, 2=RECEIVER_INDEX_EXTERNAL_BASE, 3=RECEIVER_INDEX_GNSS2 |
| dataType | uint8_t | Type of data in the data union (see eRawDataType): 1=observations, 2=ephemeris, 3=glonassEphemeris, 4=SBAS, 5=baseAntenna, 6=IonosphereModel |
| obsCount | uint8_t | Number of observations (obsd_t elements) present in data.obs when dataType==1 (raw_data_type_observation) |
| reserved | uint8_t | Reserved for alignment / future use |
| data | uGnssRawData | Raw data payload; interpret based on dataType (see eRawDataType) |
DID_GNSS_BASE_RAW¶
gnss_raw_t
| Field | Type | Description |
|---|---|---|
| receiverIndex | uint8_t | Source receiver: 1=RECEIVER_INDEX_GNSS1, 2=RECEIVER_INDEX_EXTERNAL_BASE, 3=RECEIVER_INDEX_GNSS2 |
| dataType | uint8_t | Type of data in the data union (see eRawDataType): 1=observations, 2=ephemeris, 3=glonassEphemeris, 4=SBAS, 5=baseAntenna, 6=IonosphereModel |
| obsCount | uint8_t | Number of observations (obsd_t elements) present in data.obs when dataType==1 (raw_data_type_observation) |
| reserved | uint8_t | Reserved for alignment / future use |
| data | uGnssRawData | Raw data payload; interpret based on dataType (see eRawDataType) |
Raw GPS Data Buffer Union¶
uGnssRawData
| Field | Type | Description |
|---|---|---|
| obs | obsd_t[] | Satellite observation data, valid when dataType == raw_data_type_observation |
| eph | eph_t | Satellite non-GLONASS ephemeris data (GPS, Galileo, Beidou, QZSS), valid when dataType == raw_data_type_ephemeris |
| gloEph | geph_t | Satellite GLONASS ephemeris data, valid when dataType == raw_data_type_glonass_ephemeris |
| sbas | sbsmsg_t | Satellite-Based Augmentation Systems (SBAS) data, valid when dataType == raw_data_type_sbas |
| sta | sta_t | Base station information (base position, antenna position, antenna height, etc.), valid when dataType == raw_data_type_base_station_antenna_position |
| ion | ion_model_utc_alm_t | Ionosphere model and UTC parameters, valid when dataType == raw_data_type_ionosphere_model_utc_alm |
| buf | uint8_t[1000] | Byte buffer providing untyped access to the same union storage |
GPS Galileo QZSS Ephemeris¶
eph_t
| Field | Type | Description |
|---|---|---|
| sat | int32_t | Satellite number in RTKLIB notation. GPS: 1-32, GLONASS: 33-59, Galileo: 60-89, SBAS: 90-95 |
| iode | int32_t | IODE, Issue Of Data Ephemeris (ephemeris data-set version number) |
| iodc | int32_t | IODC, Issue Of Data Clock (clock data-set version number) |
| sva | int32_t | SV accuracy (URA index), see IS-GPS-200/IRN-IS-200H p.97 |
| svh | int32_t | SV health for GPS/QZS (0 = ok) |
| week | int32_t | Ephemeris reference week number: GPS week for GPS/QZS, Galileo week (GST week) for GAL |
| code | int32_t | GPS/QZS: code on L2 (00 = invalid, 01 = P-code on, 11 = C/A-code on, 11 = invalid). GAL/CMP (BeiDou): data source indicator |
| flag | int32_t | GPS/QZS: L2 P-code data flag (nonzero indicates the NAV data stream is commanded OFF on the P-code of the L2 in-phase component). CMP (BeiDou): nav message type |
| toe | gtime_t | Time Of Ephemeris: ephemeris reference epoch (GPST) |
| toc | gtime_t | Clock data reference time (GPST), see IS-GPS-200 20.3.4.5 |
| ttr | gtime_t | Transmission time of the message, T_trans (GPST) |
| A | double | Orbit semi-major axis (m) |
| e | double | Orbit eccentricity (dimensionless) |
| i0 | double | Orbit inclination angle at reference time (rad) |
| OMG0 | double | Longitude of ascending node of orbit plane at the weekly epoch (rad) |
| omg | double | Argument of perigee (rad) |
| M0 | double | Mean anomaly at reference time (rad) |
| deln | double | Mean motion difference from computed value, delta-n (rad/s) |
| OMGd | double | Rate of right ascension / longitude of ascending node, OMEGA-dot (rad/s) |
| idot | double | Rate of inclination angle, i-dot (rad/s) |
| crc | double | Amplitude of the cosine harmonic correction term to the orbit radius (m) |
| crs | double | Amplitude of the sine harmonic correction term to the orbit radius (m) |
| cuc | double | Amplitude of the cosine harmonic correction term to the argument of latitude (rad) |
| cus | double | Amplitude of the sine harmonic correction term to the argument of latitude (rad) |
| cic | double | Amplitude of the cosine harmonic correction term to the angle of inclination (rad) |
| cis | double | Amplitude of the sine harmonic correction term to the angle of inclination (rad) |
| toes | double | Time Of Ephemeris in seconds within the week (s), the double-precision counterpart of toe above. toe is computed as eph->toe = gst2time(week, eph->toes); this value is the ephemeris expiration reference and is generally ~2 hours ahead of the current time |
| fit | double | Curve-fit interval (h) (0 = 4 hours, 1 = greater than 4 hours) |
| f0 | double | SV clock bias, af0 (s) |
| f1 | double | SV clock drift, af1 (s/s, dimensionless) |
| f2 | double | SV clock drift rate, af2 (s/s^2) |
| tgd | double[4] | Group delay parameters. GPS/QZS: tgd[0] = TGD (IRN-IS-200H p.103). Galileo: tgd[0] = BGD E5a/E1, tgd[1] = BGD E5b/E1. BeiDou: tgd[0] = BGD1, tgd[1] = BGD2 |
| Adot | double | Semi-major axis rate, A-dot, for CNAV messages; not used |
| ndot | double | First derivative of mean motion n (equivalently second derivative of mean anomaly M), n-dot, for CNAV messages (rad/s^2); not used |
GLONASS Ephemeris¶
geph_t
| Field | Type | Description |
|---|---|---|
| sat | int32_t | Satellite number in RTKLIB notation. GPS: 1-32, GLONASS: 33-59, Galileo: 60-89, SBAS: 90-95 |
| iode | int32_t | IODE, derived from bits 0-6 of the tb (time interval index) field |
| frq | int32_t | Satellite frequency channel number (GLONASS FDMA slot, -7..+13) |
| svh | int32_t | Satellite health flag |
| sva | int32_t | Satellite accuracy (URA-like indicator) |
| age | int32_t | Satellite age of operation (days) |
| toe | gtime_t | Ephemeris reference epoch within the week, GPS time system (GPST) |
| tof | gtime_t | Message frame transmission time, GPS time system (GPST) |
| pos | double[3] | Satellite position at toe (ECEF) (m) |
| vel | double[3] | Satellite velocity at toe (ECEF) (m/s) |
| acc | double[3] | Satellite (luni-solar) acceleration at toe (ECEF) (m/s^2) |
| taun | double | SV clock bias, -tau_n (s) |
| gamn | double | Relative frequency bias, gamma_n (dimensionless, s/s) |
| dtaun | double | Time delay between the L1 and L2 signal transmissions (s) |
SBAS¶
sbsmsg_t
| Field | Type | Description |
|---|---|---|
| week | int32_t | GPS week number of message reception |
| tow | int32_t | Time of week of message reception (s) |
| prn | int32_t | SBAS satellite PRN number |
| msg | uint8_t[29] | Raw SBAS message payload (226 bits), zero-padded to 29 bytes |
| reserved | uint8_t[3] | Reserved/unused (padding for alignment) |
Station Parameters¶
sta_t
| Field | Type | Description |
|---|---|---|
| deltype | int32_t | Antenna delta (offset) type: 0 = e/n/u (east/north/up), 1 = x/y/z (ECEF) |
| pos | double[3] | Station reference position (ECEF) (m) |
| del | double[3] | Antenna position delta from the station reference position, interpreted per deltype: e/n/u or x/y/z (m) |
| hgt | double | Antenna height above the marker/reference point (m) |
| stationId | int32_t | Station identifier (e.g. RTCM/RINEX station ID) |
Satellite Observation¶
obs_t
| Field | Type | Description |
|---|---|---|
| n | uint32_t | Number of observation slots currently used (valid entries in data[]) |
| nmax | uint32_t | Number of observation slots allocated in data[] |
| data | obsd_t | Pointer to the observation data buffer, an array of obsd_t records |
Satellite information¶
gnss_sat_sv_t
| Field | Type | Description |
|---|---|---|
| gnssId | uint8_t | GNSS constellation identifier (see eSatSvGnssId) |
| svId | uint8_t | Satellite identifier (PRN/slot number, meaning depends on gnssId) |
| elev | int8_t | Elevation, in degrees (range: ±90) |
| azim | int16_t | Azimuth, in degrees (range: ±180) |
| cno | uint8_t | Carrier to noise ratio (signal strength), in dBHz |
| status | uint16_t | Satellite status bitflags (see eSatSvStatus) |
Inertial Measurement Unit (IMU)¶
imui_t
| Field | Type | Description |
|---|---|---|
| pqr | float[3] | Gyroscope P, Q, R (angular rate about body X, Y, Z) in radians/second |
| acc | float[3] | Acceleration X, Y, Z in meters/second^2, in body frame |
Configuration¶
DID_FLASH_CONFIG¶
nvm_flash_cfg_t
| Field | Type | Description |
|---|---|---|
| size | uint32_t | Size of group or union, which is nvm_group_x_t + padding |
| checksum | uint32_t | Checksum, excluding size and checksum. 0xFFFFFFFF is invalid. |
| key | uint32_t | Manufacturer method for restoring flash defaults |
| startupImuDtMs | uint32_t | (ms) IMU sample (system input) period set on startup. Cannot be larger than startupNavDtMs. Zero disables sensor/IMU sampling. |
| startupNavDtMs | uint32_t | (ms) Navigation filter (system output) output period set on startup. Used to initialize sysParams.navOutputPeriodMs. |
| ser0BaudRate | uint32_t | (bps) Serial port 0 baud rate |
| ser1BaudRate | uint32_t | (bps) Serial port 1 baud rate |
| insRotation | float[3] | (rad) Rotation about the X,Y,Z axes from Sensor Frame to Intermediate Output Frame. Order applied: Z,Y,X. |
| insOffset | float[3] | (m) X,Y,Z offset from Intermediate Output Frame to INS Output Frame. |
| gnss1AntOffset | float[3] | (m) X,Y,Z offset in Sensor Frame to GNSS 1 antenna. |
| dynamicModel | uint8_t | INS dynamic platform model (see eDynamicModel). Options are: 0=PORTABLE, 2=STATIONARY, 3=PEDESTRIAN, 4=GROUND VEHICLE, 5=SEA, 6=AIRBORNE_1G, 7=AIRBORNE_2G, 8=AIRBORNE_4G, 9=WRIST. Used to balance noise and performance characteristics of the system. The dynamics selected here must be at least as fast as your system or you experience accuracy error. This is tied to the GNSS position estimation model and intend in the future to be incorporated into the INS position model. |
| debug | uint8_t | Debug |
| gnssSatSigConst | uint16_t | Satellite system constellation used in GNSS solution (see eGnssSatSigConst). 0x0003=GPS, 0x000C=QZSS, 0x0030=Galileo, 0x00C0=Beidou, 0x0300=GLONASS, 0x1000=SBAS |
| sysCfgBits | uint32_t | System configuration bits (see eSysConfigBits). |
| refLla | double[3] | (deg, deg, m) Reference latitude, longitude and height above ellipsoid for north east down (NED) calculations |
| lastLla | double[3] | (deg, deg, m) Last latitude, longitude, HAE (height above ellipsoid) used to aid GNSS startup. Updated when the distance between current LLA and lastLla exceeds lastLlaUpdateDistance. |
| lastLlaTimeOfWeekMs | uint32_t | (ms) Last LLA GPS time since week start (Sunday morning) |
| lastLlaWeek | uint32_t | Last LLA GPS number of weeks since January 6th, 1980 |
| lastLlaUpdateDistance | float | (m) Distance between current and last LLA that triggers an update of lastLla |
| ioConfig | uint32_t | Hardware interface configuration bits (see eIoConfig). |
| platformConfig | uint32_t | Hardware platform specifying the IMX carrier board type (i.e. RUG, EVB, IG) and configuration bits (see ePlatformConfig). The platform type is used to simplify the GNSS and I/O configuration process. Bit PLATFORM_CFG_UPDATE_IO_CONFIG is excluded from the flashConfig checksum and from determining whether to upload. |
| gnss2AntOffset | float[3] | (m) X,Y,Z offset in Sensor Frame origin to GNSS 2 antenna. |
| zeroVelRotation | float[3] | (rad) Euler (roll, pitch, yaw) rotation from INS Sensor Frame to Intermediate ZeroVelocity Frame. Order applied: heading, pitch, roll. |
| zeroVelOffset | float[3] | (m) X,Y,Z offset from Intermediate ZeroVelocity Frame to Zero Velocity Frame. |
| gnssTimeUserDelay | float | (sec) User defined delay for GPS time. This parameter can be used to account for GNSS antenna cable delay. |
| magDeclination | float | (rad) Earth magnetic field (magnetic north) declination (heading offset from true north) |
| gnssTimeSyncPeriodMs | uint32_t | (ms) Time between GPS time synchronization pulses. Requires reboot to take effect. |
| startupGnssDtMs | uint32_t | (ms) GNSS measurement (system input) update period set on startup. 200ms minimum (5Hz max). |
| RTKCfgBits | uint32_t | RTK configuration bits (see eRTKConfigBits). |
| sensorConfig | uint32_t | Sensor config to specify the full-scale sensing ranges and output rotation for the IMU and magnetometer (see eSensorConfig) |
| gnssMinimumElevation | float | (rad) Minimum elevation of a satellite above the horizon to be used in the solution. Low elevation satellites may provide degraded accuracy, due to the long signal path through the atmosphere. |
| ser2BaudRate | uint32_t | (bps) Serial port 2 baud rate |
| wheelConfig | wheel_config_t | Wheel encoder: euler angles describing the rotation from imu to left wheel, plus track width/radius and config bits (see eWheelCfgBits) |
| magInterferenceThreshold | float | Magnetometer interference sensitivity threshold. Typical range is 2-10 (3 default) and 1000 to disable mag interference detection. |
| magCalibrationQualityThreshold | float | Magnetometer calibration quality sensitivity threshold. Typical range is 10-20 (10 default) and 1000 to disable mag calibration quality check, forcing it to be always good. |
| gnssCn0Minimum | uint8_t | (dBHz) GNSS CN0 absolute minimum threshold for signals. Used to filter signals in RTK solution. |
| gnssCn0DynMinOffset | uint8_t | (dBHz) GNSS CN0 dynamic minimum threshold offset below max CN0 across all satellites. Used to filter signals used in RTK solution. To disable, set gnssCn0DynMinOffset to zero and increase gnssCn0Minimum. |
| imuRejectThreshGyroLow | uint8_t | IMU gyro fault rejection threshold low |
| imuRejectThreshGyroHigh | uint8_t | IMU gyro fault rejection threshold high |
| imuShockDetectLatencyMs | uint8_t | (ms) IMU shock detection latency. Time used for EKF rewind to prevent shock from influencing EKF estimates. |
| imuShockRejectLatchMs | uint8_t | (ms) IMU shock rejection latch time. Time required following detected shock end to disable shock rejection. |
| imuShockOptions | uint8_t | IMU shock rejection options (see eImuShockOptions) |
| imuShockDeltaAccHighThreshold | uint8_t | (m/s^2) IMU shock detection. Min acceleration difference between the 3 IMUs to detect the start of a shock. |
| imuShockDeltaAccLowThreshold | uint8_t | (m/s^2) IMU shock detection. Max acceleration difference between the 3 IMUs within the latch time to detect the end of a shock. |
| imuShockDeltaGyroHighThreshold | uint8_t | (deg/s) IMU shock detection. Min angular rate difference between the 3 IMUs to detect the start of a shock. |
| imuShockDeltaGyroLowThreshold | uint8_t | (deg/s) IMU shock detection. Max angular rate difference between the 3 IMUs within the latch time to detect the end of a shock. |
| ioConfig2 | uint8_t | Hardware interface configuration bits for GNSS2 PPS (see eIoConfig2). |
DID_NMEA_BCAST_PERIOD¶
nmea_msgs_t
| Field | Type | Description |
|---|---|---|
| options | uint32_t | Options: Port selection[0x0=current, 0x1=ser0, 0x2=ser1, 0x4=ser2, 0x8=USB, 0x100=preserve, 0x200=Persistent] (see RMC_OPTIONS_...) |
| nmeaBroadcastMsgs | nmeaBroadcastMsgPair_t[20] | NMEA message to be set. Up to 20 message ID/period pairs. Message ID of zero indicates the remaining pairs are not used. (see eNmeaMsgId) |
DID_RMC¶
rmc_t
| Field | Type | Description |
|---|---|---|
| bits | uint64_t | Data stream enable bits for the specified ports (see RMC_BITS_...) |
| options | uint32_t | Options to select alternate ports to output data, persist across reboot, NMEA speed filtering, etc. (see RMC_OPTIONS_...) |
Command¶
DID_SYS_CMD¶
is the bitwise inverse of command and must be sent in the same write for the command to be processed.
system_command_t
| Field | Type | Description |
|---|---|---|
| command | uint32_t | System command (see eSystemCommand) 1=save current persistent messages, 5=zero motion, 97=save flash, 99=software reset. "invCommand" (following variable) must be set to bitwise inverse of this value for this command to be processed. |
| invCommand | uint32_t | Error checking field that must be set to bitwise inverse of command field for the command to take effect. |
EVB-2¶
DID_EVB_FLASH_CFG¶
EVB configuration.
evb_flash_cfg_t
| Field | Type | Description |
|---|---|---|
| size | uint32_t | Size of this struct |
| checksum | uint32_t | Checksum, excluding size and checksum |
| key | uint32_t | Manufacturer method for restoring flash defaults |
| cbPreset | uint8_t | Communications bridge preset (see eEvb2ComBridgePreset) |
| reserved1 | uint8_t[3] | Reserved for 32-bit alignment |
| cbf | uint32_t[EVB2_PORT_COUNT] | Communications bridge forwarding, indexed by eEvb2CommPorts |
| cbOptions | uint32_t | Communications bridge options (see eEvb2ComBridgeOptions) |
| bits | uint32_t | Config bits (see eEvbFlashCfgBits) |
| radioPID | uint32_t | Radio preamble ID (PID), 0x0 to 0x9. Only radios with matching PIDs can communicate together. Different PIDs minimize interference between multiple sets of networks. Checked before the network ID. |
| radioNID | uint32_t | Radio network ID (NID), 0x0 to 0x7FFF. Only radios with matching NID can communicate together. Checked after the preamble ID. |
| radioPowerLevel | uint32_t | Radio transmitter output power level (XBee PRO SX 0=20dBm, 1=27dBm, 2=30dBm) |
| wifi | evb_wifi_t[3] | WiFi SSID and PSK presets |
| server | evb_server_t[3] | Server IP and port presets |
| encoderTickToWheelRad | float | (rad) Encoder tick to wheel rotation conversion factor. Encoder tick count per revolution on 1 channel x gear ratio x 2pi. |
| CANbaud_kbps | uint32_t | (kbps) CAN baudrate |
| can_receive_address | uint32_t | CAN receive address |
| uinsComPort | uint8_t | EVB port for uINS communications and SD card logging. 0=uINS-Ser0 (default), 1=uINS-Ser1, SP330=5, 6=GPIO_H8 (use eEvb2CommPorts) |
| uinsAuxPort | uint8_t | EVB port for uINS aux com and RTK corrections. 0=uINS-Ser0, 1=uINS-Ser1 (default), 5=SP330, 6=GPIO_H8 (use eEvb2CommPorts) |
| reserved2 | uint8_t[2] | Reserved to ensure 32-bit alignment |
| portOptions | uint32_t | Enable radio RTK filtering, etc. (see eEvb2PortOptions) |
| h3sp330BaudRate | uint32_t | (bps) Baud rate for EVB serial port H3 (SP330 RS233 and RS485/422) |
| h4xRadioBaudRate | uint32_t | (bps) Baud rate for EVB serial port H4 (TTL to external radio) |
| h8gpioBaudRate | uint32_t | (bps) Baud rate for EVB serial port H8 (TTL) |
| wheelCfgBits | uint32_t | Wheel encoder configuration (see eWheelCfgBits) |
| velocityControlPeriodMs | uint32_t | (ms) Wheel update period. Sets the wheel encoder and control update period. |
DID_EVB_STATUS¶
evb_status_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) |
| firmwareVer | uint8_t[4] | Firmware (software) version |
| evbStatus | uint32_t | Status (see eEvbStatus) |
| loggerMode | uint32_t | Data logger control state (see eEvb2LoggerMode) |
| loggerElapsedTimeMs | uint32_t | (ms) Elapsed time of the current data log |
| wifiIpAddr | uint32_t | WiFi IP address |
| sysCommand | uint32_t | System command (see eSystemCommand). 99 = software reset |
| towOffset | double | (s) Time sync offset between local time since boot up to GPS time of week. Add this to IMU and sensor time to get GPS time of week in seconds. |
General¶
DID_BIT¶
bit_t
| Field | Type | Description |
|---|---|---|
| command | uint8_t | BIT input command (see eBitCommand). Ignored when zero. |
| lastCommand | uint8_t | BIT last input command (see eBitCommand) |
| state | uint8_t | BIT current state (see eBitState) |
| reserved | uint8_t | Unused |
| hdwBitStatus | uint32_t | Hardware BIT status (see eHdwBitStatusFlags) |
| calBitStatus | uint32_t | Calibration BIT status (see eCalBitStatusFlags) |
| tcPqrBias | float | (rad/s) Gyro bias residual from temperature calibration |
| tcAccBias | float | (m/s^2) Accelerometer bias residual from temperature calibration |
| tcPqrSlope | float | (rad/s per deg C) Gyro temperature-compensation slope error |
| tcAccSlope | float | (m/s^2 per deg C) Accelerometer temperature-compensation slope error |
| tcPqrLinearity | float | (rad/s) Gyro temperature-compensation curve-fit linearity error |
| tcAccLinearity | float | (m/s^2) Accelerometer temperature-compensation curve-fit linearity error |
| pqr | float | (rad/s) Gyro angular rate error measured during BIT |
| acc | float | (m/s^2) Accelerometer error measured during BIT |
| pqrSigma | float | (rad/s) Standard deviation of the gyro angular rate error, over the BIT sample window |
| accSigma | float | (m/s^2) Standard deviation of the accelerometer error, over the BIT sample window |
| testMode | uint8_t | Self-test/fault-simulation mode (see eBitTestMode) |
| testVar | uint8_t | Self-test mode bi-directional variable used with testMode |
| detectedHardwareId | uint16_t | Detected hardware type (see "Product Hardware ID"), used to ensure correct firmware is used |
DID_CANFD_CONFIG¶
CAN FD configuration: FD message broadcast rates, transmit addresses, and baud rate. Shares the same data structure as DID_CAN_CONFIG.
can_config_t
| Field | Type | Description |
|---|---|---|
| can_period_mult | uint16_t[] | Broadcast period multiple for each CAN message. 0 disables the message. Indices 0..NUM_CIDS-1 correspond to classic can_cid_t values. In CAN-FD mode the same array is reused: indices 0..NUM_FDCIDS-1 correspond to canfd_cid_t values (FDCID_INS_1=0, FDCID_INS_2=1, …). NUM_FDCIDS < NUM_CIDS so there is no overlap. |
| can_transmit_address | uint32_t[] | Transmit address for each CAN message. Indices 0..NUM_CIDS-1 correspond to classic can_cid_t values. In CAN-FD mode indices 0..NUM_FDCIDS-1 correspond to canfd_cid_t values and are validated / defaulted by CAN_init() when FD is enabled. |
| can_setting | uint16_t | Baud rate (kbps) (See can_baudrate_t for valid baud rates). Bit 15 (CAN_BAUDRATE_KBPS_FD_ENABLE) enables CAN-FD on capable hardware. |
| can_receive_address | uint32_t | Receive address |
DID_CAN_CONFIG¶
Addresses for CAN messages
can_config_t
| Field | Type | Description |
|---|---|---|
| can_period_mult | uint16_t[] | Broadcast period multiple for each CAN message. 0 disables the message. Indices 0..NUM_CIDS-1 correspond to classic can_cid_t values. In CAN-FD mode the same array is reused: indices 0..NUM_FDCIDS-1 correspond to canfd_cid_t values (FDCID_INS_1=0, FDCID_INS_2=1, …). NUM_FDCIDS < NUM_CIDS so there is no overlap. |
| can_transmit_address | uint32_t[] | Transmit address for each CAN message. Indices 0..NUM_CIDS-1 correspond to classic can_cid_t values. In CAN-FD mode indices 0..NUM_FDCIDS-1 correspond to canfd_cid_t values and are validated / defaulted by CAN_init() when FD is enabled. |
| can_setting | uint16_t | Baud rate (kbps) (See can_baudrate_t for valid baud rates). Bit 15 (CAN_BAUDRATE_KBPS_FD_ENABLE) enables CAN-FD on capable hardware. |
| can_receive_address | uint32_t | Receive address |
DID_DEV_INFO¶
dev_info_t
| Field | Type | Description |
|---|---|---|
| reserved | uint8_t | Reserved bits |
| buildFlags | uint8_t | Build flags: 0x1=debug mode, 0x2=dirty (see eBuildFlags) |
| hardwareType | uint8_t | Hardware Type: 1=uINS, 2=EVB, 3=IMX, 4=GPX (see eIsHardwareType) |
| hdwRunState | uint8_t | Device Run State: Bootloader, App, etc (see eHdwRunStates) |
| serialNumber | uint32_t | Serial number |
| hardwareVer | uint8_t[3] | Hardware version: [0]=major, [1]=minor, [2]=pcb/a revision |
| hardwareVariant | uint8_t | Hardware variant; an arbitrary number independent of version that identifies some variation of the hardware; most commonly, IMU population type on IMX-6 (see eImx6ImuPopulationType) |
| firmwareVer | uint8_t[4] | Firmware (software) version |
| buildNumber | uint32_t | Build number |
| protocolVer | uint8_t[4] | Communications protocol version |
| repoRevision | uint32_t | Repository revision number |
| manufacturer | char[24] | Manufacturer name |
| buildType | uint8_t | Build type (0=production, 'c'=release candidate, 'b'=beta, 'a'=alpha, 'd'=developer, 's'=snapshot, '^'=dirty) |
| buildYear | uint8_t | Build date year - 2000 |
| buildMonth | uint8_t | Build date month |
| buildDay | uint8_t | Build date day |
| buildHour | uint8_t | Build time hour |
| buildMinute | uint8_t | Build time minute |
| buildSecond | uint8_t | Build time second |
| buildMillisecond | uint8_t | Build time millisecond |
| addInfo | char[24] | Additional info |
DID_DIAGNOSTIC_MESSAGE¶
Diagnostic message
diag_msg_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning), in milliseconds |
| messageLength | uint32_t | Message length, including null terminator, in bytes |
| message | char[256] | Message data (null-terminated string); max size of message is 256 bytes |
DID_EVB_DEBUG_ARRAY¶
debug_array_t
| Field | Type | Description |
|---|---|---|
| i | int32_t[9] | Debug integer values, meaning defined by current firmware debug build |
| f | float[9] | Debug float values, meaning defined by current firmware debug build |
| lf | double[3] | Debug double (long float) values, meaning defined by current firmware debug build |
DID_EVB_DEV_INFO¶
EVB device information
dev_info_t
| Field | Type | Description |
|---|---|---|
| reserved | uint8_t | Reserved bits |
| buildFlags | uint8_t | Build flags: 0x1=debug mode, 0x2=dirty (see eBuildFlags) |
| hardwareType | uint8_t | Hardware Type: 1=uINS, 2=EVB, 3=IMX, 4=GPX (see eIsHardwareType) |
| hdwRunState | uint8_t | Device Run State: Bootloader, App, etc (see eHdwRunStates) |
| serialNumber | uint32_t | Serial number |
| hardwareVer | uint8_t[3] | Hardware version: [0]=major, [1]=minor, [2]=pcb/a revision |
| hardwareVariant | uint8_t | Hardware variant; an arbitrary number independent of version that identifies some variation of the hardware; most commonly, IMU population type on IMX-6 (see eImx6ImuPopulationType) |
| firmwareVer | uint8_t[4] | Firmware (software) version |
| buildNumber | uint32_t | Build number |
| protocolVer | uint8_t[4] | Communications protocol version |
| repoRevision | uint32_t | Repository revision number |
| manufacturer | char[24] | Manufacturer name |
| buildType | uint8_t | Build type (0=production, 'c'=release candidate, 'b'=beta, 'a'=alpha, 'd'=developer, 's'=snapshot, '^'=dirty) |
| buildYear | uint8_t | Build date year - 2000 |
| buildMonth | uint8_t | Build date month |
| buildDay | uint8_t | Build date day |
| buildHour | uint8_t | Build time hour |
| buildMinute | uint8_t | Build time minute |
| buildSecond | uint8_t | Build time second |
| buildMillisecond | uint8_t | Build time millisecond |
| addInfo | char[24] | Additional info |
DID_EVB_RTOS_INFO¶
sizes the task[] array and is not itself a task ID.
evb_rtos_info_t
| Field | Type | Description |
|---|---|---|
| freeHeapSize | uint32_t | Heap high water mark, in free bytes remaining (lowest historical value) |
| mallocSize | uint32_t | Total memory allocated using RTOS pvPortMalloc(), in bytes |
| freeSize | uint32_t | Total memory freed using RTOS vPortFree(), in bytes |
| task | rtos_task_t[] | Per-task status/profiling info, indexed by eEvbRtosTask |
DID_EVENT¶
did_event_t
| Field | Type | Description |
|---|---|---|
| time | double | Time (uptime in seconds) |
| senderSN | uint32_t | Serial number of the device that generated this event |
| senderHdwId | uint16_t | Hardware type of the sender: 0=Host, 1=uINS, 2=EVB, 3=IMX, 4=GPX (see "Product Hardware ID") |
| priority | int8_t | Event priority/severity (see eEventPriority) |
| res8 | uint8_t | Reserved for byte alignment |
| msgTypeID | uint16_t | Type/format of the payload in data[] (see eEventMsgTypeID) |
| length | uint16_t | Number of valid payload bytes in data[] |
| data | uint8_t[1] | Variable-length payload, length bytes; interpretation depends on msgTypeID |
DID_EVENT_HEADER_SIZE¶
did_event_t
| Field | Type | Description |
|---|---|---|
| time | double | Time (uptime in seconds) |
| senderSN | uint32_t | Serial number of the device that generated this event |
| senderHdwId | uint16_t | Hardware type of the sender: 0=Host, 1=uINS, 2=EVB, 3=IMX, 4=GPX (see "Product Hardware ID") |
| priority | int8_t | Event priority/severity (see eEventPriority) |
| res8 | uint8_t | Reserved for byte alignment |
| msgTypeID | uint16_t | Type/format of the payload in data[] (see eEventMsgTypeID) |
| length | uint16_t | Number of valid payload bytes in data[] |
| data | uint8_t[1] | Variable-length payload, length bytes; interpretation depends on msgTypeID |
DID_EXT_AIDING_ATTITUDE¶
ext_aiding_attitude_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | Attitude representation, 1=euler, 2=quaternion (see eExtAidingAttitudeType) |
| att | float[4] | attitude, interpreted per status: euler {roll,pitch,yaw,-} or quaternion {w,x,y,z} |
| var | float[9] | 3x3 row-major attitude-error covariance (rad^2), in the roll/pitch/yaw tangent space. Must have a non-zero diagonal or the observation is discarded. |
DID_EXT_AIDING_DIR_SPEED¶
ext_aiding_dir_speed_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | reserved, set to 0 |
| speed | float | speed along direction (m/s) |
| var | float | observation variance (m2/s2). Must be non-zero or the observation is discarded. |
| offset | float[3] | point of measurement relative to IMU origin in IMU/body frame {x,y,z} (m) |
| direction | float[3] | unit vector, in IMU/body frame, along which speed is measured (e.g. [1,0,0] for forward-pointing airspeed) |
DID_EXT_AIDING_HEADING¶
ext_aiding_heading_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | Heading type, 1=true, 2=magnetic, 3=course over ground (see eExtAidingHeadingType) |
| heading | float | heading (rad), 0 = north, positive clockwise, range [-pi, pi] |
| var | float | observation variance (rad^2). Must be non-zero or the observation is discarded. |
DID_EXT_AIDING_POS¶
ext_aiding_pos_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | Frame of measurement, 1=ECEF, 2=NED (see eExtAidingFrame) |
| pos | double[3] | position {x,y,z} (m) |
| offset | float[3] | point of measurement relative to IMU origin in IMU/body frame {x,y,z} (m) |
| var | float[3] | observation variance, per axis, in NED (m^2). Must be non-zero or the observation is discarded. |
DID_EXT_AIDING_SPEED¶
ext_aiding_speed_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | Speed type, 1=3D magnitude, 2=horizontal magnitude (see eExtAidingSpeedType) |
| speed | float | speed (m/s) |
| var | float | observation variance (m2/s2). Must be non-zero or the observation is discarded. |
| offset | float[3] | point of measurement relative to IMU origin in IMU/body frame {x,y,z} (m) |
DID_EXT_AIDING_VEL¶
ext_aiding_vel_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| status | uint32_t | Frame of measurement, 1=ECEF, 2=NED, 3=Body (see eExtAidingFrame) |
| vel | float[3] | velocity {vx,vy,vz} (m/s) |
| offset | float[3] | point of measurement relative to IMU origin in IMU/body frame {x,y,z} (m) |
| var | float[3] | observation variance, per axis, in NED (m2/s2). Must be non-zero or the observation is discarded. |
DID_EXT_IMU¶
imu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMU status flags (eImuStatus) |
| I | imui_t | Combined Inertial Measurement Unit (IMU) sample: angular rate and acceleration |
DID_GNSS1_SIG¶
gnss_sig_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| numSigs | uint32_t | Number of satellite signals in the following satellite signal list (valid entries in sig[] below) |
| sig | gnss_sig_sv_t[160] | Per-signal tracking information list |
DID_GNSS1_TIMESYNC¶
GNSS1 PPS time synchronization.
gnss_timepulse_t
| Field | Type | Description |
|---|---|---|
| towOffset | double | Week seconds offset from MCU to GPS time, in seconds |
| towGps | double | Week seconds for next timepulse (from start of GPS week), in seconds |
| timeMcu | double | Local MCU week seconds, in seconds |
| msgTimeMs | uint32_t | Local timestamp of TIM-TP message used to validate timepulse, in milliseconds |
| plsTimeMs | uint32_t | Local timestamp of time sync pulse external interrupt used to validate timepulse, in milliseconds |
| syncCount | uint8_t | Counter for successful timesync events |
| badPulseAgeCount | uint8_t | Counter for failed timesync events |
| ppsInterruptReinitCount | uint8_t | Counter for GNSS PPS interrupt re-initialization |
| plsCount | uint8_t | Counter of GNSS PPS via GPIO, not interrupt |
| lastSyncTimeMs | uint32_t | Local timestamp of last valid PPS sync, in milliseconds |
| sinceLastSyncTimeMs | uint32_t | Time since last valid PPS sync, in milliseconds |
DID_GNSS2_SIG¶
GNSS 2 signal information.
gnss_sig_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| numSigs | uint32_t | Number of satellite signals in the following satellite signal list (valid entries in sig[] below) |
| sig | gnss_sig_sv_t[160] | Per-signal tracking information list |
DID_GNSS2_TIMESYNC¶
GNSS2 PPS time synchronization.
gnss_timepulse_t
| Field | Type | Description |
|---|---|---|
| towOffset | double | Week seconds offset from MCU to GPS time, in seconds |
| towGps | double | Week seconds for next timepulse (from start of GPS week), in seconds |
| timeMcu | double | Local MCU week seconds, in seconds |
| msgTimeMs | uint32_t | Local timestamp of TIM-TP message used to validate timepulse, in milliseconds |
| plsTimeMs | uint32_t | Local timestamp of time sync pulse external interrupt used to validate timepulse, in milliseconds |
| syncCount | uint8_t | Counter for successful timesync events |
| badPulseAgeCount | uint8_t | Counter for failed timesync events |
| ppsInterruptReinitCount | uint8_t | Counter for GNSS PPS interrupt re-initialization |
| plsCount | uint8_t | Counter of GNSS PPS via GPIO, not interrupt |
| lastSyncTimeMs | uint32_t | Local timestamp of last valid PPS sync, in milliseconds |
| sinceLastSyncTimeMs | uint32_t | Time since last valid PPS sync, in milliseconds |
DID_GPX_BIT¶
gpx_bit_t
| Field | Type | Description |
|---|---|---|
| results | uint32_t | GPX built-in test status (see eGPXBit_results) |
| command | uint8_t | Command (see eGPXBit_CMD) |
| port | uint8_t | Port used with the test |
| testMode | uint8_t | Self-test mode (see eGPXBit_test_mode) |
| state | uint8_t | Built-in self-test state (see eGPXBit_state) |
| detectedHardwareId | uint16_t | The hardware ID detected (see "Product Hardware ID"). This is used to ensure correct firmware is used. |
| reserved | uint8_t[2] | Unused |
DID_GPX_DEBUG_ARRAY¶
debug_array_t
| Field | Type | Description |
|---|---|---|
| i | int32_t[9] | Debug integer values, meaning defined by current firmware debug build |
| f | float[9] | Debug float values, meaning defined by current firmware debug build |
| lf | double[3] | Debug double (long float) values, meaning defined by current firmware debug build |
DID_GPX_PORT_MONITOR¶
Data rate and status monitoring for each communications port.
port_monitor_t
| Field | Type | Description |
|---|---|---|
| port | port_stats_t[6] | Per-port data rate and status statistics, one entry per communications port (see port_stats_t) |
| activePorts | uint8_t | Number of ports in the port[] array. FIXME: This should be moved to BEFORE the port definition, so on the receiving end, we know how many ports to expect. |
DID_GPX_RTOS_INFO¶
gpx_rtos_info_t
| Field | Type | Description |
|---|---|---|
| freeHeapSize | uint32_t | Heap high water mark, in free bytes remaining (lowest historical value) |
| mallocSize | uint32_t | Total memory allocated using RTOS pvPortMalloc(), in bytes |
| freeSize | uint32_t | Total memory freed using RTOS vPortFree(), in bytes |
| task | rtos_task_t[] | Per-task status/profiling info, indexed by eGpxRtosTask |
DID_GPX_SYS_FAULT¶
System fault information. This is broadcast automatically every 10s if a critical fault is detected.
system_fault_t
| Field | Type | Description |
|---|---|---|
| upTime | uint32_t | Time of fault, uptime in milliseconds |
| status | uint32_t | System fault status (see eSysFaultStatus) |
| fileNum | uint32_t | File number (source file identifier) where the fault occurred |
| lineNum | uint32_t | Line number within the file where the fault occurred |
| haltReason | uint32_t | Zephyr halt reason code |
| lr | uint32_t | Link register value at time of fault |
| pc | uint32_t | Program Counter value at time of fault |
| psr | uint32_t | Program Status Register value at time of fault |
| taskALastFeed | uint32_t | Milliseconds since task A last ran |
| taskBLastFeed | uint32_t | Milliseconds since task B last ran |
| wdtLastFeed | uint32_t | Milliseconds since the watchdog timer was last fed |
| var0 | uint32_t | Multi-purpose register 0, fault-specific diagnostic value |
| var1 | uint32_t | Multi-purpose register 1, fault-specific diagnostic value |
| var2 | uint32_t | Multi-purpose register 2, fault-specific diagnostic value |
| var3 | uint32_t | Multi-purpose register 3, fault-specific diagnostic value |
DID_GROUND_VEHICLE¶
ground_vehicle_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) |
| status | uint32_t | Ground vehicle status flags (see eGroundVehicleStatus) |
| mode | uint32_t | Current mode of the ground vehicle. Use this field to apply commands. (see eGroundVehicleMode) |
| wheelConfig | wheel_config_t | Wheel transform, track width, and wheel radius |
DID_IMUS_UNCAL¶
imus_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMUs status flags (eImusStatus) |
| I | imui_t[1] | Per-device Inertial Measurement Unit (IMU) samples: angular rate and acceleration |
DID_IMU_MAG¶
imu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMU status flags (eImuStatus) |
| I | imui_t | Combined Inertial Measurement Unit (IMU) sample: angular rate and acceleration |
DID_INFIELD_CAL¶
infield_cal_t
| Field | Type | Description |
|---|---|---|
| state | uint32_t | Used to set and monitor the state of the infield calibration system. (see eInfieldCalState) |
| status | uint32_t | Infield calibration status. (see eInfieldCalStatus) |
| sampleTimeMs | uint32_t | (ms) Number of samples used in IMU average. sampleTimeMs = 0 means "imu" member contains the IMU bias from flash. |
| imu | imui_t[1] | Dual purpose variable. 1.) This is the averaged IMU sample when sampleTimeMs != 0. 2.) This is a mirror of the motion calibration IMU bias from flash when sampleTimeMs = 0. |
| calData | infield_cal_vaxis_t[3] | Collected data used to solve for the bias error and INS rotation. Vertical axis: 0 = X, 1 = Y, 2 = Z |
DID_INL2_MAG_OBS_INFO¶
INL2 magnetometer calibration information.
inl2_mag_obs_info_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | (ms) GPS time of week |
| Ncal_samples | uint32_t | Number of calibration samples collected |
| ready | uint32_t | Data ready to be processed |
| calibrated | uint32_t | Calibration data present. Set to -1 to force mag recalibration. |
| auto_recal | uint32_t | Allow mag to auto-recalibrate |
| outlier | uint32_t | Bad sample data detected/rejected |
| magHdg | float | (rad) Heading from magnetometer |
| insHdg | float | (rad) Heading from INS |
| magInsHdgDelta | float | (rad) Difference between mag heading and (INS heading plus mag declination) |
| nis | float | Normalized innovation squared (likelihood metric) of the current mag heading update |
| nis_threshold | float | Threshold for maximum NIS, above which the mag update is rejected as an outlier |
| Wcal | float[9] | Magnetometer calibration matrix (row-major 3x3). Must be initialized with a unit matrix, not zeros! |
| activeCalSet | uint32_t | Active calibration set (0 or 1) |
| magHdgOffset | float | (rad) Offset between magnetometer heading and estimated heading |
| Tcal | float | Scaled computed variance between calibrated magnetometer samples |
| bias_cal | float[3] | (uT) Magnetometer calibration bias. Calibrated magnetometer output can be produced using: Bcal = Wcal * (Braw - bias_cal) |
DID_INL2_NED_SIGMA¶
inl2_ned_sigma_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | unsigned | (ms) GPS time of week (since Sunday morning) |
| StdPosNed | float[3] | (m) NED position error sigma |
| StdVelNed | float[3] | (m/s) NED velocity error sigma |
| StdAttNed | float[3] | (rad) NED attitude error sigma |
| StdAccBias | float[3] | (m/s^2) Acceleration bias error sigma |
| StdGyrBias | float[3] | (rad/s) Angular rate bias error sigma |
| StdBarBias | float | (m) Barometric altitude bias error sigma |
| StdMagDeclination | float | (rad) Mag declination error sigma |
DID_INL2_STATES¶
inl2_states_t
| Field | Type | Description |
|---|---|---|
| timeOfWeek | double | GPS time of week (since Sunday morning), in seconds |
| qe2b | float[4] | Quaternion body rotation with respect to ECEF: W, X, Y, Z |
| ve | float[3] | Velocity in ECEF frame, in meters/second |
| ecef | double[3] | Position in ECEF frame, in meters |
| biasPqr | float[3] | Gyro bias estimate, in radians/second |
| biasAcc | float[3] | Accelerometer bias estimate, in meters/second^2 |
| biasBaro | float | Barometer bias estimate (altitude), in meters |
| magDec | float | Magnetic declination estimate, in radians |
| magInc | float | Magnetic inclination estimate, in radians |
DID_INL2_STATUS¶
inl2_status_t
| Field | Type | Description |
|---|---|---|
| ahrs | int | Non-zero while the filter is running in AHRS-only mode (prior to full INS/GNSS navigation) |
| zero_accel | int | Non-zero when zero-acceleration condition is detected |
| zero_angrate | int | Non-zero when zero-angular-rate condition is detected |
| accel_motion | int | Non-zero when accelerometer-sensed motion is detected |
| rot_motion | int | Non-zero when rotational motion is detected |
| zero_vel | int | Non-zero when zero-velocity condition is detected |
| ahrs_gnss_cnt | int | Counter of sequential valid GNSS data (for switching from AHRS to navigation) |
| hdg_err | float | Estimated heading error, in radians |
| hdg_coarse | int | Flag whether a coarse (uncertain) initial heading has been established |
| hdg_aligned | int | Flag whether initial attitude error has converged (heading alignment complete) |
| hdg_aligning | int | Flag whether heading alignment is currently in progress |
| ekf_init_done | int | Hot EKF initialization completed |
| mag_cal_good | int | Flag whether the magnetometer calibration is good |
| mag_cal_done | int | Flag whether the magnetometer calibration process has completed |
| stat_magfield | int | Flag whether the magnetic field is stationary/consistent (suitable for mag calibration) |
DID_MANUFACTURING_INFO¶
manufacturing_info_t
| Field | Type | Description |
|---|---|---|
| serialNumber | uint32_t | Inertial Sense serial number |
| hardwareId | uint16_t | Hardware ID: packed identifier, encoding the Hardware Type, hardwareVer Major, and hardwareVer Minor (see ENCODE_HDW_ID/DECODE_HDW_TYPE macros) |
| lotNumber | uint16_t | Inertial Sense lot number |
| date | char[16] | Inertial Sense manufacturing date (YYYYMMDDHHMMSS) |
| key | uint32_t | Key - write: unlock manufacturing info, read: number of times OTP has been set, 15 max |
| platformType | int32_t | Platform / carrier board (ePlatformConfig::PLATFORM_CFG_TYPE_MASK). Only valid if greater than zero. |
| reserved | int32_t | Reserved |
| uid | uint32_t[4] | Microcontroller unique identifier, 128 bits for SAM / 96 for STM32 |
DID_PIMU_MAG¶
pimu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| dt | float | Integration period in seconds for delta theta and delta velocity. Configured using DID_FLASH_CONFIG.startupNavDtMs |
| status | uint32_t | IMU status flags (eImuStatus) |
| theta | float[3] | IMU delta theta: gyroscope {p,q,r} integral over dt, in radians, in sensor/body frame |
| vel | float[3] | IMU delta velocity: accelerometer {x,y,z} integral over dt, in meters/second, in sensor/body frame |
DID_PORT_MONITOR¶
port_monitor_t
| Field | Type | Description |
|---|---|---|
| port | port_stats_t[6] | Per-port data rate and status statistics, one entry per communications port (see port_stats_t) |
| activePorts | uint8_t | Number of ports in the port[] array. FIXME: This should be moved to BEFORE the port definition, so on the receiving end, we know how many ports to expect. |
DID_POSITION_MEASUREMENT¶
pos_measurement_t
| Field | Type | Description |
|---|---|---|
| timeOfWeek | double | GPS time of week (since Sunday morning), s |
| ecef | double[3] | Position in ECEF (earth-centered earth-fixed) frame, m |
| psi | float | Heading with respect to NED frame, rad |
| accuracyCovUD | float[6] | Upper Diagonal of the 3x3 position accuracy covariance matrix (indices: [0 1 2 / _ 3 4 / _ _ 5]) |
DID_REFERENCE_IMU¶
Raw reference or truth IMU used for manufacturing calibration and testing. Input from testbed.
imu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| status | uint32_t | IMU status flags (eImuStatus) |
| I | imui_t | Combined Inertial Measurement Unit (IMU) sample: angular rate and acceleration |
DID_REFERENCE_MAGNETOMETER¶
Reference or truth magnetometer used for manufacturing calibration and testing
magnetometer_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| mag | float[3] | Magnetometer X, Y, Z in microtesla (uT), in body frame |
DID_REFERENCE_PIMU¶
Reference or truth IMU used for manufacturing calibration and testing
pimu_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset |
| dt | float | Integration period in seconds for delta theta and delta velocity. Configured using DID_FLASH_CONFIG.startupNavDtMs |
| status | uint32_t | IMU status flags (eImuStatus) |
| theta | float[3] | IMU delta theta: gyroscope {p,q,r} integral over dt, in radians, in sensor/body frame |
| vel | float[3] | IMU delta velocity: accelerometer {x,y,z} integral over dt, in meters/second, in sensor/body frame |
DID_ROS_COVARIANCE_POSE_TWIST¶
INL2 EKF 6x6 covariance matrices packed in arrays containing their elements on main diagonal and below
ros_covariance_pose_twist_t
| Field | Type | Description |
|---|---|---|
| timeOfWeek | double | GPS time of week (since Sunday morning), in seconds |
| covPoseLD | float[21] | Lower-diagonal pose covariance (attitude rad^2, position m^2); see index layout above |
| covTwistLD | float[21] | Lower-diagonal twist covariance (velocity (m/s)^2, angular rate (rad/s)^2); see index layout above |
DID_RTOS_INFO¶
rtos_info_t
| Field | Type | Description |
|---|---|---|
| freeHeapSize | uint32_t | Heap high water mark, in free bytes remaining (lowest historical value) |
| mallocSize | uint32_t | Total memory allocated using RTOS pvPortMalloc(), in bytes |
| freeSize | uint32_t | Total memory freed using RTOS vPortFree(), in bytes |
| task | rtos_task_t[] | Per-task status/profiling info, indexed by eImxRtosTask |
DID_RUNTIME_PROFILER¶
System runtime profiler
runtime_profiler_t
| Field | Type | Description |
|---|---|---|
| p | runtime_profile_t[4] | Timing statistics for each profiled code section, RUNTIME_PROFILE_COUNT entries |
DID_SCOMP¶
sensor_compensation_v1p4_t
| Field | Type | Description |
|---|---|---|
| timeMs | uint32_t | Time since boot up, in milliseconds |
| pqr | sensor_comp_unit_t[NUM_IMU_DEVICES_V1P4] | Per-IMU gyro temperature-compensation state |
| acc | sensor_comp_unit_t[NUM_IMU_DEVICES_V1P4] | Per-IMU accelerometer temperature-compensation state |
| mag | sensor_comp_unit_t[NUM_MAG_DEVICES_V1P4] | Per-magnetometer temperature-compensation state |
| referenceImu | imui_t | Reference/truth IMU sample used during calibration |
| referenceMag | float[3] | (uT) Reference/truth magnetometer sample used during calibration |
| sampleCount | uint32_t | Number of samples collected for the current calibration state |
| calState | uint32_t | Current calibration state/step |
| status | uint32_t | Calibration status flags |
| alignAccel | float[3] | (m/s^2) Accelerometer reading used for alignment/leveling during calibration |
DID_SENSORS_ADC¶
sys_sensors_adc_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds |
| imu | sensors_imu_w_temp_t[1] | Per-device raw IMU (gyro/accel) + temperature samples |
| mag | sensors_mag_t[1] | Magnetometers |
| bar | float | Barometric pressure |
| barTemp | float | (°C) Temperature of barometric pressure sensor |
| humidity | float | Relative humidity as a percent (%rH). Range is 0% - 100% |
| ana | float[4] | ADC analog input |
DID_SENSORS_ADC_SIGMA¶
sys_sensors_adc_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds |
| imu | sensors_imu_w_temp_t[1] | Per-device raw IMU (gyro/accel) + temperature samples |
| mag | sensors_mag_t[1] | Magnetometers |
| bar | float | Barometric pressure |
| barTemp | float | (°C) Temperature of barometric pressure sensor |
| humidity | float | Relative humidity as a percent (%rH). Range is 0% - 100% |
| ana | float[4] | ADC analog input |
DID_SENSORS_MCAL¶
Temperature compensated and motion calibrated IMU output.
sensors_w_temp_t
| Field | Type | Description |
|---|---|---|
| imus | imus_t | Per-device gyro/accelerometer samples (see imus_t) |
| temp | float[1] | (°C) Temperature of IMU. Units only apply for calibrated data. |
| mag | mag_xyz_t[1] | (uT) Magnetometers. Units only apply for calibrated data. |
DID_SENSORS_TCAL¶
Temperature compensated IMU output.
sensors_w_temp_t
| Field | Type | Description |
|---|---|---|
| imus | imus_t | Per-device gyro/accelerometer samples (see imus_t) |
| temp | float[1] | (°C) Temperature of IMU. Units only apply for calibrated data. |
| mag | mag_xyz_t[1] | (uT) Magnetometers. Units only apply for calibrated data. |
DID_SENSORS_TC_BIAS¶
sensors_t
| Field | Type | Description |
|---|---|---|
| time | double | Time since boot up in seconds. Convert to GPS time of week by adding gps.towOffset. Units only apply for calibrated data. |
| mpu | sensors_mpu_t[1] | Per-device combined IMU + magnetometer sample |
DID_SENSORS_UCAL¶
Uncalibrated IMU output.
sensors_w_temp_t
| Field | Type | Description |
|---|---|---|
| imus | imus_t | Per-device gyro/accelerometer samples (see imus_t) |
| temp | float[1] | (°C) Temperature of IMU. Units only apply for calibrated data. |
| mag | mag_xyz_t[1] | (uT) Magnetometers. Units only apply for calibrated data. |
DID_STROBE_IN_TIME¶
Timestamp for input strobe.
strobe_in_time_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) |
| pin | uint16_t | Strobe input pin (i.e. G1, G2, G5, G9, G11, G12, G13, G15) |
| count | uint16_t | Strobe serial index number, incremented once per detected strobe edge |
DID_SURVEY_IN¶
survey_in_t
| Field | Type | Description |
|---|---|---|
| state | uint32_t | State of current survey (see eSurveyInStatus) |
| maxDurationSec | uint32_t | Maximum duration the survey will run, in seconds, if minAccuracy is not first achieved (ignored if 0) |
| minAccuracy | float | Required horizontal accuracy for the survey to complete before maxDurationSec elapses, in meters (ignored if 0) |
| elapsedTimeSec | uint32_t | Elapsed time of the survey, in seconds |
| hAccuracy | float | Approximate horizontal accuracy of the survey's current position estimate, in meters |
| lla | double[3] | Current surveyed position: latitude, longitude, altitude (deg, deg, m) |
DID_SYS_FAULT¶
instead encode a single small integer value (1-7) at SYS_FAULT_STATUS_CRITICAL_ERROR_pos identifying the specific critical fault that caused a reset, since only one critical fault can be active/reported at a time.
system_fault_t
| Field | Type | Description |
|---|---|---|
| upTime | uint32_t | Time of fault, uptime in milliseconds |
| status | uint32_t | System fault status (see eSysFaultStatus) |
| fileNum | uint32_t | File number (source file identifier) where the fault occurred |
| lineNum | uint32_t | Line number within the file where the fault occurred |
| haltReason | uint32_t | Zephyr halt reason code |
| lr | uint32_t | Link register value at time of fault |
| pc | uint32_t | Program Counter value at time of fault |
| psr | uint32_t | Program Status Register value at time of fault |
| taskALastFeed | uint32_t | Milliseconds since task A last ran |
| taskBLastFeed | uint32_t | Milliseconds since task B last ran |
| wdtLastFeed | uint32_t | Milliseconds since the watchdog timer was last fed |
| var0 | uint32_t | Multi-purpose register 0, fault-specific diagnostic value |
| var1 | uint32_t | Multi-purpose register 1, fault-specific diagnostic value |
| var2 | uint32_t | Multi-purpose register 2, fault-specific diagnostic value |
| var3 | uint32_t | Multi-purpose register 3, fault-specific diagnostic value |
DID_SYS_PARAMS¶
sys_params_t
| Field | Type | Description |
|---|---|---|
| timeOfWeekMs | uint32_t | GPS time of week (since Sunday morning) in milliseconds |
| insStatus | uint32_t | INS status flags (see eInsStatusFlags) |
| hdwStatus | uint32_t | Hardware status flags (see eHdwStatusFlags) |
| imuTemp | float | IMU temperature, in Celsius |
| baroTemp | float | Barometer temperature, in Celsius |
| mcuTemp | float | MCU temperature, in Celsius (not available yet) |
| sysStatus | uint32_t | System status flags (see eSysStatusFlags) |
| imuSamplePeriodMs | uint32_t | IMU sample period, in milliseconds. Zero disables sampling. |
| navOutputPeriodMs | uint32_t | Preintegrated IMU (PIMU) integration period and navigation/AHRS filter output period, in milliseconds |
| sensorTruePeriod | double | Actual sample period relative to GNSS PPS, in seconds |
| flashCfgChecksum | uint32_t | Flash config checksum used with host SDK synchronization |
| navUpdatePeriodMs | uint32_t | Navigation/AHRS filter update period, in milliseconds |
| genFaultCode | uint32_t | General fault code descriptor (see eGenFaultCodes). Set to zero to reset fault code. |
| upTime | double | System up time, in seconds (double precision) |
DID_TIME_PULSE¶
is_time_t
| Field | Type | Description |
|---|---|---|
| week | uint32_t | GPS number of weeks since January 6th, 1980 |
| timeOfWeekMs | uint32_t | (ms) GPS time of week (since Sunday morning) of the timepulse event |
| status | uint32_t | Timepulse status flags |
| syncCnt | uint32_t | Count of timepulse sync events since power-on |
| reserved | uint32_t[4] | Reserved for future use |
DID_WHEEL_ENCODER¶
wheel_encoder_t
| Field | Type | Description |
|---|---|---|
| timeOfWeek | double | (s) (Do not use, internal development only) Time of measurement, seconds into current GNSS week |
| status | uint32_t | Wheel encoder status bits |
| theta_l | float | (rad) (Do not use, internal development only) Left wheel angle |
| theta_r | float | (rad) (Do not use, internal development only) Right wheel angle |
| omega_l | float | (rad/s) Left wheel angular rate. Positive when wheel is turning toward the forward direction of the vehicle. Use WHEEL_CFG_BITS_DIRECTION_REVERSE_LEFT in DID_FLASH_CONFIG::wheelConfig to reverse this. |
| omega_r | float | (rad/s) Right wheel angular rate. Positive when wheel is turning toward the forward direction of the vehicle. Use WHEEL_CFG_BITS_DIRECTION_REVERSE_RIGHT in DID_FLASH_CONFIG::wheelConfig to reverse this. |
| wrap_count_l | uint32_t | (Do not use, internal development only) Left wheel revolution (wrap-around) count |
| wrap_count_r | uint32_t | (Do not use, internal development only) Right wheel revolution (wrap-around) count |
| var_wheel_omega | float | (rad2/s2) Wheel encoder velocity noise variance |
| var_wheel_theta | float | (rad^2) Wheel encoder angle noise variance |
DIDs¶
gen_3axis_sensor_t
| Field | Type | Description |
|---|---|---|
| time | double | Time in seconds (meaning is source-dependent; typically time since boot up or GPS time of week) |
| val | float[3] | 3-axis sensor value {x,y,z} (units are source-dependent) |
Enumerations and Defines¶
System status and configuration is made available through various enumeration and #defines.
General¶
DID_FLASH_CONFIG.gnssSatSigConst¶
(eGnssSatSigConst)
| Field | Value |
|---|---|
| GNSS_SAT_SIG_CONST_GPS | 0x0003 |
| GNSS_SAT_SIG_CONST_QZS | 0x000C |
| GNSS_SAT_SIG_CONST_GAL | 0x0030 |
| GNSS_SAT_SIG_CONST_BDS | 0x00C0 |
| GNSS_SAT_SIG_CONST_GLO | 0x0300 |
| GNSS_SAT_SIG_CONST_SBS | 0x1000 |
| GNSS_SAT_SIG_CONST_IRN | 0x2000 |
| GNSS_SAT_SIG_CONST_IME | 0x4000 |
DID_FLASH_CONFIG.sensorConfig¶
(eSensorConfig)
| Field | Value |
|---|---|
| SENSOR_CFG_GYR_FS_250 | 0x00000000 |
| SENSOR_CFG_GYR_FS_500 | 0x00000001 |
| SENSOR_CFG_GYR_FS_1000 | 0x00000002 |
| SENSOR_CFG_GYR_FS_2000 | 0x00000003 |
| SENSOR_CFG_GYR_FS_4000 | 0x00000004 |
| SENSOR_CFG_GYR_FS_MAX | 0x00000007 |
| SENSOR_CFG_GYR_FS_MASK | 0x00000007 |
| SENSOR_CFG_GYR_FS_OFFSET | (int)0 |
| SENSOR_CFG_ACC_FS_2G | 0x00000000 |
| SENSOR_CFG_ACC_FS_4G | 0x00000001 |
| SENSOR_CFG_ACC_FS_8G | 0x00000002 |
| SENSOR_CFG_ACC_FS_16G | 0x00000003 |
| SENSOR_CFG_ACC_FS_32G | 0x00000004 |
| SENSOR_CFG_ACC_FS_MAX | 0x00000007 |
| SENSOR_CFG_ACC_FS_MASK | 0x00000070 |
| SENSOR_CFG_ACC_FS_OFFSET | (int)4 |
| SENSOR_CFG_GYR_DLPF_250HZ | 0x00000000 |
| SENSOR_CFG_GYR_DLPF_184HZ | 0x00000001 |
| SENSOR_CFG_GYR_DLPF_92HZ | 0x00000002 |
| SENSOR_CFG_GYR_DLPF_41HZ | 0x00000003 |
| SENSOR_CFG_GYR_DLPF_20HZ | 0x00000004 |
| SENSOR_CFG_GYR_DLPF_10HZ | 0x00000005 |
| SENSOR_CFG_GYR_DLPF_5HZ | 0x00000006 |
| SENSOR_CFG_GYR_DLPF_MASK | 0x00000F00 |
| SENSOR_CFG_GYR_DLPF_OFFSET | (int)8 |
| SENSOR_CFG_ACC_DLPF_218HZ | 0x00000000 |
| SENSOR_CFG_ACC_DLPF_218HZb | 0x00000001 |
| SENSOR_CFG_ACC_DLPF_99HZ | 0x00000002 |
| SENSOR_CFG_ACC_DLPF_45HZ | 0x00000003 |
| SENSOR_CFG_ACC_DLPF_21HZ | 0x00000004 |
| SENSOR_CFG_ACC_DLPF_10HZ | 0x00000005 |
| SENSOR_CFG_ACC_DLPF_5HZ | 0x00000006 |
| SENSOR_CFG_ACC_DLPF_MASK | 0x0000F000 |
| SENSOR_CFG_ACC_DLPF_OFFSET | (int)12 |
| SENSOR_CFG_SENSOR_ROTATION_MASK | 0x001F0000 |
| SENSOR_CFG_SENSOR_ROTATION_OFFSET | (int)16 |
| SENSOR_CFG_SENSOR_ROTATION_0_0_0 | (int)0 |
| SENSOR_CFG_SENSOR_ROTATION_0_0_90 | (int)1 |
| SENSOR_CFG_SENSOR_ROTATION_0_0_180 | (int)2 |
| SENSOR_CFG_SENSOR_ROTATION_0_0_N90 | (int)3 |
| SENSOR_CFG_SENSOR_ROTATION_90_0_0 | (int)4 |
| SENSOR_CFG_SENSOR_ROTATION_90_0_90 | (int)5 |
| SENSOR_CFG_SENSOR_ROTATION_90_0_180 | (int)6 |
| SENSOR_CFG_SENSOR_ROTATION_90_0_N90 | (int)7 |
| SENSOR_CFG_SENSOR_ROTATION_180_0_0 | (int)8 |
| SENSOR_CFG_SENSOR_ROTATION_180_0_90 | (int)9 |
| SENSOR_CFG_SENSOR_ROTATION_180_0_180 | (int)10 |
| SENSOR_CFG_SENSOR_ROTATION_180_0_N90 | (int)11 |
| SENSOR_CFG_SENSOR_ROTATION_N90_0_0 | (int)12 |
| SENSOR_CFG_SENSOR_ROTATION_N90_0_90 | (int)13 |
| SENSOR_CFG_SENSOR_ROTATION_N90_0_180 | (int)14 |
| SENSOR_CFG_SENSOR_ROTATION_N90_0_N90 | (int)15 |
| SENSOR_CFG_SENSOR_ROTATION_0_90_0 | (int)16 |
| SENSOR_CFG_SENSOR_ROTATION_0_90_90 | (int)17 |
| SENSOR_CFG_SENSOR_ROTATION_0_90_180 | (int)18 |
| SENSOR_CFG_SENSOR_ROTATION_0_90_N90 | (int)19 |
| SENSOR_CFG_SENSOR_ROTATION_0_N90_0 | (int)20 |
| SENSOR_CFG_SENSOR_ROTATION_0_N90_90 | (int)21 |
| SENSOR_CFG_SENSOR_ROTATION_0_N90_180 | (int)22 |
| SENSOR_CFG_SENSOR_ROTATION_0_N90_N90 | (int)23 |
| SENSOR_CFG_DISABLE_MAGNETOMETER | 0x00400000 |
| SENSOR_CFG_DISABLE_BAROMETER | 0x00800000 |
| SENSOR_CFG_IMU_FAULT_DETECT_MASK | 0xFF000000 |
| SENSOR_CFG_IMU_FAULT_DETECT_GYR | 0x01000000 |
| SENSOR_CFG_IMU_FAULT_DETECT_ACC | 0x02000000 |
| SENSOR_CFG_IMU_FAULT_DETECT_OFFLINE | 0x04000000 |
| SENSOR_CFG_IMU_FAULT_DETECT_LARGE_BIAS | 0x08000000 |
| SENSOR_CFG_IMU_FAULT_DETECT_SENSOR_NOISE | 0x10000000 |
DID_FLASH_CONFIG.sysCfgBits¶
(eSysConfigBits)
| Field | Value |
|---|---|
| UNUSED1 | 0x00000001 |
| SYS_CFG_BITS_ENABLE_MAG_CONTINUOUS_CAL | 0x00000002 |
| SYS_CFG_BITS_AUTO_MAG_RECAL | 0x00000004 |
| SYS_CFG_BITS_DISABLE_MAG_DECL_ESTIMATION | 0x00000008 |
| SYS_CFG_BITS_DISABLE_LEDS | 0x00000010 |
| SYS_CFG_BITS_MAG_RECAL_MODE_MASK | 0x00000700 |
| SYS_CFG_BITS_MAG_RECAL_MODE_OFFSET | 8 |
| SYS_CFG_BITS_MAG_ENABLE_WMM_DECLINATION | 0x00000800 |
| SYS_CFG_BITS_DISABLE_MAGNETOMETER_FUSION | 0x00001000 |
| SYS_CFG_BITS_DISABLE_BAROMETER_FUSION | 0x00002000 |
| SYS_CFG_BITS_DISABLE_GNSS1_FUSION | 0x00004000 |
| SYS_CFG_BITS_DISABLE_GNSS2_FUSION | 0x00008000 |
| SYS_CFG_BITS_DISABLE_AUTO_ZERO_VELOCITY_UPDATES | 0x00010000 |
| SYS_CFG_BITS_DISABLE_AUTO_ZERO_ANGULAR_RATE_UPDATES | 0x00020000 |
| SYS_CFG_BITS_DISABLE_INS_EKF | 0x00040000 |
| SYS_CFG_BITS_DISABLE_AUTO_BIT_ON_STARTUP | 0x00080000 |
| SYS_CFG_BITS_DISABLE_WHEEL_ENCODER_FUSION | 0x00100000 |
| SYS_CFG_BITS_ENABLE_GNSS_ANTENNA_OFFSET_ESTIMATION | 0x00200000 |
| SYS_CFG_BITS_BOR_LEVEL_0 | 0x0 |
| SYS_CFG_BITS_BOR_LEVEL_1 | 0x1 |
| SYS_CFG_BITS_BOR_LEVEL_2 | 0x2 |
| SYS_CFG_BITS_BOR_LEVEL_3 | 0x3 |
| SYS_CFG_BITS_BOR_THRESHOLD_MASK | 0x00C00000 |
| SYS_CFG_BITS_BOR_THRESHOLD_OFFSET | 22 |
| SYS_CFG_USE_REFERENCE_IMU_IN_EKF | 0x01000000 |
| SYS_CFG_EKF_REF_POINT_STATIONARY_ON_STROBE_INPUT | 0x02000000 |
DID_GPX_FLASH_CFG.sysCfgBits¶
(eGpxSysConfigBits)
| Field | Value |
|---|---|
| GPX_SYS_CFG_BITS_DISABLE_VCC_RF | 0x00000001 |
| GPX_SYS_CFG_BITS_BOR_LEVEL_0 | 0x0 |
| GPX_SYS_CFG_BITS_BOR_LEVEL_1 | 0x1 |
| GPX_SYS_CFG_BITS_BOR_LEVEL_2 | 0x2 |
| GPX_SYS_CFG_BITS_BOR_LEVEL_3 | 0x3 |
| GPX_SYS_CFG_BITS_BOR_THRESHOLD_MASK | 0x00C00000 |
| GPX_SYS_CFG_BITS_BOR_THRESHOLD_OFFSET | 22 |
DID_GPX_STATUS.hdwStatus¶
(eGPXHdwStatusFlags)
| Field | Value |
|---|---|
| GPX_HDW_STATUS_GNSS1_SATELLITE_RX | 0x00000001 |
| GPX_HDW_STATUS_GNSS2_SATELLITE_RX | 0x00000002 |
| GPX_HDW_STATUS_GNSS1_TIME_OF_WEEK_VALID | 0x00000004 |
| GPX_HDW_STATUS_GNSS2_TIME_OF_WEEK_VALID | 0x00000008 |
| GPX_HDW_STATUS_GNSS1_RESET_COUNT_MASK | 0x00000070 |
| GPX_HDW_STATUS_GNSS1_RESET_COUNT_OFFSET | 4 |
| GPX_HDW_STATUS_FAULT_GNSS1_INIT | 0x00000080 |
| GPX_HDW_STATUS_GNSS1_FAULT_FLAG_OFFSET | 7 |
| GPX_HDW_STATUS_GNSS2_RESET_COUNT_MASK | 0x00000700 |
| GPX_HDW_STATUS_GNSS2_RESET_COUNT_OFFSET | 8 |
| GPX_HDW_STATUS_FAULT_GNSS2_INIT | 0x00000800 |
| GPX_HDW_STATUS_GNSS2_FAULT_FLAG_OFFSET | 11 |
| GPX_HDW_STATUS_GNSS_FW_UPDATE_REQUIRED | 0x00001000 |
| GPX_HDW_STATUS_LED_ENABLED | 0x00002000 |
| GPX_HDW_STATUS_SYSTEM_RESET_REQUIRED | 0x00004000 |
| GPX_HDW_STATUS_FLASH_WRITE_PENDING | 0x00008000 |
| GPX_HDW_STATUS_ERR_COM_TX_LIMITED | 0x00010000 |
| GPX_HDW_STATUS_ERR_COM_RX_OVERRUN | 0x00020000 |
| GPX_HDW_STATUS_ERR_COM_MASK | 0x00030000 |
| GPX_HDW_STATUS_ERR_NO_GNSS1_PPS | 0x00040000 |
| GPX_HDW_STATUS_ERR_NO_GNSS2_PPS | 0x00080000 |
| GPX_HDW_STATUS_ERR_PPS_MASK | 0x000C0000 |
| GPX_HDW_STATUS_ERR_LOW_CNO_GNSS1 | 0x00100000 |
| GPX_HDW_STATUS_ERR_LOW_CNO_GNSS2 | 0x00200000 |
| GPX_HDW_STATUS_ERR_CNO_GNSS1_IR | 0x00400000 |
| GPX_HDW_STATUS_ERR_CNO_GNSS2_IR | 0x00800000 |
| GPX_HDW_STATUS_ERR_CNO_MASK | 0x00F00000 |
| GPX_HDW_STATUS_BIT_RUNNING | 0x01000000 |
| GPX_HDW_STATUS_BIT_PASSED | 0x02000000 |
| GPX_HDW_STATUS_BIT_FAULT | 0x03000000 |
| GPX_HDW_STATUS_BIT_MASK | 0x03000000 |
| GPX_HDW_STATUS_BIT_OFFSET | 24 |
| GPX_HDW_STATUS_ERR_TEMPERATURE | 0x04000000 |
| GPX_HDW_STATUS_GNSS_PPS_TIMESYNC | 0x08000000 |
| GPX_HDW_STATUS_RESET_CAUSE_MASK | 0x70000000 |
| GPX_HDW_STATUS_RESET_CAUSE_BACKUP_MODE | 0x10000000 |
| GPX_HDW_STATUS_RESET_CAUSE_SOFT | 0x20000000 |
| GPX_HDW_STATUS_RESET_CAUSE_HDW | 0x40000000 |
| GPX_HDW_STATUS_FAULT_SYS_CRITICAL | 0x80000000 |
DID_GPX_STATUS.rtkMode¶
(eRTKConfigBits)
| Field | Value |
|---|---|
| RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_DEPRECATED | 0x00000001 |
| RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING | 0x00000002 |
| RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING | 0x00000004 |
| RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_DEPRECATED | 0x00000008 |
| RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_MASK | (RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING|RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_DEPRECATED) |
| RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_MASK | (RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING|RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_DEPRECATED) |
| RTK_CFG_BITS_ROVER_MODE_MASK | 0x0000000F |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_SER0 | 0x00000010 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_SER1 | 0x00000020 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_SER2 | 0x00000040 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_USB | 0x00000080 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_SER0 | 0x00000100 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_SER1 | 0x00000200 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_SER2 | 0x00000400 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_USB | 0x00000800 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_SER0 | 0x00001000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_SER1 | 0x00002000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_SER2 | 0x00004000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_USB | 0x00008000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_SER0 | 0x00010000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_SER1 | 0x00020000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_SER2 | 0x00040000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_USB | 0x00080000 |
| RTK_CFG_BITS_BASE_POS_MOVING | 0x00100000 |
| RTK_CFG_BITS_RESERVED1 | 0x00200000 |
| RTK_CFG_BITS_RTK_BASE_IS_IDENTICAL_TO_ROVER | 0x00400000 |
| RTK_CFG_BITS_GNSS_PORT_PASS_THROUGH | 0x00800000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_CUR_PORT | 0x01000000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_CUR_PORT | 0x02000000 |
| RTK_CFG_BITS_BASE_OUTPUT_RTCM3_CLEAR_CUR_PORT | 0x04000000 |
| RTK_CFG_BITS_MULTIPATH_MITIGATION | 0x08000000 |
| RTK_CFG_BITS_BASE_OUTPUT_RTCM3_CUR_PORT_MASK | (RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_CUR_PORT|RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_CUR_PORT) |
| RTK_CFG_BITS_BASE_UBLOX_MASK | (RTK_CFG_BITS_BASE_GNSS1_UBLOX_MASK|RTK_CFG_BITS_BASE_GNSS2_UBLOX_MASK) |
| RTK_CFG_BITS_BASE_RTCM3_MASK | (RTK_CFG_BITS_BASE_GNSS1_RTCM3_MASK|RTK_CFG_BITS_BASE_GNSS2_RTCM3_MASK) |
| RTK_CFG_BITS_BASE_MODE | (RTK_CFG_BITS_BASE_UBLOX_MASK|RTK_CFG_BITS_BASE_RTCM3_MASK) |
| RTK_CFG_BITS_ROVER_MODE_ONBOARD_MASK | (RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_DEPRECATED|RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_DEPRECATED) |
| RTK_CFG_BITS_ALL_MODES_MASK | (RTK_CFG_BITS_ROVER_MODE_MASK|RTK_CFG_BITS_BASE_MODE) |
DID_GPX_STATUS.status¶
(eGpxStatus)
| Field | Value |
|---|---|
| GPX_STATUS_COM_PARSE_ERR_COUNT_MASK | 0x0000000F |
| GPX_STATUS_COM_PARSE_ERR_COUNT_OFFSET | 0 |
| GPX_STATUS_COM0_RX_TRAFFIC_DETECTED | 0x00000010 |
| GPX_STATUS_COM1_RX_TRAFFIC_DETECTED | 0x00000020 |
| GPX_STATUS_COM2_RX_TRAFFIC_DETECTED | 0x00000040 |
| GPX_STATUS_USB_RX_TRAFFIC_DETECTED | 0x00000080 |
| GPX_STATUS_UPDATE_CONFIRMED | 0x00000100 |
| GPX_STATUS_GENERAL_FAULT_MASK | 0xFFDF0000 |
| GPX_STATUS_FAULT_RTK_QUEUE_LIMITED | 0x00010000 |
| GPX_STATUS_FAULT_GNSS_RCVR_TIME | 0x00100000 |
| GPX_STATUS_FAULT_RTOS_TASK_PERIOD_OVERRUN | 0x00200000 |
| GPX_STATUS_FAULT_DMA | 0x00800000 |
| GPX_STATUS_FATAL_MASK | 0x1F000000 |
| GPX_STATUS_FATAL_OFFSET | 24 |
| GPX_STATUS_FATAL_RESET_LOW_POW | (int)1 |
| GPX_STATUS_FATAL_RESET_BROWN | (int)2 |
| GPX_STATUS_FATAL_RESET_WATCHDOG | (int)3 |
| GPX_STATUS_FATAL_CPU_EXCEPTION | (int)4 |
| GPX_STATUS_FATAL_UNHANDLED_INTERRUPT | (int)5 |
| GPX_STATUS_FATAL_STACK_OVERFLOW | (int)6 |
| GPX_STATUS_FATAL_KERNEL_OOPS | (int)7 |
| GPX_STATUS_FATAL_KERNEL_PANIC | (int)8 |
| GPX_STATUS_FATAL_UNALIGNED_ACCESS | (int)9 |
| GPX_STATUS_FATAL_MEMORY_ERROR | (int)10 |
| GPX_STATUS_FATAL_BUS_ERROR | (int)11 |
| GPX_STATUS_FATAL_USAGE_ERROR | (int)12 |
| GPX_STATUS_FATAL_DIV_ZERO | (int)13 |
| GPX_STATUS_FATAL_SER0_REINIT | (int)14 |
| GPX_STATUS_FATAL_UNKNOWN | 0x1F |
| GPX_STATUS_FAULT_RP | 0x20000000 |
| GPX_STATUS_FAULT_UNUSED | 0xC0000000 |
DID_SYS_CMD.command¶
(eSystemCommand)
| Field | Value |
|---|---|
| SYS_CMD_NONE | 0 |
| SYS_CMD_SAVE_PERSISTENT_MESSAGES | 1 |
| SYS_CMD_ENABLE_BOOTLOADER_AND_RESET | 2 |
| SYS_CMD_ENABLE_SENSOR_STATS | 3 |
| SYS_CMD_ENABLE_RTOS_STATS | 4 |
| SYS_CMD_ZERO_MOTION | 5 |
| SYS_CMD_REF_POINT_STATIONARY | 6 |
| SYS_CMD_REF_POINT_MOVING | 7 |
| SYS_CMD_RESET_RTOS_STATS | 8 |
| SYS_CMD_ENABLE_GNSS_LOW_LEVEL_CONFIG | 10 |
| SYS_CMD_DISABLE_SERIAL_PORT_BRIDGE | 11 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_USB_TO_GNSS1 | 12 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_USB_TO_GNSS2 | 13 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_USB_TO_SER0 | 14 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_USB_TO_SER1 | 15 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_USB_TO_SER2 | 16 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_SER0_TO_GNSS1 | 17 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_TO_GNSS1 | 18 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_TO_GNSS2 | 19 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_TO_USB | 20 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_TO_SER0 | 21 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_TO_SER1 | 22 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_TO_SER2 | 23 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_USB_LOOPBACK | 24 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_SER0_LOOPBACK | 25 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_SER1_LOOPBACK | 26 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_SER2_LOOPBACK | 27 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_LOOPBACK | 28 |
| SYS_CMD_ENABLE_SERIAL_PORT_BRIDGE_CUR_PORT_LOOPBACK_TESTMODE | 29 |
| SYS_CMD_GPX_ENABLE_BOOTLOADER_MODE | 30 |
| SYS_CMD_GPX_ENABLE_GNSS1_CHIPSET_BOOTLOADER | 31 |
| SYS_CMD_GPX_ENABLE_GNSS2_CHIPSET_BOOTLOADER | 32 |
| SYS_CMD_GPX_ENABLE_GNSS1_PASS_THROUGH | 33 |
| SYS_CMD_GPX_ENABLE_GNSS2_PASS_THROUGH | 34 |
| SYS_CMD_GPX_HARD_RESET_GNSS1 | 36 |
| SYS_CMD_GPX_HARD_RESET_GNSS2 | 37 |
| SYS_CMD_GPX_SOFT_RESET_GPX | 38 |
| SYS_CMD_GPX_ENABLE_SERIAL_BRIDGE_CUR_PORT_LOOPBACK | 39 |
| SYS_CMD_GPX_ENABLE_SERIAL_BRIDGE_CUR_PORT_LOOPBACK_TESTMODE | 40 |
| SYS_CMD_GPX_ENABLE_RTOS_STATS | 41 |
| SYS_CMD_GPX_SAVE_PERSISTENT_MESSAGES | 42 |
| SYS_CMD_GNSS_RCVR_QUIET_MODE | 60 |
| SYS_CMD_GNSS_RCVR_SOFT_RESET | 61 |
| SYS_CMD_GNSS_RCVR_HARD_RESET | 62 |
| SYS_CMD_GNSS_RCVR_PWR_CYCLE | 63 |
| SYS_CMD_RESET_EKF_STATES | 70 |
| SYS_CMD_CLEAR_ERROR_STATUS | 71 |
| SYS_CMD_SAVE_FLASH | 97 |
| SYS_CMD_SAVE_GNSS_ASSIST_TO_FLASH_RESET | 98 |
| SYS_CMD_SOFTWARE_RESET | 99 |
| SYS_CMD_MANF_UNLOCK | 1122334455 |
| SYS_CMD_MANF_ERASE_CALIBRATION_MOTION | 1357924678 |
| SYS_CMD_MANF_ERASE_CALIBRATION | 1357924679 |
| SYS_CMD_MANF_FACTORY_RESET | 1357924680 |
| SYS_CMD_MANF_CHIP_ERASE | 1357924681 |
| SYS_CMD_MANF_DOWNGRADE_CALIBRATION | 1357924682 |
| SYS_CMD_MANF_ENABLE_ROM_BOOTLOADER | 1357924683 |
| SYS_CMD_MANF_LED_ON | 1357924684 |
| SYS_CMD_MANF_LED_OFF | 1357924685 |
| SYS_CMD_FAULT_TEST_TRIG_MALLOC | 57005 |
| SYS_CMD_FAULT_TEST_TRIG_HARD_FAULT | 57006 |
| SYS_CMD_FAULT_TEST_TRIG_WATCHDOG | 57007 |
| SYS_CMD_FAULT_TEST_TRIG_FLASH_TORN_WRITE | 57008 |
DID_SYS_PARAMS.genFaultCode¶
(eGenFaultCodes)
| Field | Value |
|---|---|
| GFC_INS_STATE_ORUN_UVW | 0x00000001 |
| GFC_INS_STATE_ORUN_LAT | 0x00000002 |
| GFC_INS_STATE_ORUN_ALT | 0x00000004 |
| GFC_UNHANDLED_INTERRUPT | 0x00000010 |
| GFC_GNSS_CRITICAL_FAULT | 0x00000020 |
| GFC_GNSS_TX_LIMITED | 0x00000040 |
| GFC_GNSS_RX_OVERRUN | 0x00000080 |
| GFC_INIT_SENSORS | 0x00000100 |
| GFC_INIT_SPI | 0x00000200 |
| GFC_CONFIG_SPI | 0x00000400 |
| GFC_GNSS1_INIT | 0x00000800 |
| GFC_GNSS2_INIT | 0x00001000 |
| GFC_FLASH_INVALID_VALUES | 0x00002000 |
| GFC_FLASH_CHECKSUM_FAILURE | 0x00004000 |
| GFC_FLASH_WRITE_FAILURE | 0x00008000 |
| GFC_SYS_FAULT_GENERAL | 0x00010000 |
| GFC_SYS_FAULT_CRITICAL | 0x00020000 |
| GFC_SENSOR_SATURATION | 0x00040000 |
| GFC_EKF_STATES_INVALID | 0x00080000 |
| GFC_INIT_IMU | 0x00100000 |
| GFC_INIT_BAROMETER | 0x00200000 |
| GFC_INIT_MAGNETOMETER | 0x00400000 |
| GFC_INIT_I2C | 0x00800000 |
| GFC_CHIP_ERASE_INVALID | 0x01000000 |
| GFC_EKF_GNSS_TIME_FAULT | 0x02000000 |
| GFC_GNSS_RECEIVER_TIME | 0x04000000 |
| GFC_GNSS_GENERAL_FAULT | 0x08000000 |
| GFC_EKF_INPUT_INVALID_IMU | 0x10000000 |
| GFC_GNSS_RTOS_ERROR | 0x20000000 |
| GFC_GPX_STATUS_COMMON_MASK | GFC_GNSS1_INIT|GFC_GNSS2_INIT|GFC_GNSS_TX_LIMITED|GFC_GNSS_RX_OVERRUN|GFC_GNSS_CRITICAL_FAULT|GFC_GNSS_RECEIVER_TIME|GFC_GNSS_GENERAL_FAULT |
GPS Navigation Fix Type¶
(eGnssNavFixStatus)
| Field | Value |
|---|---|
| GNSS_NAV_FIX_NONE | 0x00000000 |
| GNSS_NAV_FIX_POSITIONING_3D | 0x00000001 |
| GNSS_NAV_FIX_POSITIONING_RTK_FLOAT | 0x00000002 |
| GNSS_NAV_FIX_POSITIONING_RTK_FIX | 0x00000003 |
GPS Status¶
(eGnssStatus)
| Field | Value |
|---|---|
| GNSS_STATUS_NUM_SATS_USED_MASK | 0x000000FF |
| GNSS_STATUS_FIX_NONE | 0x00000000 |
| GNSS_STATUS_FIX_DEAD_RECKONING_ONLY | 0x00000100 |
| GNSS_STATUS_FIX_2D | 0x00000200 |
| GNSS_STATUS_FIX_3D | 0x00000300 |
| GNSS_STATUS_FIX_GNSS_PLUS_DEAD_RECK | 0x00000400 |
| GNSS_STATUS_FIX_TIME_ONLY | 0x00000500 |
| GNSS_STATUS_FIX_REF_LLA | 0x00000600 |
| GNSS_STATUS_FIX_UNUSED2 | 0x00000700 |
| GNSS_STATUS_FIX_DGPS | 0x00000800 |
| GNSS_STATUS_FIX_SBAS | 0x00000900 |
| GNSS_STATUS_FIX_RTK_SINGLE | 0x00000A00 |
| GNSS_STATUS_FIX_RTK_FLOAT | 0x00000B00 |
| GNSS_STATUS_FIX_RTK_FIX | 0x00000C00 |
| GNSS_STATUS_FIX_MASK | 0x00001F00 |
| GNSS_STATUS_FIX_BIT_OFFSET | (int)8 |
| GNSS_STATUS_FLAGS_FIX_OK | 0x00010000 |
| GNSS_STATUS_FLAGS_DGPS_USED | 0x00020000 |
| GNSS_STATUS_FLAGS_RTK_FIX_AND_HOLD | 0x00040000 |
| GNSS_STATUS_FLAGS_UNUSED_1 | 0x00080000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_POSITION_ENABLED | 0x00100000 |
| GNSS_STATUS_FLAGS_STATIC_MODE | 0x00200000 |
| GNSS_STATUS_FLAGS_GNSS2_RTK_COMPASS_ENABLED | 0x00400000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_RAW_GNSS_DATA_ERROR | 0x00800000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_BASE_DATA_MISSING | 0x01000000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_BASE_POSITION_MOVING | 0x02000000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_BASE_POSITION_INVALID | 0x03000000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_BASE_POSITION_MASK | 0x03000000 |
| GNSS_STATUS_FLAGS_GNSS1_RTK_POSITION_VALID | 0x04000000 |
| GNSS_STATUS_FLAGS_GNSS2_RTK_COMPASS_VALID | 0x08000000 |
| GNSS_STATUS_FLAGS_GNSS2_RTK_COMPASS_BASELINE_BAD | 0x00002000 |
| GNSS_STATUS_FLAGS_GNSS2_RTK_COMPASS_BASELINE_UNSET | 0x00004000 |
| GNSS_STATUS_FLAGS_GNSS_NMEA_DATA | 0x00008000 |
| GNSS_STATUS_FLAGS_GNSS_PPS_TIMESYNC | 0x10000000 |
| GNSS_STATUS_FLAGS_MASK | 0x1FFFE000 |
| GNSS_STATUS_FLAGS_BIT_OFFSET | (int)16 |
| GNSS_STATUS_FLAGS_RTK_COV_ECEF_PACKED_VALID | 0x20000000 |
| GNSS_STATUS_FLAGS_UNUSED_3 | 0x40000000 |
| GNSS_STATUS_FLAGS_UNUSED_4 | 0x80000000 |
Hardware Status Flags¶
(eHdwStatusFlags)
| Field | Value |
|---|---|
| HDW_STATUS_MOTION_GYR | 0x00000001 |
| HDW_STATUS_MOTION_ACC | 0x00000002 |
| HDW_STATUS_MOTION_MASK | 0x00000003 |
| HDW_STATUS_IMU_FAULT_REJECT_GYR | 0x00000004 |
| HDW_STATUS_IMU_FAULT_REJECT_ACC | 0x00000008 |
| HDW_STATUS_IMU_FAULT_REJECT_MASK | 0x0000000C |
| HDW_STATUS_GNSS_SATELLITE_RX_VALID | 0x00000010 |
| HDW_STATUS_STROBE_IN_EVENT | 0x00000020 |
| HDW_STATUS_GNSS_TIME_OF_WEEK_VALID | 0x00000040 |
| HDW_STATUS_REFERENCE_IMU_RX | 0x00000080 |
| HDW_STATUS_SATURATION_GYR | 0x00000100 |
| HDW_STATUS_SATURATION_ACC | 0x00000200 |
| HDW_STATUS_SATURATION_MAG | 0x00000400 |
| HDW_STATUS_SATURATION_BARO | 0x00000800 |
| HDW_STATUS_IMU_SATURATION_MASK | (int)(HDW_STATUS_SATURATION_GYR|HDW_STATUS_SATURATION_ACC) |
| HDW_STATUS_SATURATION_MASK | 0x00000F00 |
| HDW_STATUS_SATURATION_OFFSET | 8 |
| HDW_STATUS_SYSTEM_RESET_REQUIRED | 0x00001000 |
| HDW_STATUS_ERR_GNSS_PPS_NOISE | 0x00002000 |
| HDW_STATUS_MAG_RECAL_COMPLETE | 0x00004000 |
| HDW_STATUS_FLASH_WRITE_PENDING | 0x00008000 |
| HDW_STATUS_ERR_COM_TX_LIMITED | 0x00010000 |
| HDW_STATUS_ERR_COM_RX_OVERRUN | 0x00020000 |
| HDW_STATUS_ERR_NO_GNSS_PPS | 0x00040000 |
| HDW_STATUS_GNSS_PPS_TIMESYNC | 0x00080000 |
| HDW_STATUS_COM_PARSE_ERR_COUNT_MASK | 0x00F00000 |
| HDW_STATUS_COM_PARSE_ERR_COUNT_OFFSET | 20 |
| HDW_STATUS_BIT_RUNNING | 0x01000000 |
| HDW_STATUS_BIT_PASSED | 0x02000000 |
| HDW_STATUS_BIT_FAILED | 0x03000000 |
| HDW_STATUS_BIT_MASK | 0x03000000 |
| HDW_STATUS_ERR_TEMPERATURE | 0x04000000 |
| HDW_STATUS_SPI_INTERFACE_ENABLED | 0x08000000 |
| HDW_STATUS_RESET_CAUSE_MASK | 0x70000000 |
| HDW_STATUS_RESET_CAUSE_BACKUP_MODE | 0x10000000 |
| HDW_STATUS_RESET_CAUSE_WATCHDOG_FAULT | 0x20000000 |
| HDW_STATUS_RESET_CAUSE_SOFT | 0x30000000 |
| HDW_STATUS_RESET_CAUSE_HDW | 0x40000000 |
| HDW_STATUS_FAULT_SYS_CRITICAL | 0x80000000 |
IMU Shock Options¶
(eImuShockOptions)
| Field | Value |
|---|---|
| IMU_SHOCK_OPTIONS_ENABLE | 0x01 |
| IMU_SHOCK_OPTIONS_FAST_RECOVERY | 0x02 |
IMU Status¶
(eImuStatus)
| Field | Value |
|---|---|
| IMU_STATUS_GYR_X_OK | 0x00000001 |
| IMU_STATUS_GYR_Y_OK | 0x00000002 |
| IMU_STATUS_GYR_Z_OK | 0x00000004 |
| IMU_STATUS_ACC_X_OK | 0x00000008 |
| IMU_STATUS_ACC_Y_OK | 0x00000010 |
| IMU_STATUS_ACC_Z_OK | 0x00000020 |
| IMU_STATUS_IMU_OK_BITSIZE | 6 |
| IMU_STATUS_IMU_OK_MASK | IMU_STATUS_GYR_X_OK|IMU_STATUS_GYR_Y_OK|IMU_STATUS_GYR_Z_OK|IMU_STATUS_ACC_X_OK|IMU_STATUS_ACC_Y_OK|IMU_STATUS_ACC_Z_OK |
| IMU_STATUS_GYR_OK_MASK | IMU_STATUS_GYR_X_OK|IMU_STATUS_GYR_Y_OK|IMU_STATUS_GYR_Z_OK |
| IMU_STATUS_ACC_OK_MASK | IMU_STATUS_ACC_X_OK|IMU_STATUS_ACC_Y_OK|IMU_STATUS_ACC_Z_OK |
| IMU_STATUS_SHOCK_PRESENT | 0x00000040 |
| IMU_STATUS_MAG_UPDATE | 0x00000100 |
| IMU_STATUS_REFERENCE_IMU_PRESENT | 0x00000200 |
| IMU_STATUS_GYR_FAULT_REJECT | 0x01000000 |
| IMU_STATUS_ACC_FAULT_REJECT | 0x02000000 |
| IMU_STATUS_SATURATION_GYR | 0x40000000 |
| IMU_STATUS_SATURATION_ACC | 0x80000000 |
| IMU_STATUS_SATURATION_MASK | 0xC0000000 |
INS status Flags¶
(eInsStatusFlags)
| Field | Value |
|---|---|
| INS_STATUS_HDG_ALIGN_COARSE | 0x00000001 |
| INS_STATUS_VEL_ALIGN_COARSE | 0x00000002 |
| INS_STATUS_POS_ALIGN_COARSE | 0x00000004 |
| INS_STATUS_ALIGN_COARSE_MASK | 0x00000007 |
| INS_STATUS_WHEEL_AIDING_VEL | 0x00000008 |
| INS_STATUS_HDG_ALIGN_FINE | 0x00000010 |
| INS_STATUS_VEL_ALIGN_FINE | 0x00000020 |
| INS_STATUS_POS_ALIGN_FINE | 0x00000040 |
| INS_STATUS_ALIGN_FINE_MASK | 0x00000070 |
| INS_STATUS_GNSS_AIDING_HEADING | 0x00000080 |
| INS_STATUS_GNSS_AIDING_POS | 0x00000100 |
| INS_STATUS_GNSS_UPDATE_IN_SOLUTION | 0x00000200 |
| INS_STATUS_EKF_USING_REFERENCE_IMU | 0x00000400 |
| INS_STATUS_MAG_AIDING_HEADING | 0x00000800 |
| INS_STATUS_NAV_MODE | 0x00001000 |
| INS_STATUS_STATIONARY_MODE | 0x00002000 |
| INS_STATUS_GNSS_AIDING_VEL | 0x00004000 |
| INS_STATUS_KINEMATIC_CAL_GOOD | 0x00008000 |
| INS_STATUS_SOLUTION_MASK | 0x000F0000 |
| INS_STATUS_SOLUTION_OFFSET | 16 |
| INS_STATUS_SOLUTION_OFF | 0 |
| INS_STATUS_SOLUTION_ALIGNING | 1 |
| INS_STATUS_SOLUTION_NAV | 3 |
| INS_STATUS_SOLUTION_NAV_HIGH_VARIANCE | 4 |
| INS_STATUS_SOLUTION_AHRS | 5 |
| INS_STATUS_SOLUTION_AHRS_HIGH_VARIANCE | 6 |
| INS_STATUS_SOLUTION_VRS | 7 |
| INS_STATUS_SOLUTION_VRS_HIGH_VARIANCE | 8 |
| INS_STATUS_RTK_COMPASSING_BASELINE_UNSET | 0x00100000 |
| INS_STATUS_RTK_COMPASSING_BASELINE_BAD | 0x00200000 |
| INS_STATUS_RTK_COMPASSING_MASK | (INS_STATUS_RTK_COMPASSING_BASELINE_UNSET|INS_STATUS_RTK_COMPASSING_BASELINE_BAD) |
| INS_STATUS_MAG_RECALIBRATING | 0x00400000 |
| INS_STATUS_MAG_INTERFERENCE_OR_BAD_CAL_OR_NO_CAL | 0x00800000 |
| INS_STATUS_GNSS_NAV_FIX_MASK | 0x03000000 |
| INS_STATUS_GNSS_NAV_FIX_OFFSET | 24 |
| INS_STATUS_RTK_COMPASSING_VALID | 0x04000000 |
| INS_STATUS_RTK_RAW_GNSS_DATA_ERROR | 0x08000000 |
| INS_STATUS_RTK_ERR_BASE_DATA_MISSING | 0x10000000 |
| INS_STATUS_RTK_ERR_BASE_POSITION_MOVING | 0x20000000 |
| INS_STATUS_RTK_ERR_BASE_POSITION_INVALID | 0x30000000 |
| INS_STATUS_RTK_ERR_BASE_MASK | 0x30000000 |
| INS_STATUS_RTK_ERROR_MASK | (INS_STATUS_RTK_RAW_GNSS_DATA_ERROR|INS_STATUS_RTK_ERR_BASE_MASK) |
| INS_STATUS_RTOS_TASK_PERIOD_OVERRUN | 0x40000000 |
| INS_STATUS_GENERAL_FAULT | 0x80000000 |
Magnetometer Recalibration Mode¶
(eMagCalState)
| Field | Value |
|---|---|
| MAG_CAL_STATE_DO_NOTHING | (int)0 |
| MAG_CAL_STATE_MULTI_AXIS | (int)1 |
| MAG_CAL_STATE_SINGLE_AXIS | (int)2 |
| MAG_CAL_STATE_ABORT | (int)101 |
| MAG_CAL_STATE_RECAL_RUNNING | (int)200 |
| MAG_CAL_STATE_RECAL_COMPLETE | (int)201 |
| MAG_CAL_STATE_RECAL_MODE_NOT_SUPPORTED | (int)202 |
RTK Configuration¶
(eRTKConfigBits)
| Field | Value |
|---|---|
| RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_DEPRECATED | 0x00000001 |
| RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING | 0x00000002 |
| RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING | 0x00000004 |
| RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_DEPRECATED | 0x00000008 |
| RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_MASK | (RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING|RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_DEPRECATED) |
| RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_MASK | (RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING|RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_DEPRECATED) |
| RTK_CFG_BITS_ROVER_MODE_MASK | 0x0000000F |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_SER0 | 0x00000010 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_SER1 | 0x00000020 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_SER2 | 0x00000040 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_UBLOX_USB | 0x00000080 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_SER0 | 0x00000100 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_SER1 | 0x00000200 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_SER2 | 0x00000400 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_USB | 0x00000800 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_SER0 | 0x00001000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_SER1 | 0x00002000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_SER2 | 0x00004000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_UBLOX_USB | 0x00008000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_SER0 | 0x00010000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_SER1 | 0x00020000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_SER2 | 0x00040000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_USB | 0x00080000 |
| RTK_CFG_BITS_BASE_POS_MOVING | 0x00100000 |
| RTK_CFG_BITS_RESERVED1 | 0x00200000 |
| RTK_CFG_BITS_RTK_BASE_IS_IDENTICAL_TO_ROVER | 0x00400000 |
| RTK_CFG_BITS_GNSS_PORT_PASS_THROUGH | 0x00800000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_CUR_PORT | 0x01000000 |
| RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_CUR_PORT | 0x02000000 |
| RTK_CFG_BITS_BASE_OUTPUT_RTCM3_CLEAR_CUR_PORT | 0x04000000 |
| RTK_CFG_BITS_MULTIPATH_MITIGATION | 0x08000000 |
| RTK_CFG_BITS_BASE_OUTPUT_RTCM3_CUR_PORT_MASK | (RTK_CFG_BITS_BASE_OUTPUT_GNSS1_RTCM3_CUR_PORT|RTK_CFG_BITS_BASE_OUTPUT_GNSS2_RTCM3_CUR_PORT) |
| RTK_CFG_BITS_BASE_UBLOX_MASK | (RTK_CFG_BITS_BASE_GNSS1_UBLOX_MASK|RTK_CFG_BITS_BASE_GNSS2_UBLOX_MASK) |
| RTK_CFG_BITS_BASE_RTCM3_MASK | (RTK_CFG_BITS_BASE_GNSS1_RTCM3_MASK|RTK_CFG_BITS_BASE_GNSS2_RTCM3_MASK) |
| RTK_CFG_BITS_BASE_MODE | (RTK_CFG_BITS_BASE_UBLOX_MASK|RTK_CFG_BITS_BASE_RTCM3_MASK) |
| RTK_CFG_BITS_ROVER_MODE_ONBOARD_MASK | (RTK_CFG_BITS_ROVER_MODE_RTK_POSITIONING_DEPRECATED|RTK_CFG_BITS_ROVER_MODE_RTK_COMPASSING_DEPRECATED) |
| RTK_CFG_BITS_ALL_MODES_MASK | (RTK_CFG_BITS_ROVER_MODE_MASK|RTK_CFG_BITS_BASE_MODE) |
RTK Solution Status¶
(eRtkSolStatus)
| Field | Value |
|---|---|
| rtk_solution_status_none | 0 |
| rtk_solution_status_fix | 1 |
| rtk_solution_status_float | 2 |
| rtk_solution_status_sbas | 3 |
| rtk_solution_status_dgps | 4 |
| rtk_solution_status_single | 5 |
Raw GPS Data Type¶
(eRawDataType)
| Field | Value |
|---|---|
| raw_data_type_observation | 1 |
| raw_data_type_ephemeris | 2 |
| raw_data_type_glonass_ephemeris | 3 |
| raw_data_type_sbas | 4 |
| raw_data_type_base_station_antenna_position | 5 |
| raw_data_type_ionosphere_model_utc_alm | 6 |
System Configuration¶
(eSysConfigBits)
| Field | Value |
|---|---|
| UNUSED1 | 0x00000001 |
| SYS_CFG_BITS_ENABLE_MAG_CONTINUOUS_CAL | 0x00000002 |
| SYS_CFG_BITS_AUTO_MAG_RECAL | 0x00000004 |
| SYS_CFG_BITS_DISABLE_MAG_DECL_ESTIMATION | 0x00000008 |
| SYS_CFG_BITS_DISABLE_LEDS | 0x00000010 |
| SYS_CFG_BITS_MAG_RECAL_MODE_MASK | 0x00000700 |
| SYS_CFG_BITS_MAG_RECAL_MODE_OFFSET | 8 |
| SYS_CFG_BITS_MAG_ENABLE_WMM_DECLINATION | 0x00000800 |
| SYS_CFG_BITS_DISABLE_MAGNETOMETER_FUSION | 0x00001000 |
| SYS_CFG_BITS_DISABLE_BAROMETER_FUSION | 0x00002000 |
| SYS_CFG_BITS_DISABLE_GNSS1_FUSION | 0x00004000 |
| SYS_CFG_BITS_DISABLE_GNSS2_FUSION | 0x00008000 |
| SYS_CFG_BITS_DISABLE_AUTO_ZERO_VELOCITY_UPDATES | 0x00010000 |
| SYS_CFG_BITS_DISABLE_AUTO_ZERO_ANGULAR_RATE_UPDATES | 0x00020000 |
| SYS_CFG_BITS_DISABLE_INS_EKF | 0x00040000 |
| SYS_CFG_BITS_DISABLE_AUTO_BIT_ON_STARTUP | 0x00080000 |
| SYS_CFG_BITS_DISABLE_WHEEL_ENCODER_FUSION | 0x00100000 |
| SYS_CFG_BITS_ENABLE_GNSS_ANTENNA_OFFSET_ESTIMATION | 0x00200000 |
| SYS_CFG_BITS_BOR_LEVEL_0 | 0x0 |
| SYS_CFG_BITS_BOR_LEVEL_1 | 0x1 |
| SYS_CFG_BITS_BOR_LEVEL_2 | 0x2 |
| SYS_CFG_BITS_BOR_LEVEL_3 | 0x3 |
| SYS_CFG_BITS_BOR_THRESHOLD_MASK | 0x00C00000 |
| SYS_CFG_BITS_BOR_THRESHOLD_OFFSET | 22 |
| SYS_CFG_USE_REFERENCE_IMU_IN_EKF | 0x01000000 |
| SYS_CFG_EKF_REF_POINT_STATIONARY_ON_STROBE_INPUT | 0x02000000 |