This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF9160DK UART-controlled GPS

nRF SDK version is 1.5.1

upgrade modem fw to 1.3.0

Is there any way to do software reset on GPS modem? I have ran the gps example and I notice that "printk" sends everything via UART TX. Is there any function/API to utilize the RX data on the same UART port? by doing that I want to do software restart (with different mode, e.g. hot/warm/cold restart) on the GPS modem only. 

I wasn't sure it is the proper method to do GPS modem restart, is there any method already been defined?

  • Hello Bo,

    you can start and stop the GPS socket. Additionally you can delete GNSS data to trigger cold/warm starts.

    Just out of curiosity: why do you want to reset the modem?

    Regarding the UART: Yes, you can use the RX interface of the UART peripheral to communicate with the device. The Peripheral UART sample might be of interest for you here, as it shows the usage of the API.

    I hope this will help you!

    Regards,

    Markus

  • Hi Markus, 

    The reason I want to reset the modem is to test the GPS module in a fully automatic environment, with proper reset mode been set up, I will collect TTFF data from the test bench.

    I thought a controllable reset (via UART) should be a standard feature, since all GPS module manufacturers (uBlox, Qectel, etc) have it ready with their products. e.g. ublox has its own UBX protocol (thru serial comms) to support the configuration.

    the UART example you mentioned is for BlueTooth module and it use NUS service. I wonder if the "printk" function in gps example also uses NUS service? Is there any conflict if I initialized the same UART port with printk?

  • The Peripheral UART application demonstrates the usage of the Zephyr UART library. You have to pick the UART snippets you would like to use and implement/modify them towards your GPS application.

    Regarding the reset of the GPS socket, I have to check with our modem team if this is possible to do via the application layer.

    Regards,

    Markus

  • Hello again,

    I got some feedback from our modem team:

    In our implementation GNSS is part of the modem and it's not possible to reset GNSS separately.

    For cold/warm start testing the delete mask in start and stop commands (in the GNSS socket API) is the way to go. To perform a cold start, the delete mask should be set to 0x7f. This clears everything from GNSS except the TCXO offset, which is an GNSS internal value which is not acquired from satellites or A-GPS. Setting the delete mask to 0x01 clears only ephemeris data and can be used to simulate a warm start. Please have a look at the GNSS interface documentation for all the bit values.

    Cold start cases can also be run by resetting the device. However, in this case the TCXO offset is lost, which may affect TTFF especially when A-GPS is used. This doesn't reflect the normal use case where device remains powered on.

    I hope this answers your question!

    Regards,

    Markus

Related