Header texture api

FocalPoint S-GNSS® API

An S-GNSS receiver contains FocalPoint’s proprietary technologies such as Supercorrelation™ and Skyscan.

Supercorrelation provides coherent integration times in excess of 1 second on low cost consumer platforms during complicated motions and results in angle-of-arrival detection using signal processing alone.

This mitigates multipath interference, boosts sensitivity and improves positioning accuracy.

It also ignores spoofing attacks (since the signals arrive from wrong directions), enables spoofer localisation and can provide a magnetic-free compass.

Find out more about S-GNSS®

What is the S-GNSS API?

The API provides a generic and flexible interface between GNSS chipsets and the S-GNSS algorithms.

What data does the S-GNSS API require as input?

  • GNSS State
  • Time
  • Inertial sensor data
  • GNSS signal data

What data does the S-GNSS API produce as output?

  • New (Supercorrelated) correlation peaks samples
  • LOS/NLOS visibility information
  • Corrected Doppler Frequency
  • Corrected codephase
  • Status flags
  • Optional extra outputs can be enabled with turn-on keys
    • Skyscan
    • Spoofer detection
    • Spoofer localisation
    • Magnetic-free heading estimation

Integration Options - current Android data flow

API Android Data Flow

Integration Options - solving S-GNSS challenges

API Solving SGNSS Challenges

S-GNSS API input data summary

This data shall be provided to the API at every measurement epoch

API Input Data Summary

S-GNSS API input data detail - Sensor data

  • S-GNSS requires 50-250Hz inertial sensor data
  • For the epoch tagged with time tn, this sensor data shall cover (tn-1 < ttn)
  • The correlation data samples shall be regularly spaced in time, eg:
    • 50Hz data - sample time delta is 20ms
    • 250Hz data - sample time delta is 4ms
  • Some sample-level timing jitter is expected and accepted
  • 3D accelerometer and 3D gyroscope data is mandatory
  • 3D magnetometer data is optional
  • The sensor axes shall be aligned, eg:
    • Accelerometer x-axis shall be aligned with gyroscope x-axis
  • The sensor axes shall be the normal inertial axes (as shown in the diagram)
  • The sensor data shall be uncalibrated, eg:
    • No compensation for sensor bias shall be applied prior to passing the data to the S-GNSS API
    • The time stamp shall refer to the same local time standard as the GNSS Correlation data

S-GNSS API input data detail - Correlation data

  • S-GNSS requires 50-250Hz complex correlation data
  • For the epoch tagged with time tn, this correlation data shall cover (tn-1 < ttn)
  • The complex correlation data samples shall be regularly spaced in time, eg:
    • 50Hz data - ∆t is 20ms
    • 250Hz data - ∆t is 4ms
  • The complex correlation data samples shall be the result of a single coherent accumulation
    • coherent accumulation periods shall be between 4ms and 20ms
  • Non-pilot channels can be used
    • IQ data with 50Hz navigation data is supported
    • Coherent accumulation shall not span 50Hz navigation data bit transitions
  • The correlation data does not need to be synchronised to the output epoch
    • ie there does not need to be a correlation sample with the exact time tag of tn or tn-1
  • At least three taps shall be provided (Early, Prompt, Late)
  • More taps can be provided
    • This improves performance in multipath environments
  • The tap spacing does not need to be evenly distributed
    • Eg. Prompt - Early can differ from Early - Very Early
  • Each signal type (eg. GPS L1, GPS L5) can have different tap spacings
  • All signals of a given type shall have identical tap spacings
  • The GNSS signal shall be tracked
    • Ie. in ideal conditions, the prompt tap shall contain the max signal power and early/late taps shall be balanced
  • S-GNSS needs to be notified of the tap spacings at initialisation
  • Each correlation sequence shall be associated with a:
    • Codephase offset
    • local time offset
    • Doppler frequency offset
  • GNSS Constellation and frequency band support
    • GPS L1, L5
    • GAL E1, E5
    • BDS B1, B2
    • S-GNSS supports all-in-view processing
    • Selective channel selection is also supported (*)
AP Iinput Data Detail

S-GNSS API input data detail - data rate examples

Some data size examples:

  • Less intensive: Support for 32 GNSS signals, 50Hz inertial data, 50Hz IQ, 3 taps per correlation vector
    • 96kB/s
  • More intensive: Support for 64 GNSS signals, 250Hz inertial data, 250Hz IQ, 13 taps per correlation vector
    • 2155kB/s

S-GNSS API output data - summary

There are two main pieces of output data:

1. Supercorrelated GNSS data:

  • For each GNSS channel provided as input:
    • Supercorrelated correlation vector
    • Corrected codephase
    • Corrected Doppler frequency
    • Status flags

2. Optional extra outputs:

  • Sky Scan data
  • Spoofer detection
  • Spoofer localisation
  • Non-magnetic heading estimation

For more information on the optional extra outputs, please get in touch with us using the form below.

Key I/O and feature options

  • The inputs to and outputs from the API will map directly to the “S-GNSS Data Format” that our current partners are already familiar with
  • The API will accept commands to trigger features such as Supercorrelation and Skyscan

Next Steps

  • We will help you to test your API compliance
  • Sign up below for header files, source code, and API information on extra output datatypes such as SkyScan, Spoofer localisation, and magnetic-free compass.

OS and app level integration

Machine Learning

Software-based solution

Request more info

Please give us a few details about yourself