Skip to main content

A-PNT (Iridium STL®)

RockFLEET Assured uses Iridium's Alternative Position, Navigation and Timing (A-PNT) service, Iridium Satellite Time and Location® (Iridium STL®). This service improves the resiliency and survivability of critical infrastructure when Global Positioning System (GPS) or Global Navigation Satellite System (GNSS) signals are absent or disrupted.

important

Position reporting to Cloudloop requires a valid A-PNT licence key. Without a licence key, local reporting of GNSS positions over the NMEA output or Bluetooth is still possible.

Position accuracy​

Dynamic position accuracy varies by latitude. Iridium satellites have closer spacing at higher latitudes, resulting in improved accuracy nearer the poles.

LocationLatitudeMedian Accuracy95th/97.5th Percentile
Norway69° N25m<50m (95%)
Red Sea19° N42m<200m (97.5%)

The estimated accuracy of each position is reported as a Position Figure of Merit (PFOM), see PFOM table.

A-PNT licence key​

The 28-character A-PNT licence key can be loaded remotely with Cloudloop Device Manager or locally with the RockCONNECT IoT app. On the NMEA 0183 version it can also be managed with AT commands over the serial interface.

Remotely with Cloudloop Device Manager​

  1. For A-PNT enabled units, select Update APNT Key in the device management options.
  2. Enter the A-PNT module serial number, in the form JL-04007.
  3. When the update process is complete, trigger a remote reboot from Cloudloop Device Manager to load the key.
Step 1Step 2Step 3
Update APNT Key in Cloudloop Device ManagerEntering the A-PNT module serial numberKey update complete

Locally with the RockCONNECT IoT app​

  1. Enter the new licence key on the config page of the RockCONNECT IoT app.
  2. Press Apply (top right of the screen) to deliver the key.
  3. Reboot the device to load the key.

Entering the A-PNT key in the RockCONNECT IoT app

If the key is entered incorrectly or another error occurs, the A-PNT module can be reverted to a previously saved key by pressing Reset APNT Key in the Advanced menu.

Reset APNT Key in the Advanced menu

With AT commands (NMEA 0183 version)​

On the RockFLEET Assured NMEA 0183 version, the licence key can also be managed with AT commands over the serial interface:

  • AT+APNTWK=<KEY>: write a new licence key, e.g. AT+APNTWK=C5EXX2511RRR69W2ZMIT274V3111.
  • AT+APNTGS: read the A-PNT module serial number.
  • AT+APNTUK: restore the previous licence key.
danger

AT+APNTUK will erase the current licence key and fall back to the previous one. If only one licence key is loaded, running this command may result in losing the only licence key.

Configuration​

A-PNT settings are changed with the RockCONNECT IoT app over Bluetooth, or remotely with Cloudloop Device Manager. In the app, press Apply (top right of the screen) for changes to take effect. Changes made through Cloudloop Device Manager are sent over the satellite link and use data. On the NMEA 0183 version, settings can also be read and changed with AT commands over the serial interface.

RockFLEET Assured is supplied pre-configured. The recommended settings for the NMEA 2000 and NMEA 0183 versions are listed under Recommended settings by NMEA version.

Configuration names​

Each setting below is shown with its configuration name, as used in Cloudloop Device Manager. The A-PNT module replaces the GNSS module, hence the A-PNT settings sit in the GNSS section and some elements are still referred to as 'GNSS'.

Enabled​

Enabled

  • true - the A-PNT module is enabled, and its position data is made available to the application. Both A-PNT and GNSS positions are reported to Cloudloop at the set report interval.
  • false - the A-PNT module is disabled.

NMEA forwarding​

nmeaForwardEnabled

  • true - the selected NMEA sentences are streamed to the connected Chart Plotter or other equipment. Most sentences are streamed every second or when available; PJLTSVI is only streamed on receipt of an A-PNT burst.
  • false - NMEA streaming is disabled.
info

All units are shipped with nmeaForwardEnabled set to false. This must be set to true using the mobile app or Cloudloop Device Manager for Chart Plotter communication to work.

Report interval​

reportInterval

  • unsigned integer - the number of seconds between position reports sent to Cloudloop. The interval applies to both the A-PNT and GNSS position reports, and is corrected to the nearest whole denomination of time, i.e. for 1 hour reports are made at the top of the hour.
  • 0 (zero) - disables Cloudloop position upload.

A-PNT mode​

apntMode

  • DYNAMIC - use when the device to be tracked is a moving object. Applies the Kalman filter pre-set or custom settings to better track a moving object. Suitable for the vast majority of users.
  • STATIC - use ONLY when the device to be tracked is predominantly stationary. The device assumes that it remains in a fixed position; Kalman filter pre-sets or custom settings are not applied. Over time, Static mode will arrive at the most accurate time and position.
  • AUTO - uses the GNSS source to determine whether the receiver is moving, and switches automatically between static and dynamic mode. Requires apntPowerSaving set to FAST, see A-PNT power saving. This mode is still undergoing further testing.

A-PNT Kalman filter​

apntKalmanFilter

  • MARITIME - recommended for larger vessels.
  • WALKING - tracking personnel on foot.
  • DRIVING - vehicle based applications in relatively flat terrain.
  • CUSTOM - use ONLY if you are manually setting up the Kalman filter with the customVtc, customHtc, customVss and customHss parameters, to better suit a particular application.

The pre-set values and the custom parameters are described under Custom Kalman Filter settings.

important

DYNAMIC must be selected in order to use the pre-set filter or create a custom filter.

A-PNT RF sensitivity​

apntSensitivity

  • HIGH - maximum RF preamp gain. Gives the best results when indoors or in areas with a restricted view of the sky.
  • MED - medium RF preamp gain.
  • LOW - minimum RF preamp gain.
info

HIGH is not always the best setting to use. Where the signal strength is high, antenna gain is high and/or RF cable loss is low, it can lead to signal distortion and reduce the number of successfully processed position messages, resulting in a lower accuracy position. When a very high rate of Iridium STL® bursts is available, there can be advantages in lowering the sensitivity, as this helps to reject bursts with a degraded measurement quality and improves timing and positioning accuracy.

Similarly, LOW preamp gain coupled with RF losses in signal strength can have the same effect. This setting may need to be adjusted depending upon installation and geographical location.

NMEA sentence selection​

nmeaSentences

Set each sentence to true to enable or false to disable it: GNGGA, GNRMC, GPGGA, GPRMC, GPZDA, PJLTPOS, PJLTSTAT, PJLTSVI, PJLTVEL and AISVDO. What each sentence contains is described under Position output. Sentences are output only when nmeaForwardEnabled is true.

A-PNT filter position​

apntFilterPosition (available from firmware v0.19)

  • true - the position report uses the A-PNT position with the lowest EPE (Estimated Position Error) from the last 20% of the set report interval, i.e. if set to 10 minutes it selects the best from the last 2 minutes. The reported GNSS timestamp will match A-PNT.
  • false - report without the filter applied.

A-PNT power saving​

apntPowerSaving

  • FAST - turns power saving off. This gives the best performance, as all of the A-PNT module's power saving features are turned off.
  • ECO - turns power saving on for all components (DUTY-CYCLE, RF-RECEIVER, SECOND-MCU, GNSS ...). Power saving will be between 300mW and 500mW.
note

One of the ECO power saving features turns OFF the GNSS receiver. For any application that uses GNSS (for example when apntMode is AUTO), apntPowerSaving must be set to FAST.

A-PNT hot​

apntHot

  • false - when the reporting period is longer than 30 minutes, the A-PNT module remains unpowered until 20 minutes before a fix is due.
  • true - the A-PNT module remains powered at all times.

A-PNT positioning source​

apntPositionSource

  • GNSS - sets the PNT module to output GNSS positions.
  • APNT - sets the PNT module to output A-PNT positions.

SVI reports​

SVI (reserved for internal test use)

When necessary it is possible to obtain regular reports containing various additional sentences related to A-PNT.

danger

Changing these settings could lead to a VERY high level of data consumption.

  • reportDuration - must be set to 0 to disable.
  • reportTopic - internal test use.
  • reportInterval - internal test use.

Custom Kalman Filter settings​

ParameterDescription
VTCVertical Time ConstantTime constant over which the vertical velocity vector is likely to change (seconds)
HTCHorizontal Time ConstantTime constant over which the horizontal velocity vector is likely to change (seconds)
VSSVertical Steady StateStandard deviation of vertical velocity vector (meters/second, 1-sigma)
HSSHorizontal Steady StateStandard deviation of horizontal velocity vector (meters/second, 1-sigma)

These parameters affect how the A-PNT module's internal Kalman filter estimates dynamic position in the absence of bursts or aiding inputs.

The time constant represents the PRESUMED rate at which the velocity vector is liable to change.

The steady state is the PRESUMED standard deviation of the velocity PDF (probability distribution function), in the axis or plane of interest.

A highly-dynamic, fast-moving object would necessitate a large steady state and a small time constant.

A slow-moving object that changes direction and speed only rarely would necessitate a small steady state and a large time constant.

For reference the Kalman Filter profiles are as follows:

Pre-setVTC [s]HTC [s]VSS [m/s]HSS [m/s]
Maritime (Product produced before 28th Nov 2025)53000.115
Maritime (Product produced after 28th Nov 2025)5600.115
Walking53000.15
Driving (Product produced before 28th Nov 2025)30100.110
Driving (Product produced after 28th Nov 2025)5300.510

Note: The pre-set values are factory set and can only be changed by loading a new kalman.cfg file (Contact tech support for details). Pre-set values are not impacted by firmware updates.

The table below shows alternative profiles for other tracking scenarios. Can be set using the 'custom' feature.

ProfileVTC [s]HTC [s]VSS [m/s]HSS [m/s]
Maritime slow moving5600.115
City driving5300.510
Highway driving53000.515
Fixed Wing Aircraft (small, slow)30300560
Fixed Wing Aircraft (large, fast)3030010100
Rotary Aircraft30300560
Walking speeds5600.52

Chart Plotter and jamming/spoofing alarms​

With NMEA forwarding enabled and the GPGGA, GPRMC and AISVDO sentences selected, a compatible Chart Plotter displays the A-PNT position as your own vessel and the GNSS position as a separate "GNSS POSITION" AIS vessel icon, so the two can be compared directly on the chart. From firmware v0.18 the device outputs the AIS (VDO) sentences used for this.

The RockFLEET Assured Full and Rapid Deploy bundles include the Raymarine AXIOM® 9 Chart Plotter: see Configuring the Raymarine AXIOM® 9 Chart Plotter. For how the circles and alarms appear on the Chart Plotter, see Position Display.

If errorCircle is enabled, the Chart Plotter draws a ring around the A-PNT vessel showing the real-time Estimated Position Error (EPE). If errorLimitCircle is enabled, a second ring shows the scaled EPE (epeScale × EPE) used as the spoofing alarm boundary; when epeScale is 1.0 both rings align.

The Chart settings configure the jamming and spoofing alarm trigger conditions as well as the displayed graphics. The boundary for spoof detection always scales with the A-PNT EPE, so that changes in the level of this error do not cause false alarms. Alarms cannot be suppressed directly; if false alarms occur or the alarm triggers too often, adjust the parameters below to tune the sensitivity to an appropriate level.

Chart

  • epeScale - multiplier that sets the boundary (second circle) for tripping the spoof detection alarm, set from 0.5 to 10.0.
  • positionCompareTimer - time the GNSS position needs to be outside the boundary (epeScale × EPE) before the spoof detection alarm is triggered, set from 0 to 300 seconds.
  • utcDifferenceLimit - threshold before time spoof checking starts the timer, set from 2 to 10 seconds.
  • utcDifferenceTimer - time the time difference threshold needs to be exceeded before alarming, set from 0 to 300 seconds.
  • positionValidityTimer - time GNSS fixes are invalid or jammed before alarming, set from 0 to 300 seconds.
  • errorCircle - set true to display or false to hide the A-PNT Estimated Position Error (inner circle).
  • errorLimitCircle - set true to display or false to hide the outer circle.
  • testingAllowed - set true to allow the RockCONNECT IoT app to impose GNSS position changes for local test and demonstration purposes, or false to disable.

Position output​

When nmeaForwardEnabled is true, the A-PNT module outputs position data in NMEA format. Select the sentences required with nmeaSentences.

SentenceSourceContentRate
GPGGAA-PNTGlobal Positioning System Fix Data, in the GPS sentence formatEvery second
GPRMCA-PNTRecommended minimum specific GPS/Transit data, in the GPS sentence formatEvery second
GPZDAA-PNTDate and timeEvery five seconds
GNGGA, GNRMCGNSSGNSS positions provided by the GNSS decoder with the A-PNT module
PJLTPOS, PJLTSTAT, PJLTSVI, PJLTVELA-PNTProprietary A-PNT position and time data, see NMEA sentencesPJLTSVI on receipt of an A-PNT burst
AISVDOGNSS and alarmsAIS messages for the Chart Plotter: the GNSS position as an AIS vessel, labels, alarms and the EPE circle. Required for the EPE scale circle to be displayed. See RockFLEET Assured NMEA sentences

GPGGA, GPRMC and GPZDA carry Iridium A-PNT data, not GNSS data, even though they use the GPS sentence format.

note

When PJLTSTAT is selected, the NMEA stream will also contain PJLTVEL.

For example:

$GPGGA,084908.00,5052.732865,N,00115.509451,W,1,04,8.0,-12.4,M,,*30
$GPRMC,084908.00,A,5052.732865,N,00115.509451,W,0.2,-69.8,270625,,*36
$GPZDA,084908.00,27,06,2025,+00,00*46

The NMEA 0183 and NMEA 2000 outputs of RockFLEET Assured, including the AIS messages and PGNs used by the Chart Plotter, are listed on RockFLEET Assured NMEA sentences. A-PNT and GNSS positions can also be monitored in the Cloudloop tracking platform. On the NMEA 0183 version, the current position can also be polled over the serial interface with AT+APNT or AT+GNSS.

GGA fields with A-PNT​

Two GGA fields differ from those of a conventional GNSS receiver:

ParameterGNSS expectedA-PNT expectedNotes
GGA field 7Satellites in use, <30, higher is betterSatellites in use, <4, higher is betterIridium STL® uses fewer satellites to enable positioning.
GGA field 8HDOP, 1 to 20, lower is betterPFOM, 1 to 9, lower is betterHorizontal Dilution of Precision is replaced with Position Figure of Merit. It is still a measure of estimated positional accuracy, but with a different range than HDOP. See the PFOM table below.

PFOM table​

PFOM value123456789
Estimated Position Error<25m<50m<75m<100m<200m<500m<1000m<5000m≥5000m

NMEA sentences​

The proprietary PJLT sentences below are enabled with the nmeaSentences setting.

$PJLTPOS,v,ssssssssss,f,ll.llllllll,yyy.yyyyyyyy,aaa.aa,xxxxxxxxx,yyyyyyyyy,zzzzzzzzz,uu.uuuu,uu.uuuu,uu.uuuu,uu.uuuu,uu.uuuu,uu.uuuu,b.b,s.s,p,g*[checksum]​

  • v is the message version
  • ssssssssss is the current time with "format of time" below
  • f is the format of time: 0 = GPS time, 1 = Unix time
  • ll.llllllll is the latitude in signed decimal degree
  • yyy.yyyyyyyy is the longitude in signed decimal degree
  • aaa.aa is the antenna altitude above/below GPS height in meters when receiving STL® signals and MSL height when operating from the GNSS receiver
  • xxxxxxxxx is the position in ECEF-X axis, in meter
  • yyyyyyyyy is the position in ECEF-Y axis, in meter
  • zzzzzzzzz is the position in ECEF-Z axis, in meter
  • uu.uuuu are the uncertainty represented as local level covariance for EE, NN, UU, EN, EU, and NU, respectively
  • b.b is the age of position in seconds since last burst
  • s.s is the age of position in seconds since last sensor update
  • p is the position figure of merit (PFOM) of current solution
  • g is the current geo-location model configured 1 = STATIC

$PJLTSTAT,v,ssssssssss,b,s*[checksum]​

  • v is the message version
  • ssssssssss is the GPS time (number of seconds since GPS epoch in 1980)
  • b is the number of received bursts in last 60 seconds (bursts per minute, or BPM)
  • s is the number of received strong (processed) bursts in last 60 seconds

$PJLTSVI,v,ssssss.ssssss,wwww,ii,cc.c,aaa.a,ee.e,xxxxxxxxx.x,yyyyyyyyy.y,zzzzzzzzz.z,xxxxxxxxx.x,yyyyyyyyy.y,zzzzzzzzz.z,ddddd.d,rrrrrrrrrrrrrrr.r,,,tttttt.ttttttttt,0xVV*hh​

  • v is the version of the reported PJLTSVI message
  • ssssss.ssssss is the GPS TOW (TOT), the GPS Time of Week representing the time of transmission in seconds. Time is referenced to the middle of the burst waveform (a burst is 20.32 milliseconds long, so the middle occurs 10.16 milliseconds from the start). Note: Although GPS TOW is truncated to 1 us precision, all SVI data is derived from full precision TOT.
  • wwww is the GPS week number (weeks) associated with GPS TOW (TOT)
  • ii is the SV ID, the Satelles satellite identification number for the current satellite
  • cc.c is the C/No, the carrier to noise density ratio of the current burst (dB-Hz). Typical values for processed bursts range from 40 dB-Hz to over 80 dB-Hz
  • aaa.a is the azimuth (degrees) to the current satellite viewed from the receive antenna, based on the current best estimate of position [empty when internal position state unknown]
  • ee.e is the elevation (degrees) to the current satellite viewed from the receive antenna, based on the current best estimate of position [empty when internal position state unknown]
  • xxxxxxxxx.x is the current satellite's position in ECEF-x axis (meters) at the time of transmission
  • yyyyyyyyy.y is the current satellite's position in ECEF-y axis (meters) at the time of transmission
  • zzzzzzzzz.z is the current satellite's position in ECEF-z axis (meters) at the time of transmission
  • xxxxxxxxx.x is the current satellite's velocity in ECEF-x axis (meters/second) at the time of transmission
  • yyyyyyyyy.y is the current satellite's velocity in ECEF-y axis (meters/second) at the time of transmission
  • zzzzzzzzz.z is the current satellite's velocity in ECEF-z axis (meters/second) at the time of transmission
  • ddddd.d is the Doppler (Hz) for the current burst. Polarity corresponds to range rate (i.e. negative for approaching SV, positive for receding SV)
  • rrrrrrrrrrrrrrr.r is the pseudorange (meters) for the current satellite, maximum value of 1 light-week ~1.8e14
  • tttttt.ttttttttt is the GPS TOW (TOA), the GPS Time of Week representing the time of arrival in seconds. Time is referenced to the middle of the burst waveform (a burst is 20.32 milliseconds long, so the middle occurs 10.16 milliseconds from the start). Note: Time of arrival in GPS time is empty until internal position state is known.
  • VV is the validity flags, a hexadecimal value representing multiple validity flags for data contained within the current message. Valid satellite pseudorange data VV |= 0x1; valid satellite position data VV |= 0x2

$PJLTVEL,v,iiiiiiiiii,e.eeeeee,n.nnnnnn,u.uuuuuu,ssssssssss*[checksum]​

  • v is the message version
  • iiiiiiiiii is the serial number for the A-PNT receiver
  • e.eeeeee is the velocity in east direction, in m/s
  • n.nnnnnn is the velocity in north direction, in m/s
  • u.uuuuuu is the velocity in up direction, in m/s
  • ssssssssss is the GPS time (number of seconds since GPS epoch in 1980)