Forum
Please or Register to create posts and topics.

How to get the new GPS Time Sync/Validation features to work

Apparently the most recent FPGA firmware 2.8.0 is required for the gps time validation to work.

If you don't see 2.8.0 listed as FPGA version in the Spectran V6 block in the RTSA, you can update it with the following steps:

  • In the RTSA-Suite PRO, shut down the Spectran V6 device (power button is not active) 
  • In the Spectran V6 block settings, in the section "Device Manager" -> "FPGA Update", press the button "FPGA update" and wait for the procedure to complete
  • In the same section, press the button "RF FPGA Update" and wait for the procedure to complete   
  • Reconnect the Spectran V6 in the RTSA-Suite PRO (press the "Start" button)

To check the GPS time received:

  • In the Spectran V6 block, in the section "Board Config" change the setting "GPS Mode" to "Location and Time".If that setting is not available (only "Disabled" is enabled) then you are currently missing the Spectran V6 GPS license key, please contact our support in that case.

Now, assuming you have a GPS antenna connected and receive a GPS signal, the values for "GPS Sats", "GPS Time" and "GPS dTime" should display corresponding values (it may take a few seconds). "GPS dTime" is the delta between the received GPS time and the current stream time (system time by default).

If you want to use the GPS time as stream time you can do so by changing the setting "Stream Clock Source" to "GPS". If that setting is not available you are missing the Spectran V6 GPS Stream Clock license key, please contact our support in that case.

With that setting, the value of "GPS dTime" should start decreasing toward 0ms.

 

Sofon has reacted to this post.
Sofon

We want to obtain the correct GPS time stamping at the data packets through SDK/API. Could you help check the following snap-shot? I don't know what I am doing something wrong.

Yes, there seems to be a mismatch between the GPS time and the IQ packet timestamps when using the DLL. We'll need to investigate why that is showing up.

Turns out that there are two issues at work here:

There is a bug in the DLL that prevents the GPS Stream Clock license key from being activated when used with the SDK (doesn't affect the RTSA). This causes the call to 'AARTSAAPI_ConfigSetString(&d, &config, L"GPS Provider")' to fail, which due to not checking the return status went unnoticed. That has been fixed in version 10134 forward.

Second, because you're dumping every single packet to the console you have a significant processing delay, causing packets to be buffered. So the packets you are processing have actually been collected quite some time ago (can be >10 seconds). To avoid this buffering you should only analyze and dump a fraction of the packets like this (note: this requires the call to ConsumePackets() to be moved behind the if-condition block):

 

...

int counter = 0;
while(true)
{
AARTSAAPI_Packet packet = { sizeof(AARTSAAPI_Packet) };
AARTSAAPI_Result res;

while ((res = AARTSAAPI_GetPacket(&d, 0, 0, &packet)) == AARTSAAPI_EMPTY)
Sleep(5);

if (res == AARTSAAPI_OK && counter++ % 1000 == 0)

{

...

I'd also recommend that when dumping timestamps to the console you output a delta value rather than the absolute value (e.g. 'packet.startTime - gpsTime' instead of just 'packet.startTime' ), helps quite a bit in understanding the output.

AdminTC and Sofon have reacted to this post.
AdminTCSofon

So is it solved from your side now?

Now I had solved the problem. Thanks for your help and support.