The Hub broadcasts these UDP messages to all devices on its Wi-Fi subnet using the subnet broadcast address, 192.168.23.255. Connect your receiving device to the Hub’s Wi-Fi network and listen on the ports your application needs.
Output ports
| Name | Port | Direction | Introduced | Purpose |
|---|---|---|---|---|
| Hub data | 2000 | Output | Firmware 1 | Hub state and status; firmware 6 changed this to Hub-only data. |
| Stadia | 2003 | Output | Firmware 6 | Rebroadcast of Stadia data received over Bluetooth. |
| Heart rate | 2004 | Output | Firmware 6 | Rebroadcast of Bluetooth heart rate. |
| Metadata | 2005 | Output | Firmware 6 | Serial number and aircraft/pilot metadata. |
Hub data is broadcast at 50 Hz, metadata at 1 Hz, and heart rate whenever Bluetooth heart rate data is received. Stadia data is rebroadcast whenever a new Bluetooth measurement is received.
GDL 90 is a separate output interface with a default configurable port of 4000. See GDL 90 output format for its framing and message definitions.
Reading a message
- Connect your computer or application device to the Hub’s Wi-Fi network.
- Receive broadcast UDP datagrams on port 2000.
- Read the first byte to identify the message version. Use that version’s field and status tables below.
- Check the status flags to see whether the navigation system is initialized, sensors are healthy, and readings are new.
- For UDP Hub version 2, listen to the relevant separate ports for external measurements, heart rate, and metadata.
Each UDP message starts with its version byte. It does not contain the log file’s two-byte header, payload length, or Fletcher-16 checksum.
Encoding
Read fields in the order listed in the table. The Type column gives each field’s size:
| Notation | Meaning |
|---|---|
U1, U2, U4 |
Unsigned integer, 1 / 2 / 4 bytes |
I1, I2, I4 |
Signed integer, 1 / 2 / 4 bytes |
C1 |
One character byte |
F4 |
Four-byte, single-precision floating point |
[N] |
Array of N elements |
Multiply the stored integer by the listed scale to obtain the measurement. For example, a stored pitch of 1234 with scale 1 / 100 means 12.34 degrees. Follow the description instead for fields containing status bits or an altitude/year offset.
Multibyte fields are little-endian: the least significant byte comes first. Fields are packed together without padding.
Rounding and saturation
For Hub UDP version 2, the sender rounds measurements to the nearest stored integer. Halfway values round away from zero. Values that exceed the integer’s range are limited to its minimum or maximum, so the transmitted value can understate the size of a measurement.
For example, horz_pos_acc_ft and vert_pos_acc_ft use U1 with a scale of 0.1 ft. Their largest encoded value is 255, which decodes to 25.5 ft; the actual estimated error can be larger. Similarly, vel_acc_kts tops out at 25.5 knots. These limits are not special invalid-value markers. Use the status flags to assess data health.
Hub message versions
Use the first byte of the port 2000 message to select a layout. Versions are listed in ascending order below.
| Version | Complete message size | Contents |
|---|---|---|
| 0 | 91 bytes | Hub, external air-data, and AGL measurements. |
| 1 | 99 bytes | Adds calibrated airspeed, wind, and Stadia identification. |
| 2 | 67 bytes | Hub measurements only; external measurements use separate ports. |
Hub version 0
Port 2000 · output · 50 Hz · version byte 0
This version includes external air-data and AGL measurements.
Version 0 data fields
The message is 91 bytes, including the version byte, with no padding between fields.
| Type | Name | Scale | Unit | Description |
|---|---|---|---|---|
U1 |
version |
- | - | Version number, 0. |
U1[6] |
status |
- | - | Flags listed in the status table below. |
I1 |
cpu_die_temp_c |
1 | C | CPU die temperature. |
I1 |
imu_die_temp_c |
1 | C | IMU die temperature. |
I1 |
mag_die_temp_c |
1 | C | Magnetometer die temperature. |
I1 |
pres_die_temp_c |
1 | C | Static pressure die temperature. |
I1 |
airdata_die_temp_c |
1 | C | External airdata module die temperature. |
I1 |
agl_alt_die_temp_c |
1 | C | External AGL altimeter module die temperature. |
U1 |
horz_pos_acc_ft |
1 / 10 | ft | Horizontal position accuracy estimate from the GNSS receiver. |
U1 |
vert_pos_acc_ft |
1 / 10 | ft | Vertical position accuracy estimate from the GNSS receiver. |
U1 |
vel_acc_kts |
1 / 10 | kts | Velocity accuracy estimate from the GNSS receiver. |
U1 |
gnss_fix_num_sv |
- | - | The lower 3 bits encode the GNSS fix (0 = no fix, 2 = 2D fix, 3 = 3D fix, 4 = differential GNSS fix). The upper 5 bits encode the number of satellite vehicles used in the GNSS solution. |
U1 |
utc_year |
- | - | Year from the GNSS receiver; add 1970 to obtain the calendar year. |
U1 |
utc_month |
- | - | UTC month from the GNSS receiver. |
U1 |
utc_day |
- | - | UTC day from the GNSS receiver. |
U1 |
utc_hour |
- | - | UTC hour from the GNSS receiver. |
U1 |
utc_min |
- | - | UTC minute from the GNSS receiver. |
U1 |
utc_sec |
- | - | UTC second from the GNSS receiver. |
I2 |
pitch_deg |
1 / 100 | deg | Pitch angle (+up). |
I2 |
roll_deg |
1 / 100 | deg | Roll angle (+right). |
I2 |
mag_var_deg |
1 / 100 | deg | Magnetic variation (+east). |
U2 |
true_heading_deg |
1 / 100 | deg | Heading angle, true, 0 - 360. |
U2 |
gnd_spd_kts |
1 / 100 | kts | Ground speed. |
U2 |
gnd_track_deg |
1 / 100 | deg | Ground track, true, 0 - 360. |
I2 |
flt_path_deg |
1 / 100 | deg | Flight path angle. |
I2 |
climb_rate_ftpm |
1 | ft/min | Climb rate. |
I2 |
load_factor |
1 / 1000 | G | Load factor. |
I2 |
pitch_rate_dps |
1 / 10 | deg/s | Pitch rate (+pitch up). |
I2 |
roll_rate_dps |
1 / 10 | deg/s | Roll rate (+roll right). |
I2 |
yaw_rate_dps |
1 / 10 | deg/s | Yaw rate (+yaw right). |
I2 |
accel_x_g |
1 / 1000 | G | Acceleration (+forward out the nose). |
I2 |
accel_y_g |
1 / 1000 | G | Acceleration (+right). |
I2 |
accel_z_g |
1 / 1000 | G | Acceleration (+down). |
U2 |
alt_wgs84_ft |
- | ft | Altitude above the WGS84 ellipsoid, biased by +10,000 ft (i.e. alt = alt_wgs84_ft - 10000). |
U2 |
alt_msl_ft |
- | ft | Altitude above Mean Sea Level (MSL), biased by +10,000 ft (i.e. alt = alt_msl_ft - 10000). |
U2 |
cabin_pres_alt_ft |
- | ft | Cabin pressure altitude, biased by +10,000 ft (i.e. pres_alt = cabin_pres_alt_ft - 10000). |
U2 |
cabin_pres_pa |
2 | Pa | Cabin pressure. |
U2 |
airdata_static_pres_pa |
2 | Pa | External airdata module static pressure. |
U2 |
airdata_diff_pres_pa |
1 | Pa | External airdata module differential pressure. |
I2 |
airdata_oat_c |
1 / 100 | C | External airdata module Outside Air Temperature (OAT). |
U2 |
airdata_ias_kts |
1 / 100 | kts | External airdata module Indicated Air Speed (IAS). |
U2 |
airdata_tas_kts |
1 / 100 | kts | External airdata module True Air Speed (TAS). |
U2 |
airdata_pres_alt_ft |
- | ft | External airdata pressure altitude, biased by +10,000 ft (pres_alt = airdata_pres_alt_ft - 10000). |
U2 |
airdata_density_alt_ft |
- | ft | External airdata density altitude, biased by +10,000 ft (density_alt = airdata_density_alt_ft - 10000). |
I2 |
airdata_aoa |
1 / 100 | - | External angle of attack. The AOA type flag selects degrees or pressure ratio. |
I2 |
agl_alt_in |
1 | in | External AGL altimeter altitude. |
I4 |
lat_deg |
1e-7 | deg | Latitude. |
I4 |
lon_deg |
1e-7 | deg | Longitude. |
U4 |
sys_time_ms |
- | ms | Elapsed time since power-on. |
Version 0 status flags
Byte 0 is the first byte of status. A flag is set when the byte AND the listed mask is nonzero. Use this version’s table; log packets and other UDP versions assign the bits differently.
| Byte | Mask | Meaning when set |
|---|---|---|
| 0 | 0x01 |
Filtered input voltage between configured low and warning voltages. |
| 0 | 0x02 |
Filtered input voltage below configured low voltage. |
| 0 | 0x04 |
System die temperatures (CPU, IMU, magnetometer, and static pressure sensor) all reporting ok. |
| 0 | 0x08 |
CPU die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 0 | 0x10 |
INS initialized. |
| 0 | 0x20 |
INS healthy. |
| 1 | 0x01 |
New IMU data received. |
| 1 | 0x02 |
IMU healthy. |
| 1 | 0x04 |
IMU die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x08 |
New magnetometer data received. |
| 1 | 0x10 |
Magnetometer healthy. |
| 1 | 0x20 |
Magnetometer die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x40 |
New GNSS data received. |
| 1 | 0x80 |
GNSS healthy. |
| 2 | 0x01 |
New static pressure data received. |
| 2 | 0x02 |
Static pressure healthy. |
| 2 | 0x04 |
Static pressure die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 3 | 0x01 |
New external airdata message received. |
| 3 | 0x02 |
External airdata module connected. |
| 3 | 0x04 |
External airdata battery status warning. |
| 3 | 0x08 |
External airdata battery status critically low. |
| 3 | 0x10 |
External airdata board die temperature ok. |
| 3 | 0x20 |
External airdata OAT measurement available. |
| 3 | 0x40 |
External airdata AOA measurement available. |
| 3 | 0x80 |
External airdata new static pressure data received. |
| 4 | 0x01 |
External airdata static pressure healthy. |
| 4 | 0x02 |
External airdata new differential pressure data received. |
| 4 | 0x04 |
External airdata differential pressure healthy. |
| 4 | 0x08 |
External airdata new OAT data received. |
| 4 | 0x10 |
External airdata OAT healthy. |
| 4 | 0x20 |
External airdata new AOA data received. |
| 4 | 0x40 |
External airdata AOA healthy. |
| 4 | 0x80 |
AOA is in degrees when set; a pressure ratio when clear. |
| 5 | 0x01 |
New external AGL altimeter message received. |
| 5 | 0x02 |
External AGL altimeter module connected. |
| 5 | 0x04 |
External AGL altimeter battery status warning. |
| 5 | 0x08 |
External AGL altimeter battery status critically low. |
| 5 | 0x10 |
External AGL altimeter board die temperature ok. |
| 5 | 0x20 |
External AGL altimeter new sensor data received. |
| 5 | 0x40 |
External AGL altimeter sensor healthy. |
| 5 | 0x80 |
External AGL altimeter sensor in range. |
Hub version 1
Port 2000 · output · 50 Hz · version byte 1
This version includes external air-data and AGL measurements.
Version 1 data fields
The message is 99 bytes, including the version byte, with no padding between fields.
| Type | Name | Scale | Unit | Description |
|---|---|---|---|---|
U1 |
version |
- | - | Version number, 1. |
U1[8] |
status |
- | - | Flags listed in the status table below. |
I1 |
cpu_die_temp_c |
1 | C | CPU die temperature. |
I1 |
imu_die_temp_c |
1 | C | IMU die temperature. |
I1 |
mag_die_temp_c |
1 | C | Magnetometer die temperature. |
I1 |
pres_die_temp_c |
1 | C | Static pressure die temperature. |
I1 |
airdata_die_temp_c |
1 | C | External airdata module die temperature. |
I1 |
agl_alt_die_temp_c |
1 | C | External AGL altimeter module die temperature. |
U1 |
horz_pos_acc_ft |
1 / 10 | ft | Horizontal position accuracy estimate from the GNSS receiver. |
U1 |
vert_pos_acc_ft |
1 / 10 | ft | Vertical position accuracy estimate from the GNSS receiver. |
U1 |
vel_acc_kts |
1 / 10 | kts | Velocity accuracy estimate from the GNSS receiver. |
U1 |
gnss_fix_num_sv |
- | - | The lower 3 bits encode the GNSS fix (0 = no fix, 2 = 2D fix, 3 = 3D fix, 4 = differential GNSS fix). The upper 5 bits encode the number of satellite vehicles used in the GNSS solution. |
U1 |
utc_year |
- | - | Year from the GNSS receiver; add 1970 to obtain the calendar year. |
U1 |
utc_month |
- | - | UTC month from the GNSS receiver. |
U1 |
utc_day |
- | - | UTC day from the GNSS receiver. |
U1 |
utc_hour |
- | - | UTC hour from the GNSS receiver. |
U1 |
utc_min |
- | - | UTC minute from the GNSS receiver. |
U1 |
utc_sec |
- | - | UTC second from the GNSS receiver. |
I2 |
pitch_deg |
1 / 100 | deg | Pitch angle (+up). |
I2 |
roll_deg |
1 / 100 | deg | Roll angle (+right). |
I2 |
mag_var_deg |
1 / 100 | deg | Magnetic variation (+east). |
U2 |
true_heading_deg |
1 / 100 | deg | Heading angle, true, 0 - 360. |
U2 |
gnd_spd_kts |
1 / 100 | kts | Ground speed. |
U2 |
gnd_track_deg |
1 / 100 | deg | Ground track, true, 0 - 360. |
I2 |
flt_path_deg |
1 / 100 | deg | Flight path angle. |
I2 |
climb_rate_ftpm |
1 | ft/min | Climb rate. |
I2 |
load_factor |
1 / 1000 | G | Load factor. |
I2 |
pitch_rate_dps |
1 / 10 | deg/s | Pitch rate (+pitch up). |
I2 |
roll_rate_dps |
1 / 10 | deg/s | Roll rate (+roll right). |
I2 |
yaw_rate_dps |
1 / 10 | deg/s | Yaw rate (+yaw right). |
I2 |
accel_x_g |
1 / 1000 | G | Acceleration (+forward out the nose). |
I2 |
accel_y_g |
1 / 1000 | G | Acceleration (+right). |
I2 |
accel_z_g |
1 / 1000 | G | Acceleration (+down). |
U2 |
alt_wgs84_ft |
- | ft | Altitude above the WGS84 ellipsoid, biased by +10,000 ft (i.e. alt = alt_wgs84_ft - 10000). |
U2 |
alt_msl_ft |
- | ft | Altitude above Mean Sea Level (MSL), biased by +10,000 ft (i.e. alt = alt_msl_ft - 10000). |
U2 |
cabin_pres_alt_ft |
- | ft | Cabin pressure altitude, biased by +10,000 ft (i.e. pres_alt = cabin_pres_alt_ft - 10000). |
U2 |
cabin_pres_pa |
2 | Pa | Cabin pressure. |
U2 |
airdata_static_pres_pa |
2 | Pa | External airdata module static pressure. |
U2 |
airdata_diff_pres_pa |
1 | Pa | External airdata module differential pressure. |
I2 |
airdata_oat_c |
1 / 100 | C | External airdata module Outside Air Temperature (OAT). |
U2 |
airdata_ias_kts |
1 / 100 | kts | External airdata module Indicated Air Speed (IAS). |
U2 |
airdata_cas_kts |
1 / 100 | kts | External airdata module Calibrated Air Speed (CAS). |
U2 |
airdata_tas_kts |
1 / 100 | kts | External airdata module True Air Speed (TAS). |
U2 |
airdata_pres_alt_ft |
- | ft | External airdata pressure altitude, biased by +10,000 ft (pres_alt = airdata_pres_alt_ft - 10000). |
U2 |
airdata_density_alt_ft |
- | ft | External airdata density altitude, biased by +10,000 ft (density_alt = airdata_density_alt_ft - 10000). |
I2 |
airdata_aoa |
1 / 100 | - | External angle of attack. The AOA type flag selects degrees or pressure ratio. |
U2 |
airdata_wind_spd_kts |
1 / 100 | kts | External airdata module estimated wind speed, kts. |
U2 |
airdata_wind_dir_true_deg |
1 / 100 | deg | External airdata module estimated wind direction, true, deg. |
I2 |
agl_alt_in |
1 | in | External AGL altimeter altitude. |
I4 |
lat_deg |
1e-7 | deg | Latitude. |
I4 |
lon_deg |
1e-7 | deg | Longitude. |
U4 |
sys_time_ms |
- | ms | Elapsed time since power-on. |
Version 1 status flags
Byte 0 is the first byte of status. A flag is set when the byte AND the listed mask is nonzero. Use this version’s table; log packets and other UDP versions assign the bits differently.
| Byte | Mask | Meaning when set |
|---|---|---|
| 0 | 0x01 |
Filtered input voltage between configured low and warning voltages. |
| 0 | 0x02 |
Filtered input voltage below configured low voltage. |
| 0 | 0x04 |
System die temperatures (CPU, IMU, magnetometer, and static pressure sensor) all reporting ok. |
| 0 | 0x08 |
CPU die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 0 | 0x10 |
INS initialized. |
| 0 | 0x20 |
INS healthy. |
| 1 | 0x01 |
New IMU data received. |
| 1 | 0x02 |
IMU healthy. |
| 1 | 0x04 |
IMU die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x08 |
New magnetometer data received. |
| 1 | 0x10 |
Magnetometer healthy. |
| 1 | 0x20 |
Magnetometer die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x40 |
New GNSS data received. |
| 1 | 0x80 |
GNSS healthy. |
| 2 | 0x01 |
New static pressure data received. |
| 2 | 0x02 |
Static pressure healthy. |
| 2 | 0x04 |
Static pressure die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 3 | 0x01 |
New external airdata message received. |
| 3 | 0x02 |
External airdata module connected. |
| 3 | 0x04 |
External airdata battery status warning. |
| 3 | 0x08 |
External airdata battery status critically low. |
| 3 | 0x10 |
External airdata board die temperature ok. |
| 3 | 0x20 |
External airdata OAT measurement available. |
| 3 | 0x40 |
External airdata AOA measurement available. |
| 3 | 0x80 |
External airdata new static pressure data received. |
| 4 | 0x01 |
External airdata static pressure healthy. |
| 4 | 0x02 |
External airdata new differential pressure data received. |
| 4 | 0x04 |
External airdata differential pressure healthy. |
| 4 | 0x08 |
External airdata new OAT data received. |
| 4 | 0x10 |
External airdata OAT healthy. |
| 4 | 0x20 |
External airdata new AOA data received. |
| 4 | 0x40 |
External airdata AOA healthy. |
| 4 | 0x80 |
AOA is in degrees when set; a pressure ratio when clear. |
| 5 | 0x01 |
External airdata KCAS available. |
| 5 | 0x02 |
External airdata wind estimate available. |
| 6 | 0x01 |
New external AGL altimeter message received. |
| 6 | 0x02 |
External AGL altimeter module connected. |
| 6 | 0x04 |
External AGL altimeter battery status warning. |
| 6 | 0x08 |
External AGL altimeter battery status critically low. |
| 6 | 0x10 |
External AGL altimeter board die temperature ok. |
| 6 | 0x20 |
External AGL altimeter new sensor data received. |
| 6 | 0x40 |
External AGL altimeter sensor healthy. |
| 6 | 0x80 |
External AGL altimeter sensor in range. |
| 7 | 0x01 |
External AGL altimeter is a Skeeter Enterprises LLC Stadia sensor. |
This version has eight status bytes. Only bit 0x01 is defined in byte 7; ignore its other bits.
Hub version 2
Port 2000 · output · 50 Hz · version byte 2
External measurements are not included; receive them on their assigned ports.
Version 2 data fields
The message is 67 bytes, including the version byte, with no padding between fields.
| Type | Name | Scale | Unit | Description |
|---|---|---|---|---|
U1 |
version |
- | - | Version number, 2. |
U1[2] |
status |
- | - | Flags listed in the status table below. |
I1 |
cpu_die_temp_c |
1 | C | CPU die temperature. |
I1 |
imu_die_temp_c |
1 | C | IMU die temperature. |
I1 |
mag_die_temp_c |
1 | C | Magnetometer die temperature. |
I1 |
pres_die_temp_c |
1 | C | Static pressure die temperature. |
U1 |
horz_pos_acc_ft |
1 / 10 | ft | Horizontal position accuracy estimate from the GNSS receiver. |
U1 |
vert_pos_acc_ft |
1 / 10 | ft | Vertical position accuracy estimate from the GNSS receiver. |
U1 |
vel_acc_kts |
1 / 10 | kts | Velocity accuracy estimate from the GNSS receiver. |
U1 |
gnss_fix_num_sv |
- | - | The lower 3 bits encode the GNSS fix (0 = no fix, 2 = 2D fix, 3 = 3D fix, 4 = differential GNSS fix). The upper 5 bits encode the number of satellite vehicles used in the GNSS solution. |
U1 |
utc_year |
- | - | Year from the GNSS receiver; add 1970 to obtain the calendar year. |
U1 |
utc_month |
- | - | UTC month from the GNSS receiver. |
U1 |
utc_day |
- | - | UTC day from the GNSS receiver. |
U1 |
utc_hour |
- | - | UTC hour from the GNSS receiver. |
U1 |
utc_min |
- | - | UTC minute from the GNSS receiver. |
U1 |
utc_sec |
- | - | UTC second from the GNSS receiver. |
I2 |
pitch_deg |
1 / 100 | deg | Pitch angle (+up). |
I2 |
roll_deg |
1 / 100 | deg | Roll angle (+right). |
I2 |
mag_var_deg |
1 / 100 | deg | Magnetic variation (+east). |
U2 |
true_heading_deg |
1 / 100 | deg | Heading angle, true, 0 - 360. |
U2 |
gnd_spd_kts |
1 / 100 | kts | Ground speed. |
U2 |
gnd_track_true_deg |
1 / 100 | deg | Ground track, true, 0 - 360. |
I2 |
flt_path_deg |
1 / 100 | deg | Flight path angle. |
I2 |
climb_rate_ftpm |
1 | ft/min | Climb rate. |
I2 |
load_factor |
1 / 1000 | G | Load factor. |
I2 |
pitch_rate_dps |
1 / 10 | deg/s | Pitch rate (+pitch up). |
I2 |
roll_rate_dps |
1 / 10 | deg/s | Roll rate (+roll right). |
I2 |
yaw_rate_dps |
1 / 10 | deg/s | Yaw rate (+yaw right). |
I2 |
accel_x_g |
1 / 1000 | G | Acceleration (+forward out the nose). |
I2 |
accel_y_g |
1 / 1000 | G | Acceleration (+right). |
I2 |
accel_z_g |
1 / 1000 | G | Acceleration (+down). |
U2 |
alt_wgs84_ft |
- | ft | Altitude above the WGS84 ellipsoid, biased by +10,000 ft (i.e. alt = alt_wgs84_ft - 10000). |
U2 |
alt_msl_ft |
- | ft | Altitude above Mean Sea Level (MSL), biased by +10,000 ft (i.e. alt = alt_msl_ft - 10000). |
U2 |
cabin_pres_alt_ft |
- | ft | Cabin pressure altitude, biased by +10,000 ft (i.e. pres_alt = cabin_pres_alt_ft - 10000). |
U2 |
cabin_pres_pa |
2 | Pa | Cabin pressure. |
I4 |
lat_deg |
1e-7 | deg | Latitude. |
I4 |
lon_deg |
1e-7 | deg | Longitude. |
U4 |
sys_time_ms |
- | ms | Elapsed time since power-on. |
Version 2 status flags
Byte 0 is the first byte of status. A flag is set when the byte AND the listed mask is nonzero. Use this version’s table; log packets and other UDP versions assign the bits differently.
| Byte | Mask | Meaning when set |
|---|---|---|
| 0 | 0x01 |
Filtered input voltage between configured low and warning voltages. |
| 0 | 0x02 |
Filtered input voltage below configured low voltage. |
| 0 | 0x04 |
CPU die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 0 | 0x08 |
INS initialized. |
| 0 | 0x10 |
INS healthy. |
| 0 | 0x20 |
New IMU data received. |
| 0 | 0x40 |
IMU healthy. |
| 0 | 0x80 |
IMU die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x01 |
New magnetometer data received. |
| 1 | 0x02 |
Magnetometer healthy. |
| 1 | 0x04 |
Magnetometer die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x08 |
New static pressure data received. |
| 1 | 0x10 |
Static pressure healthy. |
| 1 | 0x20 |
Static pressure die temperature within the allowed range, with a 10°C margin inside the sensor limits. |
| 1 | 0x40 |
New GNSS data received. |
| 1 | 0x80 |
GNSS healthy. |
Stadia rebroadcast
Port 2003 · output · introduced in firmware 6
This message rebroadcasts Stadia AGL data received over Bluetooth. Altitude has the mounting-height bias removed.
| Type | Name | Scale | Unit | Description |
|---|---|---|---|---|
U1 |
version |
- | - | Message version number, 0. |
U1 |
batt_prcnt |
1 | % | Estimated battery life percentage reported from Stadia (100% is full, 0% is empty). |
I2 |
agl_alt_in |
1 | in | Above Ground Level (AGL) altitude reported from Stadia with the altitude bias removed, in. |
Heart rate
Port 2004 · output · introduced in firmware 6
This message is broadcast whenever Bluetooth heart-rate data is received.
| Type | Name | Scale | Unit | Description |
|---|---|---|---|---|
U1 |
version |
- | - | Message version number, 0. |
U1 |
heart_rate_bpm |
1 | BPM | Heart rate beats per minute. |
Metadata
Port 2005 · output · 1 Hz · introduced in firmware 6
This message contains the serial number, aircraft tail number, pilot name, and aircraft type. It begins with the version byte; there is no MD header, length byte, or Fletcher-16 checksum.
| Type | Name | Scale | Unit | Description |
|---|---|---|---|---|
U1 |
version |
- | - | Message version number, 0. |
U1[6] |
serial_num |
- | - | OFH serial number. |
C1[12] |
tail_num |
- | - | Aircraft tail number, if configured. Text ending with a null byte. |
C1[24] |
pilot_name |
- | - | Pilot name, if configured. Text ending with a null byte. |
C1[12] |
aircraft_type |
- | - | Aircraft type, if configured. Text ending with a null byte. |