GNSS sample vs Location sample

Hi Everyone,

I have a custom board with a nRF9160.  I have updated the firmware to 1.3.3.  I am using SDK 1.9.1.  I found that the board works well with the GNSS sample from the SDK.  The board can typically see 10-11 satellites, track 5-8 of them and give me a good location.  However, when I run the Location sample from the SDK, it only sees1-2 satellites when I placed the board at exactly the same location.  I even put 2 boards side by side, 1 running the GNSS samples, the other running the Location sample.  The GNSS sample always perform well.  Are there any different between the GNSS sample and the Location sample?  I would like to obtain the same good result with the Location sample as with the GNSS sample.  Are there anything I have to change to achieve that?  Many thanks.

Regards,

Floyd

Parents
  • Hello Floyd, 

    Due to the Holidays our team is lower staffed than normal and some delays in our answers must be expected. We apologize for the inconvenience.  


    Is there a reason for why you are running nRF Connect SDK v1.9.1? Have you tested with e.g. v2.x.y? Note that modem FW 1.3.3 has not been tested with v1.9.1, only v2.1.0 and v2.2.0. Ref. Modem Firmware compatibility matrix.

    That said, there really should not be any difference between the two samples when it boils down to the GNSS. The main difference is that Location samples seems to have A-GPS enabled by default. 

    There are some extra settings in nrf\samples\nrf9160\gnss\Kconfig compared to nrf\samples\nrf9160\location\Kconfig, perharps that could be a starting point. 

    Kind regards,
    Øyvind

Reply
  • Hello Floyd, 

    Due to the Holidays our team is lower staffed than normal and some delays in our answers must be expected. We apologize for the inconvenience.  


    Is there a reason for why you are running nRF Connect SDK v1.9.1? Have you tested with e.g. v2.x.y? Note that modem FW 1.3.3 has not been tested with v1.9.1, only v2.1.0 and v2.2.0. Ref. Modem Firmware compatibility matrix.

    That said, there really should not be any difference between the two samples when it boils down to the GNSS. The main difference is that Location samples seems to have A-GPS enabled by default. 

    There are some extra settings in nrf\samples\nrf9160\gnss\Kconfig compared to nrf\samples\nrf9160\location\Kconfig, perharps that could be a starting point. 

    Kind regards,
    Øyvind

Children
  • The only reason I am running SDK 1.9.1 is..... lazy!!  Trust me, I tried 2.x.y and a lot of things broke and I figured it would take me weeks to repair my code to be able to compile successfully with 2.x.y.  So I rolled back to 1.9.1 which my code still compiles and runs.  By the way, I started with SDK 1.7.0.  

    I started with FW 1.3.1.  Maybe I should roll back to 1.3.1 instead of using 1.3.3.  Slight smile

    I looked at both Kconfig and found a lot of differences.  I doubt that I can copy the GNSS Kconfig to Location Kconfig since those config look very "GNSS sample" specific and similar parameters don't seem to exist in the Location sample.  I do need the A-GPS and cellular fallback option since the device can be indoor a lot of the time.  Why does the GNSS sample perform so well but the Location sample doesn't.  With A-GPS, shouldn't it be even faster?

  • I turned on the debug messages and after a while I saw these messages.

    [02:45:47.561,553] <dbg> location.method_gnss_print_pvt: Tracked satellites: 6, fix valid: false
    [02:45:47.571,655] <dbg> location.method_gnss_print_pvt: PRN: 1, C/N0: 33.8, in fix: 0, unhealthy: 0
    [02:45:47.582,305] <dbg> location.method_gnss_print_pvt: PRN: 30, C/N0: 21.4, in fix: 0, unhealthy: 0
    [02:45:47.592,987] <dbg> location.method_gnss_print_pvt: PRN: 13, C/N0: 25.2, in fix: 0, unhealthy: 0
    [02:45:47.603,668] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 30.3, in fix: 0, unhealthy: 0
    [02:45:47.614,318] <dbg> location.method_gnss_print_pvt: PRN: 8, C/N0: 25.4, in fix: 0, unhealthy: 0
    [02:45:47.625,000] <dbg> location.method_gnss_print_pvt: PRN: 17, C/N0: 27.2, in fix: 0, unhealthy: 0
    [02:45:48.561,126] <dbg> location.method_gnss_print_pvt: Tracked satellites: 6, fix valid: false
    [02:45:48.571,228] <dbg> location.method_gnss_print_pvt: PRN: 1, C/N0: 34.0, in fix: 0, unhealthy: 0
    [02:45:48.581,909] <dbg> location.method_gnss_print_pvt: PRN: 30, C/N0: 21.4, in fix: 0, unhealthy: 0
    [02:45:48.592,590] <dbg> location.method_gnss_print_pvt: PRN: 13, C/N0: 24.9, in fix: 0, unhealthy: 0
    [02:45:48.603,271] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 30.3, in fix: 0, unhealthy: 0
    [02:45:48.613,983] <dbg> location.method_gnss_print_pvt: PRN: 8, C/N0: 25.3, in fix: 0, unhealthy: 0
    [02:45:48.624,664] <dbg> location.method_gnss_print_pvt: PRN: 17, C/N0: 27.3, in fix: 0, unhealthy: 0
    [02:45:49.561,096] <dbg> location.method_gnss_print_pvt: Tracked satellites: 7, fix valid: false
    [02:45:49.571,197] <dbg> location.method_gnss_print_pvt: PRN: 1, C/N0: 34.0, in fix: 0, unhealthy: 0
    [02:45:49.581,878] <dbg> location.method_gnss_print_pvt: PRN: 30, C/N0: 23.3, in fix: 0, unhealthy: 0
    [02:45:49.592,559] <dbg> location.method_gnss_print_pvt: PRN: 13, C/N0: 24.9, in fix: 0, unhealthy: 0
    [02:45:49.603,210] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 30.6, in fix: 0, unhealthy: 0
    [02:45:49.613,891] <dbg> location.method_gnss_print_pvt: PRN: 8, C/N0: 25.6, in fix: 0, unhealthy: 0
    [02:45:49.624,572] <dbg> location.method_gnss_print_pvt: PRN: 12, C/N0: 27.5, in fix: 0, unhealthy: 0
    [02:45:49.635,253] <dbg> location.method_gnss_print_pvt: PRN: 17, C/N0: 27.8, in fix: 0, unhealthy: 0
    [02:45:50.561,401] <dbg> location.method_gnss_print_pvt: Tracked satellites: 7, fix valid: false
    [02:45:50.571,441] <dbg> location.method_gnss_print_pvt: PRN: 1, C/N0: 33.9, in fix: 0, unhealthy: 0
    [02:45:50.582,122] <dbg> location.method_gnss_print_pvt: PRN: 30, C/N0: 23.3, in fix: 0, unhealthy: 0
    [02:45:50.592,803] <dbg> location.method_gnss_print_pvt: PRN: 13, C/N0: 24.9, in fix: 0, unhealthy: 0
    [02:45:50.603,454] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 31.0, in fix: 0, unhealthy: 0
    [02:45:50.614,135] <dbg> location.method_gnss_print_pvt: PRN: 8, C/N0: 25.4, in fix: 0, unhealthy: 0
    [02:45:50.624,786] <dbg> location.method_gnss_print_pvt: PRN: 12, C/N0: 24.7, in fix: 0, unhealthy: 0
    [02:45:50.635,467] <dbg> location.method_gnss_print_pvt: PRN: 17, C/N0: 27.5, in fix: 0, unhealthy: 0
    [02:45:51.679,046] <dbg> location.method_gnss_print_pvt: Tracked satellites: 7, fix valid: false
    [02:45:51.689,178] <dbg> location.method_gnss_print_pvt: PRN: 1, C/N0: 34.1, in fix: 0, unhealthy: 0
    [02:45:51.699,859] <dbg> location.method_gnss_print_pvt: PRN: 30, C/N0: 22.7, in fix: 0, unhealthy: 0
    [02:45:51.710,510] <dbg> location.method_gnss_print_pvt: PRN: 13, C/N0: 24.6, in fix: 0, unhealthy: 0
    [02:45:51.721,191] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 31.1, in fix: 0, unhealthy: 0
    [02:45:51.731,872] <dbg> location.method_gnss_print_pvt: PRN: 8, C/N0: 24.9, in fix: 0, unhealthy: 0
    [02:45:51.742,553] <dbg> location.method_gnss_print_pvt: PRN: 12, C/N0: 24.5, in fix: 0, unhealthy: 0
    [02:45:51.753,204] <dbg> location.method_gnss_print_pvt: PRN: 17, C/N0: 27.5, in fix: 0, unhealthy: 0
    [02:45:52.681,732] <dbg> location.method_gnss_print_pvt: Tracked satellites: 7, fix valid: false
    [02:45:52.691,833] <dbg> location.method_gnss_print_pvt: PRN: 1, C/N0: 34.0, in fix: 0, unhealthy: 0
    [02:45:52.702,514] <dbg> location.method_gnss_print_pvt: PRN: 30, C/N0: 22.0, in fix: 0, unhealthy: 0
    [02:45:52.713,195] <dbg> location.method_gnss_print_pvt: PRN: 13, C/N0: 23.9, in fix: 0, unhealthy: 0
    [02:45:52.723,876] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 31.2, in fix: 0, unhealthy: 0
    [02:45:52.734,527] <dbg> location.method_gnss_print_pvt: PRN: 8, C/N0: 24.6, in fix: 0, unhealthy: 0
    [02:45:52.745,208] <dbg> location.method_gnss_print_pvt: PRN: 12, C/N0: 24.5, in fix: 0, unhealthy: 0
    [02:45:52.755,889] <dbg> location.method_gnss_print_pvt: PRN: 17, C/N0: 27.7, in fix: 0, unhealthy: 0

    With the GNSS sample, I am sure I have a good fix and a good location already.  Why am I not getting it with the Location sample?  Am I missing something?

    Regards,

    Floyd

  • Hello, 

    flau said:
    I started with FW 1.3.1.  Maybe I should roll back to 1.3.1 instead of using 1.3.3. 

    You could try, however, I don't think this will have any impact in this situation.

    I asked for some help from our GNSS expert: 


    With the GNSS sample, by default LTE is disabled after downloading A-GPS data, but with the Location sample LTE is active at the same time. The Location library waits until the LTE RRC connection is released (which causes some delay), and after that LTE still needs to listen to paging from the network, so it's interrupting GNSS execution periodically. This of course also depends on the eDRX and PSM configuration.

     

    flau said:
    rust me, I tried 2.x.y and a lot of things broke and I figured it would take me weeks to repair my code to be able to compile successfully with 2.x.y.

    Are you using the Toolchain Manager to install the SDK? Are you not able to build GNSS sample and Location sample?

    Kind regards,
    Øyvind

  • My bad.  I should explain a bit more.  I use the Toolchain Manager to install and uninstall SDK.  There is no problem there.  I build my own application based on the Location sample.  I have to add MQTT, AWS, PWM, I2C, SPI and thread on top of the Location sample.  All that work up to SDK 1.8.0.  But with any SDK above 1.8.0, I ended up with way too many errors that I can't handle when I build the application. So I decided to roll back to 1.9.1 because that seems to give me the least errors.  But still, I wasn't able to get a fix and a location with the Location sample with nothing added.  

    Regards,

    Floyd

  • I am very frustrated now.  With the Location sample, my board can see and track 11-12 satellites, but still no fix.  What determines a fix and provide a location?

    [00:08:10.960,052] <dbg> location.method_gnss_print_pvt: Tracked satellites: 11, fix valid: false
    [00:08:10.970,214] <dbg> location.method_gnss_print_pvt: PRN: 26, C/N0: 24.7, in fix: 0, unhealthy: 0
    [00:08:10.980,926] <dbg> location.method_gnss_print_pvt: PRN: 20, C/N0: 24.5, in fix: 0, unhealthy: 0
    [00:08:10.991,638] <dbg> location.method_gnss_print_pvt: PRN: 9, C/N0: 24.3, in fix: 0, unhealthy: 0
    [00:08:11.002,319] <dbg> location.method_gnss_print_pvt: PRN: 6, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:11.013,031] <dbg> location.method_gnss_print_pvt: PRN: 27, C/N0: 24.5, in fix: 0, unhealthy: 0
    [00:08:11.023,742] <dbg> location.method_gnss_print_pvt: PRN: 19, C/N0: 24.7, in fix: 0, unhealthy: 0
    [00:08:11.034,454] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:11.045,166] <dbg> location.method_gnss_print_pvt: PRN: 10, C/N0: 23.9, in fix: 0, unhealthy: 0
    [00:08:11.055,877] <dbg> location.method_gnss_print_pvt: PRN: 31, C/N0: 24.2, in fix: 0, unhealthy: 0
    [00:08:11.066,589] <dbg> location.method_gnss_print_pvt: PRN: 4, C/N0: 24.3, in fix: 0, unhealthy: 0
    [00:08:11.077,301] <dbg> location.method_gnss_print_pvt: PRN: 25, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:12.077,301] <dbg> location.method_gnss_print_pvt: Tracked satellites: 12, fix valid: false
    [00:08:12.087,463] <dbg> location.method_gnss_print_pvt: PRN: 12, C/N0: 26.9, in fix: 0, unhealthy: 0
    [00:08:12.098,175] <dbg> location.method_gnss_print_pvt: PRN: 20, C/N0: 24.2, in fix: 0, unhealthy: 0
    [00:08:12.108,886] <dbg> location.method_gnss_print_pvt: PRN: 9, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:12.119,598] <dbg> location.method_gnss_print_pvt: PRN: 6, C/N0: 24.8, in fix: 0, unhealthy: 0
    [00:08:12.130,310] <dbg> location.method_gnss_print_pvt: PRN: 27, C/N0: 24.6, in fix: 0, unhealthy: 0
    [00:08:12.140,991] <dbg> location.method_gnss_print_pvt: PRN: 19, C/N0: 24.6, in fix: 0, unhealthy: 0
    [00:08:12.151,702] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 24.1, in fix: 0, unhealthy: 0
    [00:08:12.162,445] <dbg> location.method_gnss_print_pvt: PRN: 10, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:12.173,156] <dbg> location.method_gnss_print_pvt: PRN: 31, C/N0: 24.2, in fix: 0, unhealthy: 0
    [00:08:12.183,868] <dbg> location.method_gnss_print_pvt: PRN: 4, C/N0: 24.1, in fix: 0, unhealthy: 0
    [00:08:12.194,549] <dbg> location.method_gnss_print_pvt: PRN: 25, C/N0: 24.0, in fix: 0, unhealthy: 0
    [00:08:12.205,291] <dbg> location.method_gnss_print_pvt: PRN: 24, C/N0: 24.9, in fix: 0, unhealthy: 0
    [00:08:13.080,871] <dbg> location.method_gnss_print_pvt: Tracked satellites: 12, fix valid: false
    [00:08:13.091,033] <dbg> location.method_gnss_print_pvt: PRN: 12, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:13.101,745] <dbg> location.method_gnss_print_pvt: PRN: 18, C/N0: 26.9, in fix: 0, unhealthy: 0
    [00:08:13.112,457] <dbg> location.method_gnss_print_pvt: PRN: 9, C/N0: 24.5, in fix: 0, unhealthy: 0
    [00:08:13.123,168] <dbg> location.method_gnss_print_pvt: PRN: 7, C/N0: 25.5, in fix: 0, unhealthy: 0
    [00:08:13.133,880] <dbg> location.method_gnss_print_pvt: PRN: 27, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:13.144,592] <dbg> location.method_gnss_print_pvt: PRN: 19, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:13.155,303] <dbg> location.method_gnss_print_pvt: PRN: 14, C/N0: 24.4, in fix: 0, unhealthy: 0
    [00:08:13.166,015] <dbg> location.method_gnss_print_pvt: PRN: 10, C/N0: 24.8, in fix: 0, unhealthy: 0
    [00:08:13.176,727] <dbg> location.method_gnss_print_pvt: PRN: 31, C/N0: 24.5, in fix: 0, unhealthy: 0
    [00:08:13.187,438] <dbg> location.method_gnss_print_pvt: PRN: 4, C/N0: 24.1, in fix: 0, unhealthy: 0
    [00:08:13.198,120] <dbg> location.method_gnss_print_pvt: PRN: 25, C/N0: 24.1, in fix: 0, unhealthy: 0
    [00:08:13.208,831] <dbg> location.method_gnss_print_pvt: PRN: 24, C/N0: 24.2, in fix: 0, unhealthy: 0

    PLEASE HELP!!

Related