How to use nrf9160 as nrf52840 to connect to a OpenThread network

nRF Connect SDK 2.2.0 on Windows 10 pro, I have a nrf52840-DK and a nrf9160-DK. I would like to test a simple OpenThread CLI application

I have the following prj.conf

CONFIG_LOG=y
# Network shell
CONFIG_SHELL=y
CONFIG_OPENTHREAD_SHELL=y
CONFIG_SHELL_ARGC_MAX=26
CONFIG_SHELL_CMD_BUFF_SIZE=416

# Enable OpenThread features set
CONFIG_OPENTHREAD_NORDIC_LIBRARY_MASTER=y
CONFIG_NET_L2_OPENTHREAD=y

# Generic networking options
CONFIG_NETWORKING=y
# Network parameters
# is this necessary
CONFIG_OPENTHREAD_MANUAL_START=n
CONFIG_OPENTHREAD_NETWORK_NAME="TIRIWA110"
CONFIG_OPENTHREAD_PANID=12345
CONFIG_OPENTHREAD_XPANID="fb:02:00:00:ab:cd:00:00"
CONFIG_OPENTHREAD_NETWORKKEY="00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff"

#other settings
CONFIG_ASSERT=y
CONFIG_ASSERT_NO_COND_INFO=y
CONFIG_MBEDTLS_SHA1_C=n
CONFIG_FPU=y

and the code is simple:

#include <zephyr/kernel.h>
#include <zephyr/kernel_version.h>
#include <zephyr/logging/log.h>
#include <zephyr/shell/shell.h>

LOG_MODULE_REGISTER(thread, LOG_LEVEL_DBG);

#define SLEEP_DURATION_MS 10000

void cmdHelp() {
	LOG_INF("board: %s", CONFIG_BOARD);
}
SHELL_CMD_REGISTER(help, NULL, "Show kernel version", cmdHelp);

void main(void)
{
	uint32_t version = sys_kernel_version_get();
	LOG_INF("Open Thread on %u.%u.%u\n", SYS_KERNEL_VER_MAJOR(version), SYS_KERNEL_VER_MINOR(version), SYS_KERNEL_VER_PATCHLEVEL(version));
	while (1)
	{
		k_msleep(SLEEP_DURATION_MS);
	}
}

for the nrf52840-dk, it works as expected. I can use "ot state" to show the role of the device. However, by copying the same configurations and code, I can not get nrf9160_52840 to work. I toggled the switch on the board to change from nRF91 to nRF52. Then I created a new application, copied the `prj.conf` and `main.c` to the new application, and added a build `nRF9160 DK NRF52840`. I also added an overlay

The content of the overlay is:

/ {
    chosen {
      zephyr,entropy = &rng;
    };
};

After `Pristine Build` and `Erase and Flash`. I can see the info is printed correctly but the Open Thread shell does not respond to any input.

When I connected to another COM port, I can see the following message:

Any suggestions to use nrf9160 as NRF52840 in an OpenThread network? Cheers

Parents
  • Hi,

     

    The intended use for the nRF52840 on the nRF9160-DK is as a board controller, ie. that the nRF52840 acts as a control-switch for features, like the external flash, LED's and buttons, etc.

    In this case, the nRF52840 seems to run the OT CLI sample as intended, but the nRF9160 does not run properly as seen from the CEREG returned values:

     

    This indicates that you are not able to successfully attach to the network with a ESM / EMM cause code of 15:

    Cause #15 – No suitable cells in tracking area

     

    Are you certain that the SIM you're using is able to roam to your local network provider?

     

    Kind regards,

    Håkon

Reply
  • Hi,

     

    The intended use for the nRF52840 on the nRF9160-DK is as a board controller, ie. that the nRF52840 acts as a control-switch for features, like the external flash, LED's and buttons, etc.

    In this case, the nRF52840 seems to run the OT CLI sample as intended, but the nRF9160 does not run properly as seen from the CEREG returned values:

     

    This indicates that you are not able to successfully attach to the network with a ESM / EMM cause code of 15:

    Cause #15 – No suitable cells in tracking area

     

    Are you certain that the SIM you're using is able to roam to your local network provider?

     

    Kind regards,

    Håkon

Children
No Data
Related