OpenThread joiner API is no longer available in OpenThread MTD pre-built library with nRF Connect SDK version 2.6.1

Hi,

I have a project in which I'm using the nRF52840 with OpenThread and the device is configured as an MTD to minimize power usage. I have recently updated my nRF Connect SDK version from 2.4.0 to 2.6.1. A build problem that I ran into is that the OpenThread "joiner" API is no longer available in the pre-built OpenThread library for the MTD. I have worked around the problem by defining "CONFIG_OPENTHREAD_SOURCES=y", but at some point I would like to use a pre-built library to potentially simplify Thread certification.

Is there a reason the joiner API has been removed from the MTD pre-built library?

Is there some way I can use "CONFIG_OPENTHREAD_NORDIC_LIBRARY_MASTER" instead when building an MTD? When I try to use the master library I get the following error:

ninja: error: 'C:/ncs/v2.6.1/nrfxlib/openthread/lib/cortex-m4/hard-float/v1.3/master/libopenthread-mtd.a', needed by 'zephyr/zephyr_pre0.elf', missing and no known rule to make it

Or is there some alternative method I should be using to join the network? Currently I use a push-button press to trigger a call to "otJoinerStart". This is done after starting an "add joiner" process on the Commissioner device.

Shawn

0755.prj.conf

Parents
  • Hi again Shawn,

    Is there a reason the joiner API has been removed from the MTD pre-built library?

    The reason for removing the joiner functionality for MTDs and FTDs is space optimization. See the pull request which introduced the change here.

    Is there some way I can use "CONFIG_OPENTHREAD_NORDIC_LIBRARY_MASTER" instead when building an MTD? When I try to use the master library I get the following error:

    CONFIG_OPENTHREAD_MTD and CONFIG_OPENTHREAD_MTD_SED requires CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD which is why the build ends with an error.

    I have worked around the problem by defining "CONFIG_OPENTHREAD_SOURCES=y", but at some point I would like to use a pre-built library to potentially simplify Thread certification.

    Certification with inheritance should still be possible if you enable the Joiner functionality to a build configuration with CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD=y. See the "Certification by inheritance with modifications to binaries" section from the Thread certification part of the NCS documentation:

    If your solution uses the same version of the OpenThread stack as the one used in the precompiled, certified binaries, but you made modifications within the operating parameters defined by Thread Group, you need to contact Thread Group to check if certification by inheritance is still possible.

    You must officially list all changes with a detailed explanation in your application. Based on this list, Thread Group can accept or reject your application for certification by inheritance.

    Best regards,

    Maria

Reply
  • Hi again Shawn,

    Is there a reason the joiner API has been removed from the MTD pre-built library?

    The reason for removing the joiner functionality for MTDs and FTDs is space optimization. See the pull request which introduced the change here.

    Is there some way I can use "CONFIG_OPENTHREAD_NORDIC_LIBRARY_MASTER" instead when building an MTD? When I try to use the master library I get the following error:

    CONFIG_OPENTHREAD_MTD and CONFIG_OPENTHREAD_MTD_SED requires CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD which is why the build ends with an error.

    I have worked around the problem by defining "CONFIG_OPENTHREAD_SOURCES=y", but at some point I would like to use a pre-built library to potentially simplify Thread certification.

    Certification with inheritance should still be possible if you enable the Joiner functionality to a build configuration with CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD=y. See the "Certification by inheritance with modifications to binaries" section from the Thread certification part of the NCS documentation:

    If your solution uses the same version of the OpenThread stack as the one used in the precompiled, certified binaries, but you made modifications within the operating parameters defined by Thread Group, you need to contact Thread Group to check if certification by inheritance is still possible.

    You must officially list all changes with a detailed explanation in your application. Based on this list, Thread Group can accept or reject your application for certification by inheritance.

    Best regards,

    Maria

Children
Related