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

  • 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

Reply
  • 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

Children
  • 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!!

  • I reverted the nRF9160 firmware from 1.3.3 to 1.3.2.  There is no difference.  I reverted again to 1.3.1.  There is no difference either.  The board still tracks 11-12 satellites but 0 fix.  I tried another board and the result is the same.  SDK is 1.9.1.

  • Can you provide some information on where you are doing you testing, i.e. the conditions around your device?

    Do you have an nRF9160 DK or Thingy:91 to test with as well?

Related