Skydel Release 21.3

Release 21.3 (March 2021) is coming very soon. It comes with new features, improvements and some changes that require your attention before you decide to upgrade.

There are important changes introduced in Skydel version 21.3. Skydel now uses SV ID instead of PRN to uniquely identify satellites. This change affects the GUI and many commands in the API. Most commands using PRN are deprecated but will continue to work as expected. Read below for more details on the impact of using SV ID instead of PRN.

New Features

  • Increased the number of echoes per signal from 3 to 4 on each satellite.
  • Added DO-229 tropospheric model.
  • Added Galileo E1A and E6A (PRS-Noise) signals.
  • Added navigation message modification for QZSS L1C signal.
  • Added new settings page to allow modification of transmitted PRN for GPS,
    GLONASS, Galileo, BeiDou, QZSS and NavIC.
  • Message modifications can now apply to specific signals. For example,
    instead of modifying the CNAV message for L2C and L5, you could choose to
    change it only for L2C.
  • PRN values are now displayed in settings pages with SV ID spinbox.
  • Improved file parsing to properly identify MEO/GEO/IGSO orbital parameters.
  • Added IMU plug-in.
  • Added plug-in remote API role.
  • Added plug-in instrumentation role.
  • Added QZSS and NavIC signal to anechoic mode.

Modifications

  • Replaced PRN with SV ID to identify satellites in most API commands.
  • Improved Contellations subtab to show SV ID and PRN values.
  • Improved CRPA antenna spacing input resolution to 0.01 mm.
  • Added content match support to Galileo message modifications.
  • Improved plug-in interface table.

Bug Fixed

  • Fixed track import algorithm to be more robust with attitude wrapping.
  • Fixed SBAS L5 signal not being available on same output as GPS L2 signals.
  • Fixed a crash that could happen during RINEX file import.
  • Fixed RAP field in BeiDou messages.
  • Fixed an antenna issue that could occur when loading a scenario.
  • Fix signal power of multiple signals to match values set in GUI.

To download the latest release, you can visit the page users.skydelsolutions.com and use the credentials given to you. If you lost your user name/password, please contact Orolia support (skydel-support@orolia.com).

Replacing PRN with SV ID
Until version 20.9, PRN was used as primary key to identify a GNSS satellite. This is replaced in 21.3 with the space vehicle identifier, or SV ID. This method is more robust for several reasons:

  • SV ID doesn’t change, PRN does.
  • Different signals from the same satellite may use different PRNs.
  • For testing purposes, you may need to assign the same PRN to different satellites which make the PRN ambiguous at best.

In many situations, the SV ID and PRN values are the same by default. But for QZSS and SBAS they differ. For QZSS, it may even differ on a signal basis.

Constellation     SV ID     Default PRN
GPS                1-32            1-32
GLONASS            1-24            1-24
GALILEO            1-36            1-36
BEIDOU             1-35            1-35
SBAS               1-39         120-158
QZSS L1S, L5S      1-10         183-192
QZSS C/A, L1C, L5  1-10         193-202
NAVIC              1-14            1-14

WARNING: The SV ID used by Skydel is an index. It is not the same as the satellite numbering used in ICDs. For example, GPS will use satellite No. or SVN which has a different meaning. Skydel SV ID is relevant only within Skydel software.

SV ID used in the GUI

The first noticeable changes in the GUI are in the settings pages such as GPS>Orbits and in the Constellations subtab as shown in the image below.

In this image, notice 3 important changes:

  • At the top of the screen, the SV ID spin control replaces the PRN spin control. The PRN itself is shown just beside the SV ID. Note the PRN and SV ID have the same value, which is typical for most constellations, but not all of them.
  • At the bottom left of the screen, the power sliders are identified with numbers, these numbers are now SV IDs.
  • At the bottom right in the sky view, the satellites are also numbered with SV IDs but there is a dropdown list where you can switch from SV ID to PRN. Note that showing PRN instead of SV ID will affect only the sky view and not the rest of the GUI.

For GPS, SV ID and PRN use the same value by default. For other constellations, like QZSS, the changes are more consequential. The image below shows the same settings but for QZSS.

This time, we can see at the top of the screen that for SV ID 1, there are different PRNs used. In the sky view, when selecting the PRN in the dropdown list, the tooltip shows the PRN for all QZSS signals.

Another example, where SV ID is used instead of PRN, is where you can actually change the PRN being transmitted for each signal as shown in the following image.

As you can see, SV ID 14 uses different PRNs in this example. It uses PRN 18 for the C/A signal, 15 for L1C, and so on. The power slider still uses the SV ID. It becomes clear why it is important to use SV ID instead of PRN to avoid confusion.

These changes are visible in the user interface, but more importantly, it affects many commands in the API.

SV ID used in the API

In version 21.3, many commands had to change to replace PRN with SV ID as the primary key. Older commands are deprecated so they continue to work for backward compatibility, but they will eventually be removed from the API. For new projects, deprecated commands should be avoided.

At the same time PRN was changed for SV ID, some other changes were introduced:

  • Ordering of the parameters was uniformized for better coherency between commands. For example, system always come before signal and signal always come before svID.
  • Naming convention also uses suffix […]ForSV and […]ForEachSV where applicable.

Here are some examples of changes made to the API.

Satellite Power

SetSatellitePower(system, prn, powerOffset, otherSatsFollow)     // deprecated
SetPowerForSV(system, svId, powerOffset, otherSatsFollow)        // new command

Changes:

  • The prn is replaced with svID
  • The name uses the […]ForSV suffix convention

Enable Signal

EnableSignal(prn, signal, enabled)           // deprecated
EnableSignalForSV(signal, svId, enabled)     // new command

Changes:

  • The prn is replaced with svID
  • The name uses the […]ForSV suffix convention
  • The parameter signal comes before svID

Change the transmitted PRN

SetGpsCodePrn(satPrn, transmittedPrn)           // deprecated
SetTransmittedPrnForSV(svId, signalPrnDict)     // new command

In this case, the changes are more important. It is now possible to change the PRN per signal. The same GPS satellite could use different PRNs for C/A, L1C, L2C, etc.

Also, this command introduces a new parameter type: the dictionary. It is now possible to use multiple key/value pairs. For this command, it allows you to set multiple signals with different PRNs using a single command.

Lastly, the word “GPS” was removed from the command name to generalize the concept to all constellations. Here’s an example of the command expressed as a JSON object:

{
  "CmdName": "SetTransmittedPrnForSV",
  "CmdUuid": "{3c9af86c-23f7-4c9c-aab1-6ee4718c14b4}",
  "SvId": 7,
  "SignalPrnDict":
    {
      "L1C": 7,
      "L1CA": 8,
      "L2C": 8,
      "L5": 7
    }
}

Retrieve SV ID to PRN values

It is no longer possible to identify a satellite using a PRN alone because it can be duplicated, but if you want to retrieve the SV ID corresponding to a specific PRN you can use the following commands:

GetPrnOfSVID(signal, svId)
GetPrnForEachSV(signal)

The command GetPrnOfSVID returns the PRN for a specific signal and satellite, while GetPrnForEachSV returns a vector to return the same information but for all satellites.

For the most part, transitioning from PRN to SV ID in your scripts should be quite simple. And in many cases, it will be transparent because the previous set of commands using PRN as the primary key will continue to work. For new automation scripts, it is recommended to use SV ID instead of PRN and the new commands that come with this change.

2 Likes

What is the process to download the newest version for a customer with a Skydel license or GSG-8 model?

Hello Leisa,

Users must connect to the Skydel download web page. They can contact skydel-support@orolia.com to obtain the link, user name and password. From there, they can download not only the latest Skydel version, but all the previous versions as well and the corresponding user manual. Before downloading and installing a new version, users should make sure their license allows them to run that version. On the image below, the Upgradable To field is 22.3 so Skydel versions up to 22.3 can be installed and run with this license.

All the release notes are also published on the Orolia website here.

1 Like