9160/LTE; no return from lte_lc_connect() and keeps resetting

Hi,

I'm having trouble with my custom 9160 board. It won't connect to LTE-M network and keeps resetting.

My prototype was developed using the 9160DK. I can connect to LTE-M network and send data to nrf Cloud. The combination is 9160 B1A, mfw 1.3.1, and NCS SDK1.7.1.

Now my custom board is using B0A silicon, with mfw 1.1.1. I have upgrade/downgrade between 1.1.1 and 1.3.1 multiple times. But that doesn't seem to make any difference.

My test code is simplified to like this:

LOG_INF("modem init");
lte_lc_register_handler(lte_lc_evt_handler);
err = lte_lc_init();
LOG_DBG("lte_lc_init(): %d", err);
err = lte_lc_connect();
LOG_DBG("lte_lc_connect(): %d", err);
LOG_INF("modem init done");

The log message looks like this:

00> I: modem init
00> D: Sending AT command to set system mode: AT%XSYSTEMMODE=1,0,1,0
00> D: System mode (4) and preference (0) configured
00> D: lte_lc_init(): 0
00> D: Sending AT command to set system mode: AT%XSYSTEMMODE=1,0,1,0

So it went through lte_lc_init(), but never returned from lte_lc_connect(). It will stays there for various amount of time, from a few seconds to a minute or so, then it resets.

Since this is a custom board, I try to figure out if any hardware issue could cause such problem. I assume lte_lc_connect() will search for the network and try to make a connection. The document says it has a timeout. I assume if it timed out, it should return from lte_lc_connect() with an error code? But it never returned and always resets after a while. Any possible explaination lte_lc_connect() could cause this? Or should I more look at hardware side? How can I get more debug information to troubleshoot this? I already set CONFIG_LTE_LINK_CONTROL_LOG_LEVEL_DBG=y.

The same code runs fine on the 9160DK and get connected in a few seconds.

Thanks!

Parents
  • Hi,

    This problem could be a compatibility issue.

    You can find the following comments from nRF9160 SiP modem firmware downloading page v1.3.x:

    • Note that this modem firmware is targeted nRF9160 SiP Revision 2 
    • It can be used for nRF9160 SiP Revision 1, but only for testing and development
    • It cannot be used for engineering samples of Revision 1 (e.g. DKs or Thingy:91 with version older than v0.9.0) 
    • After you upgrade to MFW 1.3.x it is not recommended to downgrade to MFW 1.2.x or MFW 1.1.x.(potential file system issues)

    The modem library in NCS is used to communicate with the corresponding MFW. According to Nordic Semiconductor Infocenter, MFW 1.1.1 is a quite old version that should be used with NCS before v1.2.0. 

    Here are my suggestions for your development:

    1) If you are still at the beginning stage of your development, please change to nRF9160 Rev2 for your custom device in order to use the latest MFW and NCS. Some Mobile network operator certifications require to use the new version.

    2) If you have to use B0A silicon, please develop with MFW 1.2.8 + NCS 1.5.2. 

    Best regards,

    Charlie

  • We're not aware of such significant difference between different silicon rev. We will look for B1 next time for sure. But for the short term we probably can only use the current hardware we have just built.

    I tried to get the 1.2.8+1.5.2 combination going but encountered the following build error:

    CMake Error at /home/zzzzz/ncs/zephyr/cmake/extensions.cmake:912 (message):
      Board revision `0.7.0` for board `xxxxx_nrf9160_ns` not found.  Please
      specify a valid board revision.

    I have my custom board file placed in my project folder ('out-of-tree'):

    <proj root>/boards/arm/xxxxx_nrf9160

    And I have following lines in my CmakeLists.txt:

    set(BOARD_ROOT ${CMAKE_CURRENT_LIST_DIR})
    set(BOARD xxxxx_nrf9160)

    This works fine when I use SDK1.7.1. But when I switch to 1.5.2, I don't know what needs to change to let it find the board files. The revision '0.7.0' was from the nrf9160dk_nrf9160 board files. Do I need to make any change to that?

    Any thoughts? Thanks!

Reply
  • We're not aware of such significant difference between different silicon rev. We will look for B1 next time for sure. But for the short term we probably can only use the current hardware we have just built.

    I tried to get the 1.2.8+1.5.2 combination going but encountered the following build error:

    CMake Error at /home/zzzzz/ncs/zephyr/cmake/extensions.cmake:912 (message):
      Board revision `0.7.0` for board `xxxxx_nrf9160_ns` not found.  Please
      specify a valid board revision.

    I have my custom board file placed in my project folder ('out-of-tree'):

    <proj root>/boards/arm/xxxxx_nrf9160

    And I have following lines in my CmakeLists.txt:

    set(BOARD_ROOT ${CMAKE_CURRENT_LIST_DIR})
    set(BOARD xxxxx_nrf9160)

    This works fine when I use SDK1.7.1. But when I switch to 1.5.2, I don't know what needs to change to let it find the board files. The revision '0.7.0' was from the nrf9160dk_nrf9160 board files. Do I need to make any change to that?

    Any thoughts? Thanks!

Children
  • I have figured out the problem with board revision. I made a mistake. Now I can pass this point but I have new problem now.

    The error is "No SOURCES given to target". It points to the CMakeLists.txt in the board directory. Specifically the line says "zephyr_library()". My guess is if can't find the zephyr library? But it was ok under SDK 1.7.1. How to fix it?

    My projet path is: /home/chrisz/work/bbb/ssss/fw9160/

    My board dir is at: /home/chrisz/work/bbb/ssss/fw9160/boards/arm/xxxxx_nrf9160/

    Thansk for any advice!

    ===========================================================

    -- Configuring done
    CMake Error at /home/chrisz/ncs/zephyr/cmake/extensions.cmake:416 (add_library):
      No SOURCES given to target:
      ..__..__work__bbb__ssss__fw9160__boards__arm__xxxxx_nrf9160
    Call Stack (most recent call first):
      /home/chrisz/ncs/zephyr/cmake/extensions.cmake:393 (zephyr_library_named)
      /home/chrisz/work/bbb/ssss/fw9160/boards/arm/xxxxx_nrf9160/CMakeLists.txt:4 (zephyr_library)

    CMake Generate step failed.  Build files cannot be regenerated correctly.
    CMake Error at /home/chrisz/ncs/nrf/cmake/multi_image.cmake:287 (message):
      CMake generation for spm failed, aborting.  Command: 1
    Call Stack (most recent call first):
      /home/chrisz/ncs/nrf/cmake/multi_image.cmake:84 (add_child_image_from_source)
      /home/chrisz/ncs/nrf/samples/CMakeLists.txt:22 (add_child_image)

    -- Configuring incomplete, errors occurred!
    See also "/home/chrisz/work/bbb/ssss/fw9160/build/CMakeFiles/CMakeOutput.log".
    See also "/home/chrisz/work/bbb/ssss/fw9160/build/CMakeFiles/CMakeError.log".
    FATAL ERROR: command exited with status 1: /usr/bin/cmake -DWEST_PYTHON=/usr/bin/python3 -B/home/chrisz/work/bbb/ssss/fw9160/build -S/home/chrisz/work/bbb/ssss/fw9160 -GNinja -DBOARD=xxxxx_nrf9160ns

Related