Serial LTE Modem + GPS

I am attempting to get GPS working on a custom board which uses a Fanstel m2 nrf52840 + nrf9160 module. I am also using a nRF9160-DK board, the one with the integrated GPS (Tagolas) antenna.

The nRF9160 on both devices has been loaded with the mfw_nrf9160_1.3.3.zip modem firmware. I've also downloaded the latest SDK version 2.3.0 and build and programmed the serial_lte_modem project.

The AT commands I'm using are:

```

AT%XSYSTEMMODE=1,0,1,0
AT%XCOEX0=1,1,1570,1580
AT%XMAGPIO=1,0,0,1,1,1574,1577
AT+CFUN=1
AT#XGPS=1,1

```

If I go outside, the DK board will eventually start to produce some GPS messages, while our Fanstel board does not.

In terms of hardware, there are a few differences between the devices. The DK is using an integrated Tagolas GPS antenna. The Fanstel is using some integrated internal antenna -- there is is some pad for a u.fl external antenna but it is not populated.

Looking at the schematic, the Fanstel has am amplifier which has its GPS_EN connected on the nrf9160 to MAGPIO0. On the DK, older schematic also had this arrangement, while some newer schematic had GPS_EN connected to COEX0.

At this point, I am just using the default unmodified code for the serial_lte_modem project. I'm hoping the issue is something like the GPS_EN but am not sure. I'm not sure what to do to get the GPS up and running on the Fanstel. Outside of GPS, the unit works just fine.

Parents
  • Tested again today with no other changes. This time, I mounted the Fanstel device to the roof of my car. It eventually worked! Seems like after enabling it took 10-15 to lock. Tested with and without LTE.

    Interestingly, the last test I did had LTE enabled. Not sure if coincidence or not, but after 10 minutes or so it didn't seem like it was working then I did a "AT%XMAGPIO?" and it immediately started pumping out GPS data.

    I need to automate this stuff for use in our device. Let me know if that weird polling for the xmagpio is sensible. Could just be a fluke it started right after?

  • Hi,

     

    Thanks for posting the pictures. This helps alot.

    jhadella said:

    Tested again today with no other changes. This time, I mounted the Fanstel device to the roof of my car. It eventually worked! Seems like after enabling it took 10-15 to lock. Tested with and without LTE.

    Interestingly, the last test I did had LTE enabled. Not sure if coincidence or not, but after 10 minutes or so it didn't seem like it was working then I did a "AT%XMAGPIO?" and it immediately started pumping out GPS data.

    I need to automate this stuff for use in our device. Let me know if that weird polling for the xmagpio is sensible. Could just be a fluke it started right after?

    Good to hear that you got a fix. I think there is a performance gap between the two designs here.

    If you run the gnss sample (and set CONFIG_GNSS_SAMPLE_NMEA_ONLY=y), you should be able to get NMEA strings out directly from each module. Here, I'm interested in the CN0 for each respective satellite. This is a number that you want to be >30 for atleast 4 satellites in order to produce a fix.

    Could you try this and share the log for both DK and your custom board?

     

    Kind regards,

    Håkon

Reply
  • Hi,

     

    Thanks for posting the pictures. This helps alot.

    jhadella said:

    Tested again today with no other changes. This time, I mounted the Fanstel device to the roof of my car. It eventually worked! Seems like after enabling it took 10-15 to lock. Tested with and without LTE.

    Interestingly, the last test I did had LTE enabled. Not sure if coincidence or not, but after 10 minutes or so it didn't seem like it was working then I did a "AT%XMAGPIO?" and it immediately started pumping out GPS data.

    I need to automate this stuff for use in our device. Let me know if that weird polling for the xmagpio is sensible. Could just be a fluke it started right after?

    Good to hear that you got a fix. I think there is a performance gap between the two designs here.

    If you run the gnss sample (and set CONFIG_GNSS_SAMPLE_NMEA_ONLY=y), you should be able to get NMEA strings out directly from each module. Here, I'm interested in the CN0 for each respective satellite. This is a number that you want to be >30 for atleast 4 satellites in order to produce a fix.

    Could you try this and share the log for both DK and your custom board?

     

    Kind regards,

    Håkon

Children
  • I was able to collect some data using that project on the DK board. See attached.

    I was having trouble getting the same on the Fanstel board. I normally use my custom nrf52840 usb uart passthrough app, but the frequency of the NMEA was causing issue. The nrf connect app doesn't seem to work correctly with that hardware. I'm using another dk with jtag.

    nrf9160_dk_gnss_log.txt

  • Hi,

     

    If we take the GPGSV from just before a fix is produced (lines 3231-3232):

    2023-03-14T16:11:27.636Z DEBUG modem << $GPGSV,2,1,5,7,,,30,8,,,28,9,,,27,27,,,28,1*67
    2023-03-14T16:11:27.641Z DEBUG modem << $GPGSV,2,2,5,30,,,27,1*57

    Here you have 5 satellites with SNR of 30, 28, 27, 28, and 27.

    This is the CN0 (in dB/Hz), which is a number that you want to be >30 to ensure a good reception.

     

    This was from the DK, right? If you get the fanstel module logging these NMEA strings in the exact same position as you tested just now, we can compare the GPGSV strings between the two to see if there's an antenna performance difference.

     

    Kind regards,

    Håkon

Related