This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

GNSS interface problems

Hello,

I am migrating my project from GPS driver to GNSS interface. I am facing a few problems when I am using GNSS interface.

1. GPS driver can generate simulation data, how can I do the same in GNSS interface?

2. GNSS interface can select Timing source between RTC and TCXO. If I am not using 1PPS, is there any beneficial in 1 minute periodic navigation?

3. In GNSS interface, there is a chapter called changing-the-dynamics-mode. But it does not work when I testing in GPS example.

Here is the only modification in gps example code.

static int init_app(void)
{
    ...
	if (nrf_modem_gnss_fix_interval_set(1) != 0) {
		printk("Failed to set GNSS fix interval\n");
		return -1;
	}

	if (nrf_modem_gnss_dyn_mode_change(NRF_MODEM_GNSS_DYNAMICS_PEDESTRIAN) != 0) {
        printk("Failed to set dynamic mode\n");
		return -1;
    }

	if (nrf_modem_gnss_start() != 0) {
		printk("Failed to start GNSS\n");
		return -1;
	}
	return 0;
}

My testing environment:

- nRF9160 thing plus with modem v1.3

- nRF Connect SDK v1.7.0

Any suggestion is appreciated.

Parents
  • Hi,

    1. GPS driver can generate simulation data, how can I do the same in GNSS interface?

    The GNSS interface does not support simulating GPS data.

    The GPS simulator isn't removed yet, but with a different API it probably isn't as usefull.

    2. GNSS interface can select Timing source between RTC and TCXO. If I am not using 1PPS, is there any beneficial in 1 minute periodic navigation?

    To save power, the GNSS can keep sending 1PPS using an on-board timing source, instead of keeping the GNSS running at all times.

    The setting should not have any effect when not using 1PPS.

    3. In GNSS interface, there is a chapter called changing-the-dynamics-mode. But it does not work when I testing in GPS example.

    You need to call nrf_modem_gnss_start() before you call nrf_modem_gnss_dyn_mode_change().

    Also, remember that GNSS must be activated in the modem, with AT+CFUN=1 or 31.

    Best regards,

    Didrik

Reply
  • Hi,

    1. GPS driver can generate simulation data, how can I do the same in GNSS interface?

    The GNSS interface does not support simulating GPS data.

    The GPS simulator isn't removed yet, but with a different API it probably isn't as usefull.

    2. GNSS interface can select Timing source between RTC and TCXO. If I am not using 1PPS, is there any beneficial in 1 minute periodic navigation?

    To save power, the GNSS can keep sending 1PPS using an on-board timing source, instead of keeping the GNSS running at all times.

    The setting should not have any effect when not using 1PPS.

    3. In GNSS interface, there is a chapter called changing-the-dynamics-mode. But it does not work when I testing in GPS example.

    You need to call nrf_modem_gnss_start() before you call nrf_modem_gnss_dyn_mode_change().

    Also, remember that GNSS must be activated in the modem, with AT+CFUN=1 or 31.

    Best regards,

    Didrik

Children

  • The GNSS interface does not support simulating GPS data.
    
    The GPS simulator isn't removed yet, but with a different API it probably isn't as usefull.

    Thank you for your response. I have tested the board outdoor which has a fast first-time-to-fix and great accuracy in positioning. But is there any chances I can port the code of GPS simulator to GNSS interface? Or in any way I can test the GNSS interface indoor?

    It is hard to find a place which is outdoor and has a table and chair in my area. A rainy day/days make the problems worse.

    2. To save power, the GNSS can keep sending 1PPS using an on-board timing source, instead of keeping the GNSS running at all times.
    
    The setting should not have any effect when not using 1PPS.
    
    
    3. You need to call nrf_modem_gnss_start() before you call nrf_modem_gnss_dyn_mode_change().
    
    Also, remember that GNSS must be activated in the modem, with AT+CFUN=1 or 31.

    Thank you for the clear explanation.

  • kclauah said:
    Or in any way I can test the GNSS interface indoor?

    You could use an external antenna, or a GPS repeater, though both of those solutions might be a bit over the top if you are not testing the GPS specifically.

    kclauah said:
    But is there any chances I can port the code of GPS simulator to GNSS interface?

    Yes, you might be able to do that. But you risk running into problems with multiple definitions of the API.

    Another solution would be to use the new location API which has been included on the master branch: https://github.com/nrfconnect/sdk-nrf/blob/main/include/modem/location.h

    It will support both cellular and GNSS based location backends. The cellular based location services might be a good enough solution (no need for simulating anything, but some potential cost on the cloud side), or you could port the simulator to use the location API.

  • Thank you!

    My board is connected with a patch antenna and try to retrieve location sitting next to the windows but it is not working. A GPS repeater maybe a bit overkill. I have also tested cellular based location service but the result is unacceptable(I have not tried the new location API, but using GetSingleCellLocation).

    Let me take a look into the master branch location API and see if porting the GPS simulator is feasible.

Related