lte_lc: Failed to set functional mode. Please check XSYSTEMMODE.

The modem firmware of the 9151 does not seem to be responding correctly to AT commands on a custom board.

There is a similar open ticket from another user, Case ID: 339269

I added the following there as well as they seemed to be very similar cases.

Starting with the Multi Service NrfCloud Sample, with COAP support enabled.

I am using a nrf9161dk as my reference, everything works on the nrf9161dk reference but I get the following error on the custom 9151 board:

*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
[00:00:00.262,542] <inf> main: nRF Cloud multi-service sample has started, version: 1.0.0, protocol: CoAP
[00:00:00.262,573] <inf> application: Reset reason: 0x50001
[00:00:00.262,725] <inf> cloud_connection: Enabling connectivity...
[00:00:00.596,191] <err> lte_lc: Failed to set functional mode. Please check XSYSTEMMODE.
[00:00:00.596,191] <err> nrf_modem_lib_netif: lte_lc_func_mode_set, error: -14
[00:00:00.596,252] <err> conn_mgr_conn: conn_mgr_if_connect failed for iface 1 (0x2000c7e0). Error: -14
[00:00:00.596,252] <inf> cloud_connection: Setting up nRF Cloud library...
[00:00:00.689,422] <inf> nrf_cloud_info: Device ID: 50363953-3234-4a32-8048-1a2ab4bd2a37
[00:00:00.695,404] <err> nrf_cloud_info: Error requesting the IMEI: 65536
[00:00:00.780,853] <inf> nrf_cloud_info: UUID: 50363953-3234-4a32-8048-1a2ab4bd2a37
[00:00:00.786,499] <inf> nrf_cloud_info: Modem FW: mfw_nrf91x1_2.0.2
[00:00:00.786,529] <inf> nrf_cloud_info: Protocol: CoAP
[00:00:00.786,560] <inf> nrf_cloud_info: Download protocol: HTTPS
[00:00:00.786,590] <inf> nrf_cloud_info: Sec tag: 16842753
[00:00:00.786,590] <inf> nrf_cloud_info: CoAP JWT Sec tag: 16842753
[00:00:00.786,621] <inf> nrf_cloud_info: Host name: coap.nrfcloud.com
[00:00:00.881,805] <inf> nrf_cloud_credentials: Sec Tag: 16842753; CA: No, Client Cert: No, Private Key: No
[00:00:00.881,866] <inf> nrf_cloud_credentials: CA Size: 0, AWS: Unlikely, CoAP: Unlikely
[00:00:00.881,866] <err> nrf_cloud_credentials: CA Certificate not found in sec tag 16842753
[00:00:00.881,866] <err> nrf_cloud_credentials: Private Key not found in sec tag 16842753
[00:00:00.881,896] <wrn> cloud_connection: nRF Cloud credentials are not installed. Claim and onboard device on nrfcloud.com to continue.
uart:~$

I moved on and tried the at client application on both boards and found that the AT commands do not respond properly on the custom board, specifically when trying to set CFUN=31, or any other valid value, I get +CME Error:531.

According to the documentation on AT commands for the nrf91x1,

Error 531 – Not allowed. AFC calibration (%XRFTEST) or TX self-calibration (%TXSELFCAL) or both have not been executed with PTI firmware.

Does this mean that the PTI firmware needs to be loaded and these tests run? If so are there other production steps that need to be taken? Are there details some where on the process?

These same CFUN commands work just fine on the nrf9161dk

The build for each board is on the same workspace, and I only added an overlay to redirect my UART0 to my preferred pins for the custom 9151 board, all other project settings are the same.

I also rewrote the modem firmware to both boards, mfw_nrf91x1_2.0.2.zip, to both

I also ran the At command to check the modem firmware version on each board and both state, %SHORTSWVER: nrf91x1_2.0.2

Also note that I tested both boards with and without the SIM card installed and the results are the same, the nrf9161dk responds to commands correctly and the custom 9151 board does not.

lastly, I have had this board reviewed by Nordic and I beeped out the SIM connections. As The command responses are the same with or without a SIM installed on both boards, I would surmise that this is a modem issue not a SIM card issue, so the board layout should not be an issue.

when running at%xsystemmode? result is, %XSYSTEMMODE: 1,1,1,3

Thank you

  • Hello, 

    [00:00:00.881,896] <wrn> cloud_connection: nRF Cloud credentials are not installed. Claim and onboard device on nrfcloud.com to continue.

    Did you do as the application instructs? 

    I moved on and tried the at client application on both boards and found that the AT commands do not respond properly on the custom board, specifically when trying to set CFUN=31, or any other valid value, I get +CME Error:531.

    What happens if you use AT+CFUN=1? Can you please collect a modem trace with Cellular Monitor while you have AT Client programmed and capture a modem trace for me to review? This could tell us more on why it fails.

    Thanks.

    Kind regards,
    Øyvind

  • Claiming will be done via the claiming system on the nrfCloud. This is an automated process that only requires the AT%ATTESTTOKEN string loaded into the nrfcloud.

    No matter which CFUN=X I put in I get the same error

    +CFUN: (0,1,2,4,20,21,30,31,40,41,44)
    OK
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531
    +CME ERROR: 531

    I have added the modem trace snippet to at_client and run that but get the following error:

    Error when creating trace: error: ERR_SERIALPORT_OPEN message: Win32 open serialport error: Access is denied. plugin path: C:\Users\xxxx\.nrfconnect-apps\node_modules\pc-nrfconnect-cellularmonitor\node_modules\@nordicsemiconductor\nrf-monitor-lib-js\Release\win32-x64\nrfml-insight-source.nrfml

    Which uart does the Cellular Monitor want access to? uart0 or uart1?

  • Is it possible to enable few unsolicited notifications and run the same trials?

    AT%MDMEV=2

    AT+CGEREP=1

    Also could you try to read device powerclass

    AT%POWERCLASS?

  • here are the responses to the suggested commands

    *** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
    *** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
    The AT host sample started
    Ready
    > at%mdmev=2
    OK
    > at+cgerep=1
    OK
    > at%powerclass?
    %POWERCLASS: 3
    OK
    > at+CFUN?
    +CFUN: 0
    OK
    > at+cfun=1
    %MDMEV: RF CALIBRATION NOT DONE
    ERROR

    Also, I do not see a way to run a modem trace on a custom board. 

    The cellular monitor program requires uart0 and uart1 to run the tests and generate the trace. when running the application you have to select a device, and unless you are using a Nordic DK which bundles multiple uarts in one device, you only have access to one uart at a time. 

    Maybe there is a mode I am missing in the application or there is a way to bundle two uarts into one device, sort of spoofing a nordic DK?

  • Hi Warren, thanks for providing the information as instructed by my colleague. 

    Do you have access to RTT on you custom board? If so you can use RTT to collect modem traces follow the steps under Modem tracing with RTT. The modem traces are captured using J-Link RTT Viewer, and then using data logging. 

    If you do not have access to RTT, you can follow these instructions on Sending traces over UART on a custom board.

    You can also do nRF91 modem tracing with UART backend using snippets, if you are using VS Code, with the same snippet alternative for RTT.

    Let me know how that works for you. 

    Kind regards,
    Øyvind

Related