Skip to content

Extended Telemetry

Overview

This is a proposal for the structure and behavior of Extended Telemetry

The goal is to define an enhancement to the current scheme by:

  • Retaining full backward-compatibility
  • Clearly defining new features and implementation specifics
  • Creating a code implementation meant to be used across trackers for common data encoding
  • Being open to community development and shared investment

Improvements with the Extended Telemetry scheme

  • 16 New Telemetry Message Types
    • Including user-defined
    • Future growth path beyond 16 messages
  • Send up to 4 Extended Telemetry messages per 10-min window
    • Use of Basic Telemetry message optional
    • No rigid send sequence
    • No clash potential with other senders
  • Wider support of field ranges via use of single big number
    • Single field size max of 29.5 bits
  • Defined clamping behavior
  • Defined rounding behavior
  • Extensible already-defined message types

Improvements

16 New Telemetry Message Types

Types

  • 14 Enumerated types, to be defined and standardized
    • eg a GPS stats message
  • 1 User-Defined type, for testing
  • 1 RESERVED type

See Message Fields (Per-Type) for more details

Send up to 4 Extended Telemetry messages per 10-min window

Use of Basic Telemetry message optional

Extended Telemetry can be sent during the time slot the Basic Telemetry is currently sent in.

This allows for more Extended Telemetry messages to be sent during a given 10-min window.

See Time Slot Behavior for more details

No rigid send sequence

There are different types of Extended Telemetry messages. They can be sent in any order, at any time.

See Time Slot Behavior for more details

No clash potential with other senders

Additional data in each Extended Telemetry message identifies the message as being yours.

See HdrSlot for more more details

See Time Slot Behavior for more details

Wider support of field ranges via use of single big number

Basic Telemetry segments its big number encoding process into two operations, targeting specific fields in the WSPR message.

Extended Telemetry uses a different encoding algorithm that ultimately allows encoded fields to span all the fields of the WSPR message, up to and including a single encoded field of size 29.5 bits.

See Additional Encoding Details for more details

Defined Clamping Behavior

No Rollover. All values clamped before encoding.

Defined Rounding Behavior

Field index values shall be rounded to the closest index value in range when being calculated.

Extensible Message Types

If a message can support 5 fields, but you define 1, you can add 4 additional fields later on and the values in the 1st field remain readable in historical data.

See Additional Encoding Details for more details.

Message Structure

The structure of Extended Telemetry messages falls into two categories

  • Header fields (common structure to all Extended Telemetry messages)
  • Message fields (distinct structure to each HdrType of Extended Telemetry message)

Header Fields (Common)

Header fields specified in unpack order (ie, unpack from big number order).

Header Fields common to all Extended Telemetry message types

FieldName Unit LowValue HighValue StepSize # Values
HdrTelemetryType Enum 0 1 1 2
HdrRESERVED Enum 0 3 1 4
HdrSlot Enum 0 3 1 4
HdrType Enum 0 15 1 16

HdrTelemetryType

HdrTelemetryType

Defined as 0 = Extended Telemetry.

HdrRESERVED

HdrRESERVED

Must be set to 0b00.

Consumers must ignore any received message with non-zero HdrRESERVED value

This field represents the possibility of extension of the protocol in the future.

Any future change may not be compatible with the rest of this spec as-is.

Therefore consumers must ignore any HdrRESERVED field which is non-zero if they want to automatically survive a future enhancement.

HdrSlot

HdrSlot

Set default value to be 0b00.

Used to identify this Extended Telemetry message as tied back to the sender of the Type 1 message.

This field can take 4 possible values 0-3.

These values correspond to the 4 time slots that follow the Type 1 message in a given 10-min window.

If an Extended Telemetry message is sent in the first slot after the Type 1 message, where the Basic Telemetry message is currently sent, this is slot 0.

Each subsequent slot has an incrementally larger number.

See Time Slot Behavior for more details

HdrType

Set default value to be 0b0000.

This field is set to the value of the enumerated type of Extended Telemetry message.

Extended Telemetry messages need to be defined and assigned a number to be used in this field in order for receivers to know how to decode the telemetry within.

HdrType Type Notes
0 User-Defined No defined structure beyond header. Useful for testing, one-offs, etc.
...
15 RESERVED Reserved for future use.

Message Fields (Per-Type)

The goal is to have an enumerated list of well-defined Extended Telemetry messages which can be implemented consistently across trackers.

For each Enumerated Extended Telemetry message type, there would be a set of defined Message Fields specific to that message.

Example Enumerated Message Types

Here is a hypothetical example of how a list of enumerated types could be captured and grown.

HdrType Type Notes
0 User-Defined No defined structure beyond header. Useful for testing, one-offs, etc.
1 Basic Telemetry 2 Extended ranges and higher-res version of Basic Telemetry.
2 GPS Stats Capture stats about GPS behavior or conditions.
...
15 RESERVED Reserved for future use.

Example Message - GPS Stats

This is just a hypothetical example for illustration purposes.

GPS Stats Extended Telemetry message Field Definitions.

Field Unit LowValue HighValue StepSize # Values
SatsUSA Count 0 128 4 33
SatsChina Count 0 128 4 33
SatsRussia Count 0 128 4 33
SatsEU Count 0 128 4 33
SatsIndia Count 0 128 4 33
hdop Value 0 10 2 6

Analysis.

Encodable Bits Available: 29.50
Encodable Bits Used     : 27.81 ( 94.26 %)
Encodable Bits Remaining:  1.69 (  5.74 %)

Field         # Values    # Bits    % Used
------------------------------------------
SatsUSA             33      5.04     17.10
SatsChina           33      5.04     17.10
SatsRussia          33      5.04     17.10
SatsEU              33      5.04     17.10
SatsIndia           33      5.04     17.10
hdop                 6      2.58      8.76

Defining New Extended Telemetry Message Types

Use the Extended Telemetry playground to try new message structures.

Additional Encoding Details

Packing big number

Messages are packed into the big number in reverse order from their definition. Header fields are packed in reverse order from their description above.

Illustration using the GPS Stats message above

The GPS Stats message defines:

  • SatsUSA
  • SatsChina
  • SatsRussia
  • SatsEU
  • SatsIndia
  • hdop

The header fields are:

  • HdrTelemetryType
  • HdrRESERVED
  • HdrSlot
  • HdrType

The packing into big number is in this order:

  • hdop
  • SatsIndia
  • SatsEU
  • SatsRussia
  • SatsChina
  • SatsUSA
  • HdrType
  • HdrSlot
  • HdrRESERVED
  • HdrTelemetryType

Callsign Characters 1 and 3

Callsign characters 1 and 3 are not used for data encoding

Extended Telemetry is encoded into the Type 1 Message Format, except for the Callsign characters 1 and 3.

See Channels for details on use of characters 1 and 3.

Time Slot Behavior

Extended Telemetry operates within the established 10-min window.

Below is a description of how the Extended Telemetry changes the message types sent within the 10-min window in a backward-compatible way.

10-Minute Schedule Framework

This is the current pattern for when to send the Type 1 message in a repeating 10-min window.

start minute + 2 min + 4 min + 6 min + 8 min
Regular Type 1 - - - -

Including Basic Telemetry

This is the current pattern for when to send the Basic Telemetry message in relation to the Type 1 message in a repeating 10-min window.

start minute + 2 min + 4 min + 6 min + 8 min
Regular Type 1 Basic Telemetry - - -

Including Basic and/or Extended Telemetry

The [Ext Telemetry] notation means that an Extended Telemetry message can be sent in that slot, but is not required to be.

Any HdrType type of Extended Telemetry can be sent at any time [Ext Telemetry] is specified.

Including Basic and Extended Telemetry

start minute + 2 min + 4 min + 6 min + 8 min
Regular Type 1 Basic Telemetry [Ext Telemetry] [Ext Telemetry] [Ext Telemetry]

Replacing Basic with Extended Telemetry

start minute + 2 min + 4 min + 6 min + 8 min
Regular Type 1 [Ext Telemetry] [Ext Telemetry] [Ext Telemetry] [Ext Telemetry]

Extended Telemetry Schedule Specifics

Extended Telemetry slot rules

Extended Telemetry:

  • Can be sent in any slot other than the start minute
  • Does not always have to be sent in the same slot
  • Can replace Basic Telemetry sometimes and other times not

The same HdrType Extended Telemetry message can NOT be sent more than once in a 10-min window

Except for User-Defined messages, they can be sent in any/all of the HdrSlot slots.

These are all valid send sequences

start minute + 2 min + 4 min + 6 min + 8 min
Regular Type 1 Basic Telemetry - - -
Regular Type 1 Basic Telemetry Ext Telemetry - -
Regular Type 1 Basic Telemetry - Ext Telemetry -
Regular Type 1 Basic Telemetry Ext Telemetry Ext Telemetry Ext Telemetry
Regular Type 1 Ext Telemetry - - -
Regular Type 1 Ext Telemetry - Ext Telemetry -
Regular Type 1 Ext Telemetry Ext Telemetry Ext Telemetry Ext Telemetry
Regular Type 1 - - - -
Regular Type 1 - - - Ext Telemetry

Code

See Programming Library for implementation.