Raw Feed Decoding

These settings have no effect unless the data source is transmitting raw Mode-S messages to VRS.
They are not used when the data source is transmitting Kinetic's Port 30003 format data.

Receiver range

The range in kilometres over which the receiver can pick up aircraft messages. Most receivers cannot see further than the horizon, which for aircraft transmitting at a cruising altitude of 42,000 feet is roughly 250 miles or 400 kilometres at sea level. This value is used in the ICAO reasonableness tests to discard aircraft positions that decode further than the receiver's range.

Show aircraft outside receiver range

If this is not ticked then position messages that place the aircraft outside the range of the receiver are discarded, otherwise they are still shown. This setting has no effect if a receiver location is not supplied. If the receiver location has been supplied but it is wildly incorrect then it can lead to all of the position messages being discarded, so by default the setting is ticked.

ICAO recommend in their reasonableness tests that positions outside the receiver range are discarded.

Raw Decoding Parameters

These options give the user some control over how the messages are decoded and how the ICAO reasonableness tests for position decoding are applied. You can safely leave them alone and the program will work just fine.

Note that VRS will use these settings as soon as you save them but it will not reset aircraft positions that have already been decoded. This means that if you change a setting which causes all aircraft positions to be discarded then aircraft already being tracked will appear to freeze on the map at their last good position, they will not disappear from the map until the aircraft goes out of range of your receiver.

Ignore DF19/AF0

Some ICAO documentation suggests that DF19 messages (Military Extended Squitter) whose Application Field is set to 0 carry an ADS-B payload which can be decoded as per civillian extended squitter messages. Other documents suggest that these messages should not be interpreted as ADS-B messages and that the military is free to do what they like with DF19/AF0. The impression I get is that DF19/AF0 can carry ADS-B content but I don't know for sure which is right so I've left the choice up to you. Setting this to 'No' will interpret these messages as if they were ADS-B messages, setting it to 'Yes' will ignore them. Take your pick.

Use local decoding for initial position fix

There are two methods for decoding the positions from ADS-B messages. One, called global decoding, can take two suitable position messages that were transmitted within 3 nautical miles (for airborne traffic) or 0.75 nautical miles (for surface traffic) of each other, and from those calculate the position of the aircraft anywhere on Earth.

The other method is called local decoding. This takes a single message and calculates the location of the aircraft using a reference location, with the proviso that the aircraft has to be within 180 nautical miles (for airborne traffic) or 45 nautical miles (for surface traffic) of the reference location.

ICAO recommend that when an aircraft is first picked up the decoder uses global decoding to establish the initial location of the aircraft and then switches to local decoding, using the last positon of the aircraft as the reference location, for subsequent position updates.

This option lets you decide whether to follow ICAO recommendations and use global decoding for the initial fix, at the expense of not seeing the aircraft until the second suitable message has been received, or using a local decode against the receiver location to establish the initial position a bit earlier. For this to work you will need to have supplied an accurate receiver location.

If the aircraft is further than 180 nautical miles (or 45 nautical miles for surface traffic) from your receiver then local decoding will put it at the wrong location. It will be very wrong. VRS will eventually detect the incorrect position when it applies one of the ICAO reasonableness tests. If it detects that the local decode put the aircraft at the wrong location then it will reset the aircraft's position and try to establish the initial location again, but this time using global decoding.

Airborne global

As described in Use local decoding for initial position fix (above) the two messages used for a global decode need to have been transmitted within 3 nautical miles of each other. Unfortunately this leads to a chicken-and-egg situation where you can't tell if two positions are within 3 nmi of each other without decoding them, but you can't reliably decode them unless you know that they're within 3 nmi of each other.

To get around this ICAO recommend that the two messages used for global decoding must have been transmitted within 10 seconds of each other, the idea being that aircraft can't travel further than 3 nautical miles in 10 seconds. This setting lets you specify the period of time that is allowed to elapse before two position messages become ineligable for global decoding. Higher values allow for detection of aircraft at extreme range but can result in an inaccurate initial position for aircraft at extreme range moving at high speed.

If the initial position is inaccurate then one of the ICAO reasonableness tests will eventually detect the error and reset the aircraft's initial position. However VRS will continue to apply this setting when it goes for another initial fix of the aircraft and may keep getting the inital position wrong until it receives two messages transmitted within 3 nmi of each other.

Fast surface global and Slow surface global

These two settings specify the amount of time that is allowed to elapse between two messages used in global decoding for surface traffic (see Airborne global above).

The 10 seconds allowed for airborne traffic is meant to ensure that two position messages from aircraft moving at high speed are transmitted within 3 nautical miles of each other. For surface traffic the speeds are much slower but the allowable distance between messages is much lower, 0.75 nautical miles. The "Fast" setting is the period in seconds to allow when decoding traffic that is reporting a speed over 25 knots. The "Slow" setting is the period in seconds to allow when decoding traffic travelling at or below 25 knots.

If the initial position is inaccurate then one of the ICAO reasonableness tests will eventually detect the error and reset the aircraft's initial position. However VRS will continue to apply this setting when it goes for another initial fix of the aircraft and may keep getting the inital position wrong until it receives two messages transmitted within 0.75 nmi of each other.

Max airborne speed, Max transition speed and Max surface speed

These settings are used in one of the ICAO reasonableness tests for local decoding. The idea is that if a local decoding is wrong then it will decode to a position that hundreds of miles away from the aircraft's true position. If you calculate the distance from the last known position to the new position, and if you know the time that the last known position message was received, then you can calculate the speed the aircraft must be travelling to reach the new position. If that speed is unrealistic then the local decode must be wrong.

The ICAO documentation recommends that if the aircraft travels further than so-many kilometres in a 30 second period between the last position message and the one just decoded then the position should be considered wrong and discarded. These settings specify how many kilometres the aircraft is allowed to travel over 30 seconds under three conditions:

  • In flight (the max airborne speed)
  • Landing / Takeoff (the max transition speed) and
  • On the surface (the max surface speed)

If you set a value that is too low then positions from traffic travelling at high speed will be deemed to be invalid and will be discarded, causing the aircraft to remain at its last good position on the map.

If you set a value that is very high then inaccurate decodes can slip through. Unlike initial position fixes there is no ICAO reasonableness test that will definitely detect this situation, although more often than not the inaccurate position will be well outside the range of the receiver so telling VRS to discard positions that are outside receiver range will help. You can be a little generous with these values, just don't go mad with them.

Ignore callsigns from BDS2,0 messages

Callsigns are transmitted in ADS-B messages and in BDS2,0 Mode-S messages. ADS-B messages are unambiguous, VRS can always tell whether a message is an ADS-B message or not. However BDS2,0 messages are not marked as such and VRS has to guess whether messages that might be a BDS2,0 message really are or not.

When VRS reads a callsign from what might be a BDS2,0 message it marks it as "suspect" and puts an asterisk against it on the display. Once a callsign is read from an ADS-B message it throws the BDS2,0 callsign away and only uses the ADS-B one from that point onwards, even if more BSD2,0 messages are received.

For the most part VRS gets it right when it guesses that a message is a BDS2,0 message but it might occasionally get it wrong. If you would prefer to never be shown a possibly incorrect callsign then tick this setting.

Suppress ICAO 000000

If this setting is ticked then VRS will ignore aircraft messages with an Aircraft Address field that is all zeros. No aircraft should be using this address. However if you want to see those aircraft then you can clear the tick and VRS will show them.

Suppress TIS-B messages

If this setting is ticked then VRS will not use TIS-B messages when deciding whether an ICAO is valid or not.

ICAO24 Validation Settings

ADS-B message count and ADS-B message seconds

Mode-S messages all carry a checksum to help detect corruption, but only some of the message types have a checksum that can be tested to see if it is correct. These values indicate how many times an aircraft identifier has to be seen over a given number of seconds in messages that can be tested for corruption before the identifier is assumed to be correct.

The default values are 1 message over 1 second - i.e. VRS will accept any ICAO24 that appears in messages where it can be sure that the message is not corrupt.

If you are using a feed that attempts to correct errors then you may find that corrupt messages are sent to VRS with checksums that do not indicate corruption. When this happens you will get see bad ICAO24 codes in the display. The solution is either to disable error correction on the source or increase the number of messages that have to be received for the aircraft. A count of 2 or 3 over 1 second is usually enough.

Once an ICAO24 is accepted as valid then all messages from that ICAO24 will be used, regardless of these settings.

Mode-S message count and Mode-S message seconds

Similar to the ADS-B message count and ADS-B message seconds options, these control how many times an ICAO24 has to be seen over a number of seconds in messages where corruption cannot be detected before they will be assumed to be valid.

The default values are 0 messages over 5 seconds, i.e. VRS will never accept an ICAO24 from a message where it cannot be sure that the parity is correct.

For most users this shouldn't cause a problem but some users may want to experiment with allowing ICAO24s if they have been seen enough times. It is recommended that the count of messages is kept high - at least 4 - and the number of seconds low, preferrably no more than 10.

Once an ICAO24 is accepted as valid then all messages from that ICAO24 will be used, regardless of these settings.

Ignore unassigned ICAO

These two tick boxes control whether ICAO24s that are not assigned to a country will be accepted as valid. The In parity messages option determines whether unassigned ICAO24s in messages that have a checksum will be ignored.

Reset Options

Use ICAO specification settings

This sets the options to the values that ICAO specify in their documentation. These settings tend to be quite conservative but will prevent inaccurate decodes in many cases, and will detect those that do manage to slip through.

If you choose to use the ICAO specification settings then it is recommended that you supply an accurate receiver location so that the full set of ICAO reasonableness tests can be applied.

The sets the options to slightly more generous values to allow for vehicles moving at high speeds and for user error in the configuration of the receiver location.