nrf9160 GNSS not working... frustrating...

I am using the Sparkfun thing plus nrf9160 feather with SDK 2.0.0 and modem firmware 1.3.2.

Ultimately I would like to get LTE working along with GNSS, however, I can't even seem to get your GNSS sample code to work reliably.  The "Tracking" output of the demo typically hovers around 1, and "using" is zero.  I have gotten it to work on rare occasions, but it is the exception rather than the rule.  Terrible performance even with clear sky views.

I've seen others expressing frustration with performance too, but haven't seen much of a response other than "it should work" and "It should work with LTE."

How do I solve this problem?  I was hoping that the latest modem FW and SDK would help, but no such luck.

Is there an issue with the feather board?  Noise, layout, etc?  

Any particular relatively inexpensive antennas you suggest I try?

Thank you.

Parents
  • An update...

    We have had more success using the active antenna.  By including the statement:


    err = nrf_modem_at_cmd(response, 100, "%s", "AT%XCOEX0=1,1,1570,1580");


    It now appears to enable power to the active antenna. Adding this line I now seem to be able to get both an MQTT connection and GPS lock within 3 minutes from the times I've tried.

    I should not have had to use the %s, but I was unable to quickly determine exactly how to escape out the '%' in the printf-style call and not receive an ERROR response from the AT processor.

    There also appears to be some mechanism to do this via the config file (at least historically), but I was unable to sort out what was current information and get that to work.

    There is also an issue that if I started the GNSS thread and the MQTT thread using LTE at the same time I would get errors from the LTE thread stating that it was having problems issuing AT commands -- I suspect the two threads were competing for the AT interface somehow.  This issue only occurred if I manually send the command using the nrf_modem_at_cmd() function -- if I commented that out I had no error from the MQTT thread.

    I think there are a few issues:
    1) my lack of knowledge of Zephyr.
    2) my lack of knowledge of the nrf9160.
    3) not knowing where to go to get current information on both.

    I am not sure I should be happy with the 3 minute connection time.  I believe that GNSS (without the LTE thread) can get a fix within a minute using the active antenna and the LTE connection to my MQTT server (with GNSS disabled) can occur between 1-2 minutes.  Are these expected times?

  • Richard W Mincher said:

    I should not have had to use the %s, but I was unable to quickly determine exactly how to escape out the '%' in the printf-style call and not receive an ERROR response from the AT processor.

    "%" is escaped with "%", so the COEX command will be "AT%%COEX0=1,1,1570,1580).

    Richard W Mincher said:
    There also appears to be some mechanism to do this via the config file (at least historically), but I was unable to sort out what was current information and get that to work.

    In NCS v2.0.0, you can use the modem_antenna library:

    CONFIG_MODEM_ANTENNA=y
    CONFIG_MODEM_ANTENNA_AT_COEX0="AT\%COEX0=1,1,1570,1580"

    Richard W Mincher said:
    There is also an issue that if I started the GNSS thread and the MQTT thread using LTE at the same time I would get errors from the LTE thread stating that it was having problems issuing AT commands -- I suspect the two threads were competing for the AT interface somehow.  This issue only occurred if I manually send the command using the nrf_modem_at_cmd() function -- if I commented that out I had no error from the MQTT thread.

    That doesn't sound right. Could you share some application and modem logs?

    Richard W Mincher said:
    I am not sure I should be happy with the 3 minute connection time.  I believe that GNSS (without the LTE thread) can get a fix within a minute using the active antenna and the LTE connection to my MQTT server (with GNSS disabled) can occur between 1-2 minutes.  Are these expected times?

    GNSS operation in the nRF9160 is time-multiplexed with the LTE modem, and the LTE stack has priority. So the GNSS stack shouldn't affect how fast you can connect to the LTE network or a server.

    However, running the LTE stack can significantly impact the GNSS stack unless the LTE stack is sleeping (eDRX or PSM).

    Again, with some application and modem logs, I ca nget a beter overview of what is happening.

Reply
  • Richard W Mincher said:

    I should not have had to use the %s, but I was unable to quickly determine exactly how to escape out the '%' in the printf-style call and not receive an ERROR response from the AT processor.

    "%" is escaped with "%", so the COEX command will be "AT%%COEX0=1,1,1570,1580).

    Richard W Mincher said:
    There also appears to be some mechanism to do this via the config file (at least historically), but I was unable to sort out what was current information and get that to work.

    In NCS v2.0.0, you can use the modem_antenna library:

    CONFIG_MODEM_ANTENNA=y
    CONFIG_MODEM_ANTENNA_AT_COEX0="AT\%COEX0=1,1,1570,1580"

    Richard W Mincher said:
    There is also an issue that if I started the GNSS thread and the MQTT thread using LTE at the same time I would get errors from the LTE thread stating that it was having problems issuing AT commands -- I suspect the two threads were competing for the AT interface somehow.  This issue only occurred if I manually send the command using the nrf_modem_at_cmd() function -- if I commented that out I had no error from the MQTT thread.

    That doesn't sound right. Could you share some application and modem logs?

    Richard W Mincher said:
    I am not sure I should be happy with the 3 minute connection time.  I believe that GNSS (without the LTE thread) can get a fix within a minute using the active antenna and the LTE connection to my MQTT server (with GNSS disabled) can occur between 1-2 minutes.  Are these expected times?

    GNSS operation in the nRF9160 is time-multiplexed with the LTE modem, and the LTE stack has priority. So the GNSS stack shouldn't affect how fast you can connect to the LTE network or a server.

    However, running the LTE stack can significantly impact the GNSS stack unless the LTE stack is sleeping (eDRX or PSM).

    Again, with some application and modem logs, I ca nget a beter overview of what is happening.

Children
No Data
Related