WP7702 Issue Between Radio and GNSS

I have been having issues with the GNSS on the WP7702 where the a position fix stops being reported in our app. I have finally narrowed this done to an interaction with the radio and the GNSS which has been identified earlier this year in this post.

It appears that if the modem loses a connection to the network or is turned off with a cm radio off command the GNSS position fixes are no longer reported even though a gnss get status reports active. A gnss get agpsMode reports Standalone agps mode.

Sending an AT!GPSFIX=1,255,50 I see a single fix report in the logs but the portion fix reports don’t occur at the 1Hz rate it was before the network connect was lost. A gnss start seems to cause the GNSS to start producing position reports at the selected 1Hz rate.

How do I stop this behaviour? We have been using the WP8548 and it doesn’t exhibit this behaviour. Our product requires constant GNSS fixes regardless of the state of the network connection.

Also is this behaviour documented, it has been incredibly frustrating attempting to track down this issue.

Thanks,

with WP77 module FW 14, if network lost, I can see there is NMEA data at 1Hz at “cat /dev/nmea” after AT!GPSFIX=1,255,50


root@fx30:~# cm radio
Power:                         ON
Current Network Operator:      
Current RAT:                   Module not registered on network, RAT not available
Status:                        Not registered and not currently searching for new operator (LE_MRC_REG_NONE)
Signal:                        No signal strength (0)
PS:                            Packet Switched Not registered (LE_MRC_REG_NONE)

root@fx30:~# cm info
Device:                        WP7702
IMEI:                          352653090002791
IMEISV:                        6
FSN:                           VU735370340201
Firmware Version:              SWI9X06Y_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28
Bootloader Version:            SWI9X06Y_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28
MCU Version:                   002.015
PRI Part Number (PN):          9907365
PRI Revision:                  001.001 
Carrier PRI Name:              GENERIC
Carrier PRI Revision:          001.071_001
SKU:                           1103530
Last Reset Cause:              Reset, User Requested
Resets Count:                  Expected: 388	Unexpected: 28
root@fx30:~# cat /dev/nmea
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGRS,,,,,,,,,,,,*51
$GPGLL,,,,,,*50
$GPGGA,,,,,,0,,,,,,,,*66
$PQXFI,,,,,,,,,,*56
$GPRMC,,V,,,,,,,,,,N,V*29
$GPGLL,,,,,,*50
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGRS,,,,,,,,,,,,*51
$GPGLL,,,,,,*50
$GPGGA,,,,,,0,,,,,,,,*66
$PQXFI,,,,,,,,,,*56
$GPRMC,,V,,,,,,,,,,N,V*29
$GPGLL,,,,,,*50
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGRS,,,,,,,,,,,,*51
$GPGLL,,,,,,*50
$GPGGA,,,,,,0,,,,,,,,*66
$PQXFI,,,,,,,,,,*56
$GPRMC,,V,,,,,,,,,,N,V*29
$GPGLL,,,,,,*50
$GPVTG,,T,,M,,N,,K,N*2C
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
$GPGRS,,,,,,,,,,,,*51
$GPGLL,,,,,,*50
$GPGGA,,,,,,0,,,,,,,,*66
$PQXFI,,,,,,,,,,*56
$GPRMC,,V,,,,,,,,,,N,V*29
$GPGLL,,,,,,*50
^C

@jyijyi

Thank you for prompt reply.

I don’t have the device with me at home but I will check what cat /dev/nmea is producing tomorrow.

I do have a some follow up questions.

  1. Was your test run after power up?

I ask because the GNSS provides position fixes after power up with no network connection as I would expect. The issue occurs when the network is lost after having a connection. I see the following in the logs. The New Position sample is my debug statement denoting the call to the position handler I registered with le_gnss_AddPositionHandler.

Oct  9 06:51:07 swi-mdm9x28-wp user.info Legato:  INFO | gpsMonitor[1757]/location T=main | location.c PositionHandlerFunction() 417 | New Position sample 0x12f
Oct  9 06:51:08 swi-mdm9x28-wp user.info Legato:  INFO | gpsMonitor[1757]/location T=main | location.c PositionHandlerFunction() 417 | New Position sample 0x12f
Oct  9 06:51:09 swi-mdm9x28-wp user.info Legato:  INFO | gpsMonitor[1757]/location T=main | location.c PositionHandlerFunction() 417 | New Position sample 0x12f
Oct  8 23:51:09 swi-mdm9x28-wp user.info Legato:  INFO | dcsDaemon[1710]/dcsCellular T=main | dcsCellular.c DcsCellularPacketSwitchHandler() 726 | Packet switch state: previous 4, new 0
Oct  8 23:51:09 swi-mdm9x28-wp user.info Legato:  INFO | dcsDaemon[1710]/dcs T=main | dcs_db.c le_dcs_EventNotifierTechStateTransition() 311 | Notify all channels of technology 2 of system state transition to down
Oct  8 23:51:09 swi-mdm9x28-wp user.info Legato:  INFO | sensorToCloud[1858]/avPublisher T=main | avPublisher.c netRegStateHandle() 1039 | Network Registration state changed: [0:LE_MRC_REG_NONE]
Oct  8 23:51:09 swi-mdm9x28-wp user.warn kernel: [399320.454618] PSM: Modem oprt mode - 6
Oct  8 23:51:09 swi-mdm9x28-wp user.warn Legato: -WRN- | posDaemon[1812]/le_pa_gnss T=unknown | pa_gnss_qmi.c PositionHandler() 1509 | Bad position indication
Oct  8 23:51:09 swi-mdm9x28-wp user.warn Legato: -WRN- | modemDaemon[1775]/le_pa T=main | pa_sim_qmi.c MapSimState() 952 | More than one application 2
Oct  8 23:53:09 swi-mdm9x28-wp user.info Legato:  INFO | modemDaemon[1775]/le_pa T=main | pa_mrc_qmi.c pa_mrc_GetNetworkRegState() 2482 | called
  1. If the GNSS is producing a fix via the cat /dev/nmea file then why does the position hander that was registered with a le_gnss_AddPositionHandler call in my Legato app stop being called.

my setup does not have SIM card, so it would not have network connection

@jyijyi

As I said above and as described in the linked post the GNSS position fix is fine at start up without a connection to the network. The issue seems to occur when moving from a connected state to an unconnected state.

Honestly, stating that it works for you isn’t very constructive when I’m trying to help understand the cause of the issue and determine how to over come it.

Thanks

I don’t quite agree, at least you will know someone’s setup works fine and you can isolate with different factors like hardware, fw version or network afterwards

FYI, no problem is found for network drop


root@fx30:~# pwd                                                                
/home/root                                                                      
root@fx30:~# cm radio                                                           
Power:                         ON                                               
Current Network Operator:      USIM                                             
Current RAT:                   LTE network (LE_MRC_RAT_LTE)                     
Status:                        Registered, home network (LE_MRC_REG_HOME)       
Signal:                        Very strong signal strength (5)                  
PS:                            Packet Switched Registered, home network (LE_MRC)
                                                                                
root@fx30:~# cm radio                                                           
Power:                         ON                                               
Current Network Operator:                                                       
Current RAT:                   Module not registered on network, RAT not availae
Status:                        Not registered and not currently searching for n)
Signal:                        No signal strength (0)                           
PS:                            Packet Switched Not registered (LE_MRC_REG_NONE) 
                                                                                
root@fx30:~#  cat /dev/nmea                                                     
^C                                                                              
root@fx30:~# microcom /dev/ttyAT                                                
AT!GPSFIX=1,255,50                                                              
OK                                                                              
root@fx30:~#  cat /dev/nmea                                                     
$GPVTG,,T,,M,,N,,K,N*2C                                                         
$GPGSA,A,1,,,,,,,,,,,,,,,,*32                                                   
$GPGRS,,,,,,,,,,,,*51                                                           
$GPGLL,,,,,,*50                                                                 
$GPGGA,,,,,,0,,,,,,,,*66                                                        
$PQXFI,,,,,,,,,,*56                                                             
$GPRMC,,V,,,,,,,,,,N,V*29                                                       
$GPGLL,,,,,,*50                                                                 
$GPVTG,,T,,M,,N,,K,N*2C                                                         
$GPGSA,A,1,,,,,,,,,,,,,,,,*32                                                   
$GPGRS,,,,,,,,,,,,*51                                                           
$GPGLL,,,,,,*50                                                                 
$GPGGA,,,,,,0,,,,,,,,*66                                                        
$PQXFI,,,,,,,,,,*56                                                             
$GPRMC,,V,,,,,,,,,,N,V*29                                                       
$GPGLL,,,,,,*50                                                                 
$GPVTG,,T,,M,,N,,K,N*2C                                                         
$GPGSA,A,1,,,,,,,,,,,,,,,,*32                                                   
$GPGRS,,,,,,,,,,,,*51                                                           
$GPGLL,,,,,,*50                                                                 
$GPGGA,,,,,,0,,,,,,,,*66                                                        
$PQXFI,,,,,,,,,,*56                                                             
$GPRMC,,V,,,,,,,,,,N,V*29                                                       
$GPGLL,,,,,,*50                                                                 
^C

@jyijyi

I can in this morning and ran the same commands as you above. Before doing this I ran a gnss get status to which shows as active.

Here is my cm info:

Device:                        WP7702
IMEI:                          XXXXXXXX
IMEISV:                        6
FSN:                           XXXXXXXXX
Firmware Version:              SWI9X06Y_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28
Bootloader Version:            SWI9X06Y_02.36.06.00 63d944 jenkins 2020/12/10 19:12:28
MCU Version:                   002.015
PRI Part Number (PN):          9908741
PRI Revision:                  002.001 
Carrier PRI Name:              GENERIC
Carrier PRI Revision:          001.071_001
SKU:                           1104214
Last Reset Cause:              Reset, User Requested
Resets Count:                  Expected: 12	Unexpected: 0

I get no output when running cat /dev/nmea until I run a gnss stop followed by a gnss start only then do is see data from the cat /dev/nmea command.

I did further testing with the follow scenarios and they both result in the gnss position fix stopping confirmed by watching cat /dev/nmea

Test 1 (Active Network Connection):
I have an active network connection, the gnss is producing a fix and then I remove the antenna. The fix continues while the modem is searching once the modem moves into Packet Switched Not registered (LE_MRC_REG_NONE) then the gnss fix stops and the logs show this:

Oct 15 10:29:04 swi-mdm9x28-wp user.warn kernel: [71828.509868] PSM: Modem oprt mode - 6
Oct 15 10:29:04 swi-mdm9x28-wp user.warn Legato: -WRN- | posDaemon[1808]/le_pa_gnss T=unknown | pa_gnss_qmi.c PositionHandler() 1509 | Bad position indication
Oct 15 10:29:04 swi-mdm9x28-wp user.info Legato:  INFO | dcsDaemon[1703]/dcsCellular T=main | dcsCellular.c DcsCellularPacketSwitchHandler() 726 | Packet switch state: previous 4, new 0
Oct 15 10:29:04 swi-mdm9x28-wp user.info Legato:  INFO | dcsDaemon[1703]/dcs T=main | dcs_db.c le_dcs_EventNotifierTechStateTransition() 311 | Notify all channels of technology 2 of system state transition to down

I’m not sure how PSM is being entered as I have PSM disabled.

Test 2 (Manually Disable the Radio):
I have an active network connection, the gnss is producing a fix and then I remove the antenna. The fix continues until the modem is turned off via cm radio off then is see the same messages as the above log.

In both tests the gnss get state reports as active, the GNSS is in standalone mode and PSM is disabled.

Is this enough detail to reproduce the error?

Thanks,

I remember that if gnss is needed by at!gpsfix command, you cannot turn off the radio

According to your test, you can restart gnss if network lost happens

@jyijyi

Is this interaction with the radio and GNSS documented anywhere? The WP8548 doesn’t seem to have the same interaction.

Thanks,

I don’t know, but i just try to find a way for you to make it work

Wp85 and wp77 are using different chipset, so we might not have direct comparison between them