This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Nrf9160 GPS long time to fix with healthy RF electronics

Helo Nordic support team,
I am supporting a client that has designed a product using the NRF9160 with GPS. The product has a small patch antenna mounted on the pcb board, a saw filter and a LNA upstream the GPS port of the NRF9160.

The product has been tested extensively in the open and they experience long time to fix - in some cases 10 to 15 minutes from cold start (and some time no fix at all). It was suspected that the antenna gain and match could explain long fix time due to lov SNR for the received GPS signal. The antenna match was investigated using a network analyser and found to be around -10dB RL for the GPS band.

We have compared the product respons with a Thingy:91 using a larger patch antenna with integrated LNA. This gave similar results with long time to fix (not tested as thorough as the product).

Next test was done in a lab version of an anechoic chamber called GTEM cell. It is not a perfect environment for antenna performance tests but gives a good indication on performance. Using this GTEM device with a signal source we were able to apply a -90dbm CW signal to the product (now running only with test software and battery power). The test software logged the SNR and RSSI using the AT AT%XRFTEST=2,1,-90 at command and after the test we extracted the data from the product to a log file using a J-link SEGGER with RTT Viewer. We did a similar test with the Thingy:91 with the external antenna and got similar results.

Our preliminary conclusion is that the product (and the Thingy:91) has good RF performance (around 14dB gain including LNA, SAW and antenna gain).

I tend to conclude that the long time to fix can be explained by software. 

There are no other use of the radio between GPS read, the LTE is not used.

Can the Nordic team comment on why do we experience long time to fix from cold condition even with apparently healthy RF electronics ?
Thanks,
Regards
Bjørn
  • Hi, 

    can you share the code when you have access to it? 

    And where is the teste done, does the device have access to the GPS signals from the start of the test?  If the devise does goes in to a deep-search prolonged periods will happen. This can happen if the device for example is in doors at first then taken outside where GPS signals are readily available. 

    I tend to conclude that the long time to fix can be explained by software. 

    This is most likely software issue. 


    Regards,
    Jonathan

  • After going trough the GPS log, R&D had this to say:

    I do not find any malfunction of GPS in the trace. It picks up PRN#30, #5 and #13 within a minute. It then picks up PRN#18 but fails to get its ephemeris due to extremely low CN0. It then picks up PRN#7 but before it can make a fix it drops #13 (PRN#13 is high up, so this is peculiar; is this due to a head or body of the user obscuring the satellite ?). After yet some time it finds PRN#14 and is able to make a fix using PRN#30, #5, #7 and #14.

    Yes it takes a long time to find the satellites and get the fix, but what does stand out in the trace are the extremely low CN0 value*s. The best value seen is 34 dB, but mostly the CN0s are in the 20-30 dB range. Given that some of the satellites have a quite high elevation, *I would say the device is missing 10 dB SNR.




    Regards,
    Jonathan

  • We have made some additional tests using both the Thingy:91 with external antenna and the product we have designed based on your NRF9160.

     

    The Thingy has been tested using an external antenna. The Coax connector for external antenna has no longer an internal switch so we selected to remove the dc block capacitance downstream of the connector towards the internal GPS antenna. This to try to keep the 50ohm transmission line from the NRF to the external antenna. The external antenna has a LNA and the test software is configured to switch this power on (confirmed by measuring that the bias voltage is present on the external coax line).

     

    We have three configurations (four if you add the GPS cold start hit the pedal drive test .. : )  ). The first test was done putting the Thingy:91 w/ext ant. on the roof of my car. The car was parked at Sunland in Drammen with no cars nearby and farily open space around the site. The second test was run at the exact same spot but now with the product as the GPS receiver. The third test was done on the dashboard for both the Thingy and the product. The last test was executed by giving Thingy (and also the product) a cold start and then immidiatly driving away in order to test or get a reference measurement for a moving receiver.  

     

    I still have a few more tests to run before I will share the results. I will upload these test when Ithe extended test has concluded.

     

    In addition to these tests I have added a more dedicated test on SNR and RSSI. I put the receiver into a suitable GTEM cell and configured the lab. Signal source to give -90dBm field power at the antenna of the test device. The GTEM is EM sealed and very little exernal radiowaves can kreep into the test chamber. Could you please evaluate the data in this log file and comment on the RSSI and SNR?

     

    All data in the attached log files have been extracted using the JLINK and the JLinkRTTViewer.exe from Segger.

      

    There are two files attached:

    • gps_driver_share.zip : Code for test in the field
    • gps_rf_test_share.zip : Code to test the gps in the RF chamber
    • Chamber_test_Product_boresight_90dbm_vertical.log : log file from chamber test

     These datafiles have been modified to remove client source code.

    gps_driver_share.zip

    gps_rf_test_share.zip

    # SEGGER J-Link RTT Viewer V6.88a Terminal Log File
    # Compiled: 15:12:58 on Nov 18 2020
    # Logging started @ 14 Feb 2021 13:37:26
    00> *** Booting Zephyr OS build v2.4.0-ncs1-24-gdac3d0802faa  ***
    00> 
    00> AT response: %XRFTEST: 289,-19411
    00> 
    00> AT response: %XRFTEST: 286,-19391
    00> 
    00> AT response: %XRFTEST: 284,-19411
    00> 
    00> AT response: %XRFTEST: 283,-19391
    00> 
    00> AT response: %XRFTEST: 285,-19411
    00> 
    00> AT response: %XRFTEST: 284,-19411
    00> 
    00> AT response: %XRFTEST: 288,-19411
    00> 
    00> AT response: %XRFTEST: 287,-19411
    00> 
    00> AT response: %XRFTEST: 286,-19411
    00> 
    00> AT response: %XRFTEST: 288,-19411
    00> 
    00> AT response: %XRFTEST: 284,-19391
    00> 
    00> AT response: %XRFTEST: 288,-19391
    00> 
    00> AT response: %XRFTEST: 287,-19411
    00> 
    00> AT response: %XRFTEST: 285,-19371
    00> 
    00> AT response: %XRFTEST: 289,-19391
    00> 
    00> AT response: %XRFTEST: 289,-19371
    00> 
    00> AT response: %XRFTEST: 284,-19411
    00> 
    00> AT response: %XRFTEST: 285,-19411
    00> 
    00> AT response: %XRFTEST: 286,-19371
    00> 
    00> AT response: %XRFTEST: 286,-19391
    00> 
    00> AT response: %XRFTEST: 285,-19411
    00> 
    00> AT response: %XRFTEST: 291,-19391
    00> 
    00> AT response: %XRFTEST: 292,-19411
    00> 
    00> AT response: %XRFTEST: 287,-19391
    00> 
    00> AT response: %XRFTEST: 289,-19371
    00> 
    00> AT response: %XRFTEST: 288,-19391
    00> 
    00> AT response: %XR1
    00> 
    00> 1
    00> 
    00> Measurement: 0, snr: 289, antenna_power: -19411
    00> 
    00> Measurement: 1, snr: 286, antenna_power: -19391
    00> 
    00> Measurement: 2, snr: 284, antenna_power: -19411
    00> 
    00> Measurement: 3, snr: 283, antenna_power: -19391
    00> 
    00> Measurement: 4, snr: 285, antenna_power: -19411
    00> 
    00> Measurement: 5, snr: 284, antenna_power: -19411
    00> 
    00> Measurement: 6, snr: 288, antenna_power: -19411
    00> 
    00> Measurement: 7, snr: 287, antenna_power: -19411
    00> 
    00> Measurement: 8, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 9, snr: 288, antenna_power: -19411
    00> 
    00> Measurement: 10, snr: 284, antenna_power: -19391
    00> 
    00> Measurement: 11, snr: 288, antenna_power: -19391
    00> 
    00> Measurement: 12, snr: 287, antenna_power: -19411
    00> 
    00> Measurement: 13, snr: 285, antenna_power: -19371
    00> 
    00> Measurement: 14, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 15, snr: 289, antenna_power: -19371
    00> 
    00> Measurement: 16, snr: 284, antenna_power: -19411
    00> 
    00> Measurement: 17, snr: 285, antenna_power: -19411
    00> 
    00> Measurement: 18, snr: 286, antenna_power: -19371
    00> 
    00> Measurement: 19, snr: 286, antenna_power: -19391
    00> 
    00> Measurement: 20, snr: 285, antenna_power: -19411
    00> 
    00> Measurement: 21, snr: 291, antenna_power: -19391
    00> 
    00> Measurement: 22, snr: 292, antenna_power: -19411
    00> 
    00> Measurement: 23, snr: 287, antenna_power: -19391
    00> 
    00> Measurement: 24, snr: 289, antenna_power: -19371
    00> 
    00> Measurement: 25, snr: 288, antenna_power: -19391
    00> 
    00> Measurement: 26, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 27, snr: 292, antenna_power: -19391
    00> 
    00> Measurement: 28, snr: 284, antenna_power: -19371
    00> 
    00> Measurement: 29, snr: 285, antenna_power: -19371
    00> 
    00> Measurement: 30, snr: 284, antenna_power: -19391
    00> 
    00> Measurement: 31, snr: 289, antenna_power: -19411
    00> 
    00> Measurement: 32, snr: 288, antenna_power: -19371
    00> 
    00> Measurement: 33, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 34, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 35, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 36, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 37, snr: 286, antenna_power: -19391
    00> 
    00> Measurement: 38, snr: 288, antenna_power: -19371
    00> 
    00> Measurement: 39, snr: 286, antenna_power: -19371
    00> 
    00> Measurement: 40, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 41, snr: 293, antenna_power: -19411
    00> 
    00> Measurement: 42, snr: 287, antenna_power: -19351
    00> 
    00> Measurement: 43, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 44, snr: 291, antenna_power: -19391
    00> 
    00> Measurement: 45, snr: 283, antenna_power: -19411
    00> 
    00> Measurement: 46, snr: 287, antenna_power: -19391
    00> 
    00> Measurement: 47, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 48, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 49, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 50, snr: 291, antenna_power: -19441
    00> 
    00> Measurement: 51, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 52, snr: 288, antenna_power: -19391
    00> 
    00> Measurement: 53, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 54, snr: 291, antenna_power: -19411
    00> 
    00> Measurement: 55, snr: 292, antenna_power: -19391
    00> 
    00> Measurement: 56, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 57, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 58, snr: 292, antenna_power: -19411
    00> 
    00> Measurement: 59, snr: 293, antenna_power: -19391
    00> 
    00> Measurement: 60, snr: 286, antenna_power: -19441
    00> 
    00> Measurement: 61, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 62, snr: 290, antenna_power: -19371
    00> 
    00> Measurement: 63, snr: 289, antenna_power: -19371
    00> 
    00> Measurement: 64, snr: 286, antenna_power: -19391
    00> 
    00> Measurement: 65, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 66, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 67, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 68, snr: 295, antenna_power: -19391
    00> 
    00> Measurement: 69, snr: 297, antenna_power: -19411
    00> 
    00> Measurement: 70, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 71, snr: 288, antenna_power: -19371
    00> 
    00> Measurement: 72, snr: 292, antenna_power: -19411
    00> 
    00> Measurement: 73, snr: 288, antenna_power: -19411
    00> 
    00> Measurement: 74, snr: 291, antenna_power: -19391
    00> 
    00> Measurement: 75, snr: 287, antenna_power: -19411
    00> 
    00> Measurement: 76, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 77, snr: 293, antenna_power: -19371
    00> 
    00> Measurement: 78, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 79, snr: 292, antenna_power: -19391
    00> 
    00> Measurement: 80, snr: 294, antenna_power: -19371
    00> 
    00> Measurement: 81, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 82, snr: 289, antenna_power: -19391
    00> 
    00> Measurement: 83, snr: 291, antenna_power: -19411
    00> 
    00> Measurement: 84, snr: 290, antenna_power: -19391
    00> 
    00> Measurement: 85, snr: 295, antenna_power: -19411
    00> 
    00> Measurement: 86, snr: 294, antenna_power: -19411
    00> 
    00> Measurement: 87, snr: 290, antenna_power: -19411
    00> 
    00> Measurement: 88, snr: 295, antenna_power: -19391
    00> 
    00> Measurement: 89, snr: 293, antenna_power: -19371
    00> 
    00> Measurement: 90, snr: 294, antenna_power: -19391
    00> 
    00> Measurement: 91, snr: 291, antenna_power: -19411
    00> 
    00> Measurement: 92, snr: 292, antenna_power: -19411
    00> 
    00> Measurement: 93, snr: 294, antenna_power: -19391
    00> 
    00> Measurement: 94, snr: 286, antenna_power: -19411
    00> 
    00> Measurement: 95, snr: 293, antenna_power: -19411
    00> 
    00> Measurement: 96, snr: 285, antenna_power: -19391
    00> 
    00> Measurement: 97, snr: 287, antenna_power: -19391
    00> 
    00> Measurement: 98, snr: 293, antenna_power: -19391
    00> 
    00> Measurement: 99, snr: 290, antenna_power: -19391
    00> 
    
    # Logging stopped @ 14 Feb 2021 13:40:42
    

  • Can you provide what version of the Thingy91 you are using ?
    And are you using a USB cable on the thingy when running the test?

    Regards,
    Jonathan

  • Hi,

    Thingy:91 with 1.4.0 2020.24.

    Data is extracted using SWD by JLink from Segger.

    Regards,

    Bjørn

Related