Thingy91x ZigBee Implementation

I need to understand the basics of creating a ZigBee application from the examples provided for both the Thingy91 (nrf52840) and the Thingy91x (nrf5340).
As I understand it, both devices support ZigBee and the "Shell" example builds for each respective development kit, but I do not understand the steps to migrate the examples to each of the Thingy91 devices.

I have seen the question at:
Zigbee coordinator on the thingy91_nrf52840 - Nordic Q&A - Nordic DevZone - Nordic DevZone

And I raised a question there, but I would like to understand the procedure to get this working - in the event that I have custom boards.

1. Create new application -> Copy from Sample

2. Select the "ZigBee Network Coordinator" sample

3. Add build configuration. Select Board Target -> Nordic Kits -> thingy91/nrf52840 || thingy91x/nrf5340 ns

4. Click Build Configuration Button -> expect failure

5. Create a new Device Tree Overlay and paste the text:

/ {
chosen {
ncs,zigbee-timer = &timer2;
zephyr,ieee802154 = &ieee802154;
};
};

&timer2 {
status = "okay";
};

&ieee802154 {
status = "okay";
};

6. Go to Actions -> Build and rebuild.

Can you please explain the step I am missing, as this build fails

Parents
  • Hi,

    I see from the other ticket that you are using nRF Connect SDK v2.9.0. From v2.8.0, Zigbee is available as an add-on to the SDK and is only officially supported on the nRF54L Series. You will need to install the add-on as described in the Zigbee add-on documentation: https://nrfconnect.github.io/ncs-zigbee/setup.html. Additionally, it might not work out of the box on other devices than the nRF54L Series.

    Best regards,
    Marte

  • Hi Marte,

    Many thanks for your response.

    Unfortunately, this wasn't the answer I was hoping for, the link you suggested instructs me to download the 0.3.1 version of the SDK and Addon. This then only provides examples for the nRF54L.

    If however, I install the ZigBee addon over my v2.9.0 SDK all of the nRF52840DK examples are supported.

    I have since created a ZigBee Shell project targeted at the Thingy91 52840 and this builds and runs. This was done by adding the prj_usb.conf and creating an overlay containing

    / {
    chosen {
    ncs,zigbee-timer = &timer2;
    zephyr,ieee802154 = &ieee802154;
    };
    };

    &timer2 {
    status = "okay";
    };

    &ieee802154 {
    status = "okay";
    };

    What I am asking for is a better understanding of the philosophy behind this.

    Should I create a application with the build configuration targeted to a supported device (e.g. nRF52840DK) and then apply overlays for the Thingy Device, or should I set the build configuration to the Thingy Device and then continue to apply the changes to get this to work?

    I know that the ZigBee applications will run on the Thingy91 52840, I presume that they will work on the Thingy91x nRF5340, what I don't know is the best steps to get these to work in a repeatable manner.

    This is important to me as it sets the framework for any Custom Devices I intend on creating.

    Many Thanks

    Richard

Reply
  • Hi Marte,

    Many thanks for your response.

    Unfortunately, this wasn't the answer I was hoping for, the link you suggested instructs me to download the 0.3.1 version of the SDK and Addon. This then only provides examples for the nRF54L.

    If however, I install the ZigBee addon over my v2.9.0 SDK all of the nRF52840DK examples are supported.

    I have since created a ZigBee Shell project targeted at the Thingy91 52840 and this builds and runs. This was done by adding the prj_usb.conf and creating an overlay containing

    / {
    chosen {
    ncs,zigbee-timer = &timer2;
    zephyr,ieee802154 = &ieee802154;
    };
    };

    &timer2 {
    status = "okay";
    };

    &ieee802154 {
    status = "okay";
    };

    What I am asking for is a better understanding of the philosophy behind this.

    Should I create a application with the build configuration targeted to a supported device (e.g. nRF52840DK) and then apply overlays for the Thingy Device, or should I set the build configuration to the Thingy Device and then continue to apply the changes to get this to work?

    I know that the ZigBee applications will run on the Thingy91 52840, I presume that they will work on the Thingy91x nRF5340, what I don't know is the best steps to get these to work in a repeatable manner.

    This is important to me as it sets the framework for any Custom Devices I intend on creating.

    Many Thanks

    Richard

Children
  • Hi Richard,

    You should make a build configuration targeted for the device you are using, i.e., thingy91/nrf52840. The steps should be

    The steps for the nRF5340 on the Thingy:91 X should be similar to the steps for the nRF52840 on the Thingy:91. Make sure to build for thingy91x/nrf5340/cpuapp and create overlays for this board target.

    Please note that even though you can get Zigbee to work on the nRF52840 and nRF5340 in SDK v2.9.0, it is not officially supported. This means that we are not testing the samples with these devices and cannot guarantee they will work.

    Best regards,
    Marte

Related