Failed to configure GNSS

Hello,

I have a custom board with an nRF9160 and is running mfw_nrf9160_1.3.5.  The design is ready for production so I thought I will build 10 boards first as a pilot run.  Out of the 10 boards, one is giving me the following error.

W: nrf_modem_gnss_agps_expiry_get() failed, err -13
E: Failed to configure GNSS
I: Location retrieval failed using 'GNSS', trying with 'Cellular' next
%NCELLMEAS: 0,"08452E01","302610","D6DD",80,2325,135,40,15,606912,2325,481,34,2,0,900,310,44,16,24,5255,482,51,18,32

All 9 others work fine.  I tried re-flashing the board a few times, but no luck.  This same error keeps happening.  Does anyone have an idea what is wrong?

Thank you.

Parents
  • Hi Floyd

    I will start looking into your case. Our teams nRF91x is out of office due to training so it might be a bit slower response

    Regards

    RUnar

  • Thank you, Runar.  We built a number of prototype before these 10 units.  None of them have this problem either.  This is the first time we see error like this.  We definitely can't test every single unit during production to see if this happens.

  • Now confirmed 2 out of the 10 pre-production boards are showing the same nrf_modem_gnss_agps_expiry_get() failure issue.  The second one was running fine for days before.  Can you tell me exactly what causes the function to fail?  Where can I find this function?  

  • Hi,

    Return value -13 from nrf_modem_gnss_agps_expiry_get() is -NRF_EACCES which according to nrf_modem_gnss.h means "GNSS is not enabled in system or functional mode".

    It looks like you might be having problems due to misconfiguration. In your project configuration, you have selected both CONFIG_LTE_NETWORK_MODE_LTE_M_NBIOT_GPS=y and
    CONFIG_LTE_NETWORK_DEFAULT=y but these options are mutually exclusive. Only one of them should be selected. Based on the device's behavior the latter one (CONFIG_LTE_NETWORK_DEFAULT=y) gets applied and the system mode stored in modem's NVM is used. You could try to remove CONFIG_LTE_NETWORK_DEFAULT=y from your project configuration so that you only have CONFIG_LTE_NETWORK_MODE_LTE_M_NBIOT_GPS=y which is probably the option which you want to use.

    Best regards,
    Dejan

  • What I found out last night was that the 2 failed boards have %xsystemmode=1,0,0,0, whereas all good working boards have %xsystemmode=1,1,1,0.  I then manually entered at%xsystemmode=1,1,1,0 on the 2 failed boards and then they both worked now.  My question is why is this happening when all boards are running the same code and same modem firmware?  Do I have to set xsystemmode=1,1,1,0 manually at the beginning of the code? 

  • Hi,

    flau said:
    What I found out last night was that the 2 failed boards have %xsystemmode=1,0,0,0, whereas all good working boards have %xsystemmode=1,1,1,0.
    flau said:
    My question is why is this happening when all boards are running the same code and same modem firmware?  Do I have to set xsystemmode=1,1,1,0 manually at the beginning of the code? 

    Looking at %XSYSTEMMODE set command, it might be that the operator has overridden values which are configured. %xsystemmode command is allowed only before activating the modem using the +CFUN=1 command. If the mode needs to be changed, ensure that modem has entered minimum functionality mode +CFUN=0 or flight mode CFUN=4 before doing the change.

    Best regards,
    Dejan

  • Thanks Dejan.  I think you can close this ticket at this point.  Although it is weird, I will put in a line in the code to check the mode.  If it is not set correctly, then I will issue the xsystemmode command.

Reply Children
No Data
Related