I am trying to implement GPS code.

I am trying to implement GPS code in the nrf9160 but I cant find the function nrf_modem_gnss_init(); to initialize GNSS inside the modem in , is it being initialised within nrf_modem_gnss_start() function internally ?   please help on this.

  • Please follow these instructions on how to capture modem trace, and upload the trace file in .bin or .trace format.

  • Modem_logsOpen1.bin

    Hi  please find the above logs in .bin format. These were taken under open sky and external antenna connected to the board. Also find terminal logs for your reference.

    # SEGGER J-Link RTT Viewer V8.82 Terminal Log File
    # Compiled: 11:50:24 on Oct 29 2025
    # Logging started @ 17 Feb 2026 17:55:08
    00> *** Booting nRF Connect SDK v3.1.0-6c6e5b32496e ***
    00> *** Using Zephyr OS v4.1.99-1612683d4010 ***
    00> [00:00:10.641,510] <inf> modem_trace_backend: Modem_trace RTT backend channel 1
    00> [00:00:10.641,540] <inf> nrf_modem_lib_trace: Trace thread ready
    00> [00:00:10.649,017] <inf> nrf_modem_lib_trace: Trace level override: 2
    00> LED1RED: ON
    00> LED1RED: OFF
    00> LED2GREEN: ON
    00> LED2GREEN: OFF
    00> [00:00:26.048,187] <inf> gnss_app: GPS powered ON
    00> [00:00:27.057,891] <inf> gnss_app: Modem set to GNSS-only mode
    00> [00:00:27.058,410] <wrn> gnss_app: XMAGPIO set failed: type=1 code=0 ret=65536
    00> [00:00:27.059,112] <wrn> gnss_app: XCOEX0 set failed: type=1 code=0 ret=65536
    00> [00:00:27.079,132] <inf> gnss_app: GNSS event: 4
    00> [00:00:27.079,162] <inf> gnss_app: GNSS started.
    00> [00:00:27.101,989] <inf> gnss_app: GNSS PVT struct size=232
    00> [00:00:27.101,989] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:27.102,020] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:28.103,057] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:28.103,118] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:29.103,240] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:29.103,240] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:30.103,271] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:30.103,302] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:31.103,302] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:31.103,332] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:32.103,424] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:32.103,454] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:33.103,454] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:33.103,485] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:34.103,485] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:34.103,546] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:35.103,454] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:35.103,485] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:36.103,515] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:36.103,546] <inf> gnss_app: PVT: searching... sv_view=1 acc=0.0(m) flags=0x00000000
    00> [00:00:37.103,912] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:37.103,942] <inf> gnss_app: PVT: searching... sv_view=1 acc=0.0(m) flags=0x00000000
    00> [00:00:38.104,064] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:38.104,095] <inf> gnss_app: PVT: searching... sv_view=1 acc=0.0(m) flags=0x00000000
    00> [00:00:39.104,003] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:39.104,003] <inf> gnss_app: PVT: searching... sv_view=1 acc=0.0(m) flags=0x00000000
    00> [00:00:40.103,210] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:40.103,240] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:41.103,210] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:41.103,240] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:42.103,698] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:42.103,729] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:43.103,790] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:43.103,790] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:44.103,576] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:44.103,607] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:45.103,820] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:45.103,820] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:46.103,851] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:46.103,881] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:47.103,454] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:47.103,454] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:48.103,485] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:48.103,515] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:49.103,973] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:49.103,973] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:50.104,003] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:50.104,034] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:51.103,363] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:51.103,363] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:52.103,637] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:52.103,668] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:53.104,095] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:53.104,125] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:54.104,217] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:54.104,248] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:55.103,729] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:55.103,759] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:56.103,790] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:56.103,820] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:57.104,248] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:57.104,278] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:58.104,156] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:58.104,187] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:00:59.103,942] <inf> gnss_app: PVT flags=0x00000000
    00> [00:00:59.103,973] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:00.103,912] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:00.103,973] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:01.103,942] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:01.103,973] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:02.104,003] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:02.104,034] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:03.104,461] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:03.104,492] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:04.104,522] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:04.104,553] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:05.103,881] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:05.103,881] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:06.104,156] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:06.104,187] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:07.104,248] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:07.104,248] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:08.104,736] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:08.104,766] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:09.104,705] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:09.104,705] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:10.104,278] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:10.104,339] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:11.104,339] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:11.104,339] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:12.104,675] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:12.104,705] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:13.104,858] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:13.104,888] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:14.104,888] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:14.104,919] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:15.104,522] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:15.104,553] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:16.104,522] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:16.104,553] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:17.105,010] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:17.105,010] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:18.105,041] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:18.105,072] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:19.104,949] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:19.104,949] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:20.105,102] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:20.105,163] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:21.104,705] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:21.104,705] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:22.105,255] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:22.105,285] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:23.105,224] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:23.105,255] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:24.104,827] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:24.104,858] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:25.104,827] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:25.104,858] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:26.105,194] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:26.105,224] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:27.105,377] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:27.105,377] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:28.105,407] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:28.105,438] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:29.105,438] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:29.105,438] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:30.105,468] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:30.105,499] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:31.105,377] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:31.105,377] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:32.105,102] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:32.105,133] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:33.105,133] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:33.105,163] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:34.105,163] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:34.105,194] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:35.105,194] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:35.105,224] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:36.105,255] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:36.105,285] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:37.105,712] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:37.105,743] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:38.105,743] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:38.105,804] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:39.105,804] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:39.105,804] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:40.105,834] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:40.105,865] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:41.105,834] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:41.105,865] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:42.105,865] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:42.105,926] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:43.105,895] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:43.105,926] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:44.105,834] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:44.105,865] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:45.106,048] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:45.106,079] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    00> [00:01:46.106,018] <inf> gnss_app: PVT flags=0x00000000
    00> [00:01:46.106,048] <inf> gnss_app: PVT: searching... sv_view=0 acc=0.0(m) flags=0x00000000
    
    # Logging stopped @ 17 Feb 2026 17:59:55
    

  • You should check if the LNA gets properly enabled. Since you are using a regular GPIO pin instead of COEX0, there can potentially be issues.

    GNSS gets started and is receiving PVT notifications once a second, so it does not look like a GNSS API issue.

  • This is an internal GPS setup and has external on-board antenna attached to it. 

    I can see voltages around D1(2.489 at cathode ) , D2 (2.673 at cathode ) which further goes to c1(2.48), c2(2.49)  and c3(2.67), c4(2.67) which are sufficient to power up LNA. 

    Is there anything else I am missing in the code ?

    Also coex is used for coexistence of LTE along with GNSS. Here I am using GNSS mode only in the code. 

      

     

Related