BARNARD MICROSYSTEMS LIMITED

helping you keep an eye on things...

   
     
Home / unmanned air systems / reference / status message
   

 

   
Home | introduction | products | unmanned air systems | circuit design software | contact | what's new | site info
   
 

 

   

unmanned air ...

InView RPA 
VuFab RPA 
Telemaster RCA 
 

reference

heli flight dynamics 
heli training 
status message 
remote control 

 

 

Small Unmanned Aircraft Status Message syntax

In this section, we detail a binary Unmanned Aircraft Status Message Syntax that is only 600 bytes in size. This 4,800 bit message can be BYTE multiplexed at a rate of 1 message per second with 4,800 bps CELP encoded digitised Tower or ATC voice. The Tower or ATC centre voice together with one status message per second can be transmitted using the modem capability of an inexpensive satellite phone to a low earth orbit satellite.

   

 

Message length

We calculate a Status Message length for a well equipped Unmanned Aircraft with:

  • three engines
  • three battery units
  • one generator
  • five Power Supply Units
  • four altimeters (3 ultrasonic + 1 LIDAR)
  • five communication systems (3 VHF + 1 satellite modem + 1 GSM modem)
  • a Sense and Avoid system
  • four cameras

BLOCK 0

section

Bytes

 

Preamble = 55:55:55:55:55:55:0F:0F

consisting of:

6 x NULL_0101

NULL_0101 = 01010101 = HEX 55

2 x Preamble_0

Preamble_0 = 00001111 = HEX 0F

8

90 Bytes

BLOCK 0 has a checksum, but is not FEC encoded

padding with n x NULL_0101

34

Payload

44

BLOCK 0 checksum

4

 

BLOCK 1

section

Bytes

 

padding with NULL_0101

NULL_0101 = HEX 55 = 0101 0101

0

223 Bytes

BLOCK 1 is FEC encoded

223 B goes to 255 B FEC

Header

28

Power

54

GPS

67

Warnings

15

Communications systems

59

 

BLOCK 2

   

section

Bytes

 

padding with NULL_0101

NULL_0101 = HEX 55 = 0101 0101

2

223 Bytes

BLOCK 2 is FEC encoded

223 B goes to 255 B FEC

IMU

52

FCU

105

Sense and Avoid system

58

End_Of_String

1

  • BLOCK 0 has a 4 Byte unsigned integer checksum, but is not FEC encoded since the Payload Status is not considered to be "mission critical" from a command and control perspective
  • BLOCK 1 is FEC encoded to 255 Bytes, as is BLOCK 2, using Reed Solomon RS(255,223) coding.
  • If the data in BLOCK 1 or in BLOCK 2 is less than 233 Bytes, then the data is padded with NULL_0101 to 233 Bytes. NULL_0101 = 0101 0101, i.e. an alternating sequence of ONEs and ZEROs.
  • BLOCK 0, 1 and 2 data may be encrypted using an algorithm that does not increase the message size. Any encryption of BLOCK 1 and BLOCK 2 data is performed prior to FEC encoding.
  • The Payload BLOCK 0 + FEC encoded BLOCK 1 + FEC encoded BLOCK 2 = 600 Bytes = 4,800 bits.
  • This Status Message is BYTE multiplexed with the 4,800 bps digitised voice channel to end up with a 9,600 bps digital data signal that can be transmitted via a satellite phone modem.

Compatibility with STANAG 4586

"The length shall be a 32-bit unsigned integer of the number of bytes in the “Message Data”.  The length shall be any number between 1 and 538.

Note the UDP protocol under IPv4 has a guaranteed minimum datagram size of 576 bytes that must be supported by all implementations.  Subtracting the IPv4 header size of 20 bytes and the UDP header size of 8 bytes, leaves 548 bytes as the maximum amount data that can be sent in a datagram that will guarantee interoperability.  Therefore, no message or multi-message datagram shall exceed this data limit.  Subtracting the message wrapper size of 24 bytes, gives 524 bytes as the maximum message length of a single message with no room for another message in the datagram.  Extra care should be taken when packing multiple messages in the same datagram." - STANAG 4586

One can comply with the message size recommended in STANAG 4586 by sending the BLOCK 0 data (90 Bytes) in one datagram, and the BLOCK 1 + BLOCK 2 data (510 Bytes) in a second datagram. Both BLOCK 0 and BLOCK1 contain the same message number, so the Ground Control Station can correctly reunite the data on receipt of the two datagrams.

return to top

Status Message keywords

B0 HEX

Item_ID

name

Value

Bytes

comments on B1:B2:B3:B4

00

End_Of_String

0

Reserved for use at the end of the BLOCK 2 section.

01

BEGIN

1

beginning of section; B1 = section ID (shown next)

00 = HEADER (message header data: message_ID,...)

01 = IMU (Inertial Measurement Unit)

02 = FCU (Flight Control Unit)

03 = POWER (electrical power supplies monitoring)

04 = WARNINGS (warning flags: ON, OFF)

05 = COMMS (status of comms systems; BER, RSSI)

06 = PAYLOAD (any warnings from payload)

07 = GPS (GPS data, received each second)

08 = SENSE (from Sense and Avoid system, if fitted)

09 = engine

0A = flaps

0B = altimeter

0C = FCU_general

0D = battery

0E = PSU

0F = comms_system

10 = GPS_satellite

11 = air_object

12 = camera

13 = generator

02

END

0

end of section

03

ID_msg

3

16,777,216 unique message IDs

sufficient for 194 day (each 24 hours) UA flight

04

ID_UA_source

4

B1:B2 = country code = the International Telephone Dialling Code, where the largest number = 1929 (the North American Numbering Plan) for Puerto Rico.

In STANAG 4586 a single Byte country code is used for NATO and "friendly" countries: no codes for others!

B3:B4 = 65,536 unique IDs

05

time_UTC

3

hhmmss with hh using 24 hour UTC GPS clock

eg: 231205 = 23h:12:05 = 5 seconds past 11:12 pm

06

date_UTC

3

Format is yymmdd

example 080117 = 17 JAN 2008

07

ID_BLK12_format

2

B1 = BLOCK 1 format ID from 0 to 255

B2 = BLOCK 2 format ID from 0 to 255

08

ID_GCS_destination

4

B1:B2 = country code = the International Telephone Dialling Code, where the largest number = 1929 (the North American Numbering Plan) for Puerto Rico.

B3:B4 = 65,536 unique IDs

09

ID_GCS_backup

4

B1:B2 = country code = the International Telephone Dialling Code, where the largest number = 1929 (the North American Numbering Plan) for Puerto Rico.

B3:B4 = 65,536 unique IDs

0A - 0E

unused

 

5 Item_ID Bytes reserved for future use.

0F

Preamble_0

0

Used in the Preamble

HEX 0F = BIN 0000 1111

Example

text format

binary format

BEGIN HEADER

01:00 (not included)

ID_msg

ID_msg 133

03:00:00:85

ID_UA_source

ID_UA_source GB_133

04:2C:00:00:85

time_UTC

time_UTC 16:35:23

05:02:7E:C3

date_UTC

date_UTC 071114

06:01:15:CA

ID_BLK12_format

ID_BLK12_format 5 15

07:05:0F

ID_GCS_destination

ID_GCS_destination

08:2C:76:12:46

ID_GCS_backup

ID_GCS_backup

09:2C:A1:23:77

END

02 (not included)

Note that the BEGIN HEADER and the END Item_IDs are not included to save message length.

  • HEADER binary message section length = 28 Bytes

return to top

IMU section

B0 HEX

Item_ID

name

Value

Bytes

comments on B1:B2:B3

10

IMU_gyro_x

3

0 to +/- 8,388,607 millidegrees / sec in B1:B2:B3 format

11

IMU_gyro_y

3

0 to +/- 8,388,607 millidegrees / sec in B1:B2:B3 format

12

IMU_gyro_z

3

0 to +/- 8,388,607 millidegrees / sec in B1:B2:B3 format

13

IMU_accel_AVG_x

3

0 to +/- 8,388,607 ug in B1:B2:B3 format (g = 9.8m/s2)

14

IMU_accel_AVG_y

3

0 to +/- 8,388,607 ug in B1:B2:B3 format (g = 9.8m/s2)

15

IMU_accel_AVG_z

3

0 to +/- 8,388,607 ug in B1:B2:B3 format (g = 9.8m/s2)

16

IMU_mag_x

3

0 +/- 8,388,607 nT in B1:B2:B3 format

Earth's magnetic field strength = 48,489 nT

17

IMU_mag_y

3

0 to +/- 8,388,607 nT in B1:B2:B3 frmat

18

IMU_mag_z

3

0 to +/- 8,388,607 nT in B1:B2:B3 format

19

IMU_inclin_x

2

0 to +/- 32,767 millidegrees in B1:B2 format

This is the "angle-of-attack".

1A

IMU_inclin_y

2

0 to +/- 32,767 millidegrees in B1:B2 format

This is the "horizontal situation indicator".

1B

IMU_temp

2

IMU_temp = B1:B2 / 100 in degrees Centigrade

B1B2 / 100 = 0 to 655.35 degrees Centigrade

1C

IMU_AMP_vib_x

3

0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s2)

vibration amplitude of largest peak in spectrum (not f=0)

1D

IMU_FREQ_vib_x

3

0 to 16,777,215 milliHz in B1:B2:B3 format

vibration frequency of largest peak in spectrum (not f=0)

suitable for engine related vibrations to 1,006,632 rpm

1E

IMU_AMP_vib_y

3

0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s2)

1F

IMU_FREQ_vib_y

3

0 to 16,777,215 milliHz in B1:B2:B3 format

20

IMU_AMP_vib_z

3

0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s2)

21

IMU_FREQ_vib_z

3

0 to 16,777,215 milliHz in B1:B2:B3 format

22 - 2E

unused

 

13 Item_ID Bytes reserved for future use.

2F

IMU_fault

1

B1 = 0 to 255

if B1 = 0 no fault is reported from the IMU

if B1 = 1 to 255, fault number B1 was reported by IMU

Example

text format

binary format

BEGIN IMU

01:01 (not included)

IMU Item_IDs

52 Bytes

END

02 (not included)

  • IMU binary message section length = 52 Bytes

return to top

FCU section

FCU section: engine

B0 HEX

Item_ID

name

Value

Bytes

comments on B1:B2:B3:B4

30

eng_ID

1

0 to 255

31

eng_prop_pitch

2

0 to 255

0 = one extreme

255 = the other extreme

32

eng_speed_ACT

2

engine_speed = B1:B2 * 10

B1:B2 * 10 = 0 to 655,350 rpm

33

eng_carb_SET

1

0 to 255 where 255 = max setting

34

eng_TEMP

2

temp = B1:B2 / 100 degrees Centigrade

B1:B2 / 100 = 0 to 655.35 degrees Centigrade

35

eng_TEMP_exhaust

2

temp = B1:B2 / 100 degrees Centigrade

B1:B2 / 100 = 0 to 655.35 degrees Centigrade

36

eng_flow_rate_fuel

2

16 bit value from ADC in arbitrary units

37

eng_AMP_vib

3

0 to 16,777,215 ug in B1:B2:B3 format (g = 9.8m/s2)

vibration amplitude of largest peak in spectrum (not f=0)

38 - 3F

unused

 

8 Item_ID Bytes reserved for future use

FCU engine binary message section length = 15 Bytes per engine

FCU section: flaps

B0 HEX

Item_ID

name

Value

Bytes

comments on B1

40

F_aileron_LHS_set

1

0 to +/- 127 degrees

41

F_aileron_LHS_act

1

0 to +/- 127 degrees

42

F_aileron_RHS_set

1

0 to +/- 127 degrees

43

F_aileron_RHS_act

1

0 to +/- 127 degrees

44

F_lift_LHS_set

1

0 to +/- 127 degrees

45

F_lift_LHS_actual

1

0 to +/- 127 degrees

46

F_lift_RHS_set

1

0 to +/- 127 degrees

47

F_lift_RHS_actual

1

0 to +/- 127 degrees

48

F_rudder_set

1

0 to +/- 127 degrees

49

F_rudder_actual

1

0 to +/- 127 degrees

4A

F_elev_LHS_set

1

0 to +/- 127 degrees

4B

F_elev_LHS_actual

1

0 to +/- 127 degrees

4C

F_elev_RHS_set

1

0 to +/- 127 degrees

4D

3_elev_RHS_actual

1

0 to +/- 127 degrees

4E

F_airbrake_LHS_set

1

0 to +/- 127 degrees

4F

F_airbrake_LHS_act

1

0 to +/- 127 degrees

50

F_airbrake_RHS_set

1

0 to +/- 127 degrees

51

F_airbrake_RHS_act

1

0 to +/- 127 degrees

52 - 54

reserved

 

2 Item_ID Bytes reserved for future use

55

NULL_0101

0

This is a NULL command used to pad out BLOCKs

HEX 55 = BIN 0101 0101

The complimentary command is AA = NULL_1010

56 - 5F

unused

 

10 Item_ID Bytes reserved for future use

FCU flaps binary message section length = 18 Bytes

FCU section: general

B0 HEX

Item_ID

name

Value

Bytes

comments on B1:B2:B3:B4:B5

60

FCU_pressure_BARO

3

0 to 16,777,215 Pa

zero altitude = 101,325 Pa

61

FCU_speed_air_pitot

2

0 to 65,535 cm/s (= 2,359 kph = 1,466 mph)

62

FCU_fuel_1

2

0 to 65,535 millilitres (cc)

63

FCU_fuel_2

2

0 to 65,535 millilitres (cc)

64

FCU_fuel_3

2

0 to 65,535 millilitres (cc)

65

FCU_direction_wind

2

0 to 359 degrees: NORTH is 0 degrees

66

FCU_speed_wind

1

0 to 255 kph (= 158 mph)

67

FCU_height_AGL_ALT

4

B1 = altimeter_type

where U = ultrasonic; L = LIDAR; M = microwave

B2 = altimeter_ID from 0 to 255

B3:B4:B5 = 0 to 16,777,215 mm (16.7 km = FL550)

68

FCU_dx_OpFlow

2

0 to 65,535 cm (655 m/s = 2,359 kph = 1,465 mph)

69

FCU_dy_OpFlow

2

0 to 65,535 cm (655 m/s = 2,359 kph = 1,465 mph)

6A

FCU_dPITCH_OpFlow

2

0 to +/- 32,767 millidegrees

6B

FCU_dROLL_OpFlow

2

0 to +/- 32,767 millidegrees

6C

FCU_light_ambient

3

ambient_light = B1:B2:B3 / 100

ambient_light = 0 to 167,772.15 LUX

sunlight = 100,000 LUX; moonlight = 0.1 LUX

6D - 6E

unused

 

2 Item_ID Bytes reserved for future use

6F

FCU_fault

1

B1 = 0 to 255

if B1 = 0 no fault is reported from the FCU

if B1 = 1 to 255, fault number B1 was reported by FCU

FCU general binary message section length = 26 + n * 4 Bytes where n = number of altimeters

FCU general binary message section length = 42 Bytes for 4 altimeters: 3 ultrasonic + 1 LIDAR

Example

text format

binary format

BEGIN FCU

01:02 (not included)

BEGIN engine

01:09 (not included)

15 Bytes per engine

FCU engine Item_IDs

15 Bytes per engine

END

02 (not included)

BEGIN flaps

01:0A (not included)

18 Bytes

FCU flaps Item_IDs

18 Bytes

END

02 (not included)

BEGIN FCU_general

01:0C (not included)

FCU general Item_IDs

42 Bytes for a four altimeter system

END

02 (not included)

END

02 (not included)

  • FCU binary message section length = 105 Bytes for 3 engines, 4 altimeters, Unmanned Aircraft

return to top

Power

B0 HEX

Item_ID

name

Value

Bytes

comments B1:B2:B3

70

batt_ID

1

0 to 255

71

batt_voltage

2

0 to 65,535 mV

72

batt_current

2

0 to 65,535 mA

73

batt_TEMP

1

0 to 255 degrees Centigrade

74

gen_ID

1

0 to 255

75

gen_RMS_voltage

2

0 to 65,535 mV

76

gen_RMS_current

2

0 to 65,535 mA

77

gen_TEMP

1

0 to 255

78

PSU_ID

1

0 to 255

79

PSU_voltage

2

0 to 65,535 mV with referece to GROUND

7A

PSU_current

2

0 to 65,535 mA

7B

PSU_TEMP

1

0 to 255 degrees Centigrade

7C - 7F

unused

 

4 Item_ID Bytes reserved for future use

Example

text format

binary format

BEGIN POWER

01:03 (not included)

BEGIN battery

01:0D (not included)

6 Bytes per battery

battery Item_IDs

6 Bytes

END battery

02 (not included)

BEGIN generator

01:1D (not included)

6 Bytes per generator

generator Item_IDs

6 Bytes

END_generator

02 (not included)

BEGIN PSU

01:1E (not included)

6 Bytes per PSU

PSU Item_IDs

6 Bytes

END PSU

02 (not included)

END POWER

02 (not included)

Typical battery and PSU configuration on a small Unmanned Aircraft:

  • battery 1 at -7.4 volts (two LiPo cells in series) for -5V PSU
  • battery 2 at 7.4 volts (two LiPo cells in series) for 3.3V and 5.0V PSU
  • battery 3 at 14.8 V (three LiPo cells in series) for 12 V and 28 V PSU
  • generator 1 at 6 V RMS
  • PSU 1 at -5.0 V
  • PSU 2 at +3.3 V
  • PSU 3 at +5.0 V
  • PSU 4 at +12 V
  • PSU 5 at +28 V for the payload

Binary message length = j * 6 + k * 6 + n * 6 Bytes

where j = number of batteries; k = number of generators; n = number of PSUs

  • POWER binary message section length = 54 Bytes for 3 batteries + 1 generator + 5 PSUs

return to top

Warnings

B0 HEX

Item_ID

name

Value

Bytes

comments B2:B3:B4

80

warning_lights

4

B1

warning_bitmap_format_ID

B2

w01 = 2 bit warning_01

= 00 for warning OFF

= 01 for warning ON

= 10 for not supported

= 11 for data corruption

w02 = 2 bit warning_02

w03 = 2 bit warning_03

w04 = 2 bit warning_04

B3

w01 = 2 bit warning_05

w02 = 2 bit warning_06

w03 = 2 bit warning_07

w04 = 2 bit warning_08

B4

w01 = 2 bit warning_09

w02 = 2 bit warning_10

w03 = 2 bit warning_11

w04 = 2 bit warning_12

warning_bitmap_format_ID = 01

name

comments B2:B3:B4

W_land_wheels_LHS

B2

w01

W_land_wheels_RHS

w02

W_land_wheels_TAIL

w03

W_fault_light_wing_RHS

w04

W_fault_light_wing_LHS

B3

w01

W_fault_light_TAIL

w02

W_fault_VHF_1

w03

W_fault_VHF_2

w04

W_fault_VHF_3

B4

w01

W_batt_1_low

w02

W_batt_2_low

w03

W_batt_3_low

w04

warning_bitmap_format_ID = 02

name

comments B2:B3:B4

W_fuel_leak

B2

w01

W_low_fuel

w02

W_stall

w03

W_overspeed

w04

W_rain

B3

w01

W_fault_S+A

w02

W_collision_imminent

w03

W_ice_on_LHS wing

w04

W_ice_on_RHS_wing

B4

w01

W_fire_in_eng_1

w02

W_fire_in_eng_2

w03

W_fire_in_eng_3

w04

warning_bitmap_format_ID = 03

name

comments B2:B3:B4

W_wheel_brake_ON

B2

w01

W_VHF_1_voice_ON

w02

W_VHF_2_voice_ON

w03

W_VHF_3_voice_ON

w04

W_not_used

B3

w01

W_not_used

w02

W_not_used

w03

W_not_used

w04

W_not_used

B4

w01

W_not_used

w02

W_not_used

w03

W_not_used

w04

Example

Syntax

comments

BEGIN WARNINGS

01:04 (not included)

warning_lights 01:B2:B3:B4

80:01:24:54:63

warning_lights 02:B2:B3B4

80:02:37:24:00

warning_lights 03:B2:B3B4

80:03:2A:AA:AA

END

02 (not included)

  • WARNINGS binary message section length = 15 Bytes

 80:00:24:54:63:80:01:37:24:00:80:03:2A:AA:AA

return to top

Communication systems

B0 HEX

Item_ID

name

Value

Bytes

comments B1:B2:B3:B4

80

comm_system_ID

1

0 to 255

81

comm_Rx_freq

4

0 to 4,294,967,295 kHz

for VHF and sat comms

82

comm_RSSI

1

-255 dBm to 0 dBm

83

comm_errors_msg

1

0 to 255; errors reported from the FEC decoder

for GSM and sat comms

84

comm_Tx_freq

4

0 to 4,294,967,295 kHz

for VHF and sat comms

85

comm_Tx_OP_power

1

0 to 255 dBm

for VHF and sat comms

86

comm_ANT_azim

3

0 to 16,777,215 millidegrees

only 0 to 359,999 millidegrees is sensible

for sat comms

87

comm_ANT_elev

3

0 to 16,777,215 millidegrees

only 0 to 89,999 millidegrees is sensible

for sat comms

88 - 8E

unused

 

9 Item_ID Bytes reserved for future use

8F

comm_fault

1

B1 = 0 to 255

if B1 = 0 no fault is reported from the Comms Unit

if B1 = 1 to 255, fault number B1 was reported by Comms

Example

text format

binary format

BEGIN COMMS

01:05 (not included)

BEGIN comms_system

01:0F (not included)

12 Bytes / VHF comms

4 Bytes / GSM comms

19 Bytes / sat comms

comms_system Item_IDs

12 Bytes = VHF comms

4 Bytes = GSM comms

19 Bytes = sat comms

END

02 (not included)

END

02 (not included)

Typically, one would have five communications links on a small Unmanned Aircraft:

  • 3 comms VHF communications systems: TWR, ATC1 and ATC2 = 36 Bytes
  • 1 sat comms BLOS duplex link = 19 Bytes
  • 1 GSM BLOS duplex link as back-up to sat comms link = 4 Bytes
  • Five comms systems would require 36 + 19 + 4 Bytes = 59 Bytes

return to top

GPS

B0 HEX

Item_ID

name

Value

Bytes

comments B1:B2:B3

90

GPS_time_UTC

3

hhmmss format: example 143903

0 to 8,388,607

91

GPS_latitude

4

ddmm.sssss format: example 5112.31099

latitude = B1:B2:B3:B4 / 1E5

B1:B2:B3:B4 / 1E5 = 0 to 42,949.67295

92

GPS_NS

1

B1 = 0000 1111 for S

B1 = 1111 0000 for N

93

GPS_longitude

4

ddmm.sssss format: example 00158.66984

longitude = B1:B2:B3:B4 / 1E5

B1:B2:B3:B4 / 1E5 = 0 to 42,949.67295

94

GPS_EW

1

B1 = 0000 1111 for E

B1 = 1111 0000 for W

95

GPS_speed_ground

3

speed = B1:B2:B3 / 1000 in knots: example 0.004

B1:B2:B3 / 1000 = 0 to 16,777.215

96

GPS_date_fix_UTC

3

ddmmyy format: example 151007

0 to 16,777,215

97

GPS_Num_Satellites

1

B1 = 0 to 255

98

GPS_HDOP

2

horizontal dilution of position = HDOP = B1:B2 / 1000

B1:B2 / 1000 = 0 to 65.535: example 1.21

99

GPS_PDOP

2

position dilution of precision = PDOP = B1:B2 / 1000

B1:B2 / 1000 = 0 to 65.535: example 1.93

9A

GPS_altitude_MSL

2

0 to 65,535 m: example 136.0

9B

GPS_sat_PRN

1

0 to 255

9C

GPS_sat_PRN_elev

1

0 to 255

only 0 to 90 actually used

9D

GPS_sat_PRN_azim

2

0 to 65,535

only 0 to 360 actually used

9E

GPS_sat_PRN_SNR

1

0 to 255 dB

= signal-to-noise ratio in dB

9F

unused

 

1 Item_ID Bytes reserved for future use

A0 - A9

unused

 

10 Item_ID Bytes reserved for future use

AA

NULL_1010

0

This is a NULL command used to pad out BLOCKs

HEX AA = BIN 1010 1010

The complimentary command is Item_ID 55 = NULL_0101

AB - AE

unused

 

4 Item_ID Bytes reserved for future use

AF

GPS_fault

1

B1 = 0 to 255

if B1 = 0 no fault is reported from the GPS unit

if B1 = 1 to 255, fault number B1 was reported by GPS unit

Example

text format

binary format

BEGIN GPS

01:07 (not included)

GPS Item_IDs

27 Bytes

BEGIN GPS_satellite

01:1E (not included)

5 Bytes for each of 8 most powerful satellites

GPS Item_IDs

5 Bytes

END

02 (not included)

END

02 (not included)

  • GPS binary message section length = 67 Bytes

return to top

S+A System

B0 HEX

Item_ID

name

Value

Bytes

comments B1:B2:B3:B4

B0

SA_air_object_ID

1

0 to 255

B1

SA_latitude

4

ddmm.sssss format: example 5112.31099

latitude = B1:B2:B3:B4 / 1E5

B1:B2:B3:B4 / 1E5 = 0 to 42,949.67295

B2

SA_NS

1

B1 = 0000 1111 for S

B1 = 1111 0000 for N

B3

SA_longitude

2

ddmm.sssss format: example 00158.66984

longitude = B1:B2:B3:B4 / 1E5

B1:B2:B3:B4 / 1E5 = 0 to 42,949.67295

B4

SA_EW

1

B1 = 0000 1111 for E

B1 = 1111 0000 for W

B5

SA_bearing

2

0 to 65,535

only 0 to 360 actually used

B6

SA_climb rate

2

0 to +/- 32,767 mm / second

B7

SA_speed

2

0 to 65,535 cm/s (= 2,359 kph = 1,466 mph)

B8

SA_zoom_LHS_cam

1

0 - 255

0 = minimum zoom

255 = maximum zoom

B9

SA_zoom_FWD_cam

1

0 - 255

0 = minimum zoom

255 = maximum zoom

BA

SA_zoom_RHS_cam

1

0 - 255

0 = minimum zoom

255 = maximum zoom

BB - BE

unused

 

4 Item_ID Bytes reserved for future use

BF

SA_fault

1

B1 = 0 to 255

if B1 = 0 no fault is reported from the S+A unit

if B1 = 1 to 255, fault number B1 was reported by S+A unit

Example

text format

binary format

BEGIN SENSE

01:08 (not included)

BEGIN air_object

01:1D (not included)

11 Bytes

air_object Item_IDs

11 Bytes

END

02 (not included)

END

02 (not included)

  • 1 camera looking to the left of centre
  • 1 camera looking straight ahead
  • 1 camera looking to the right of centre

S+A System binary message section length = 3 + n x 11 Bytes for n air_objects detected

  • We report on the 5 closest air_objects, so the SENSE message length = 58 Bytes

return to top

PAYLOAD system

B0 HEX

Item_ID

name

Value

Bytes

comments B1:B2:B3:B4

C0

ID_BLK0_FORMAT

1

B1 = BLOCK 0 format ID from 0 to 255

C1

ID_msg

3

16,777,216 unique message IDs

copied from HEADER section

C2

ID_UA_source

4

B1:B2 = country code = the International Telephone Dialling Code, where the largest number = 1929 (the North American Numbering Plan) for Puerto Rico.

B3:B4 = 65,536 unique IDs

C3

cam_ID

4

B1:B2:B3 = Char_1:Char_2:Char_3, eg. NIK (for Nikon)

B4 = 0 to 255 = camera ID number

C4

cam_mag_compass

2

degrees = B1:B2 / 100

B1:B2 = 0 to 655.35 degrees

only 0 to 359.99 degrees used

C5

unused

 

 

C6

unused

 

 

C7

cam_inclin_x

2

inclin_x = B1:B2 / 100

B1:B2 / 100 = 0 to +/- 327.67 degrees

C8

cam_inclin_y

2

inclin_x = B1:B2 / 100

B1:B2 / 100 = 0 to +/- 327.67 degrees

C9

cam_azim_set

2

azimuth = B1:B2 / 100 degrees

B1:B2 / 100 = 0 to 655.35 degrees

CA

cam_zoom_set

1

0 to 255 in arbitrary units, where:

0 = minimum zoom

255 = maximum zoom

CB

ID_GCS_destination

4

B1:B2 = country code = the International Telephone Dialling Code, where the largest number = 1929 (the North American Numbering Plan) for Puerto Rico.

B3:B4 = 65,536 unique IDs

CC

ID_GCS_backup

4

B1:B2 = country code = the International Telephone Dialling Code, where the largest number = 1929 (the North American Numbering Plan) for Puerto Rico.

B3:B4 = 65,536 unique IDs

CD - CE

unused

1

2 Item_ID Bytes reserved for future use

CF

cam_fault

1

B1 = 0 to 255

if B1 = 0 no fault is reported from the Cam Unit

if B1 = 1 to 255, fault number B1 was reported by Cam

Example

text format

binary format

BEGIN PAYLOAD

01:06 (not included)

ID_BLK0_FORMAT

ID_msg

ID_UA_source

 

8  Bytes

BEGIN camera

01:12 (not included)

14 Bytes

camera Item_IDs

14 Bytes

END

02 (not included)

ID_GCS_destination

 

4 Bytes

ID_GCS_backup

 

4 Bytes

END

02 (not included)

The cameras are assumed to support auto-focus: hence no need to report on focus setting.

Typically, one would have four cameras on a small Unmanned Aircraft fitted with a Sense and Avoid system:

  • 2 cameras on gimbals, both operated by personnel at the GCS

Four cameras would require 2 x 14 + 16 Bytes = 44 Bytes

return to top

Reserved for future use

B0 HEX

Item_ID

name

Value

Bytes

comments B1:B2:B3:B4

D0 - DF

unused

 

16 Item_ID Bytes reserved for future use

E0 - EF

unused

 

16 Item_ID Bytes reserved for future use

F0

Preamble_1

0

Used in the Preamble

HEX F0 = BIN 1111 0000

F1 - FE

unused

 

14 Item_ID Bytes reserved for future use

FF

Do not use.

 

Reserved for compatibility with STANAG 4586.

return to top


© Barnard Microsystems Limited 2006 - 2008