Zigbee coordinator on the thingy91_nrf52840

Hello,

For my project, I want to develop a Zigbee coordinator for the Thingy:91 that receives reports from end devices and it publishes the values to the cloud. I've developed a coordinator using the nRF5340DK, which has a compatible coordinator sample, and now I want to implement that on the nRF52840 of the Thingy:91.

Only enabling CONFIG_ZIGBEE=y gives errors (building for thingy91_nrf52840), I suppose because the hardware files are not configured to have support for Zigbee.

Can anyone tell me which changes should I have to do to be able to use the Zigbee for this board?

Thank you very much.

Parents
  • Hi,

    You need to create an overlay for thingy91_nrf52840 with the following:

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

    Please note that Zigbee is not officially supported on Thingy:91, so you might experience unexpected behavior. I recommend using a nRF52840 DK or nRF5340 DK instead.

    Best regards,
    Marte

  • Thank you for the reply.

    Yes, with that configuration the Zigbee stack runs.

    But I have the following problem: I have Thingy:53 devices with the Weather_Station as end devices, and the Thingy:91 as coordinator. Previously I have developed a coordinator to set the binding for temperature, pressure and humidity clusters to do attribute reporting. I have developed this for the nRF5340 DK and works fine, it receives the reports. But when flashing into the Thingy:91, the coordinator sets the network, sends binding request, the end device sends success response, but the reports are never sent.

    I add two wireshark files, one using the nRF5340DK and other one using the Thingy:91.

    nRF5340DK.pcapngthingy91.pcapng

    Thanks for your help.

Reply
  • Thank you for the reply.

    Yes, with that configuration the Zigbee stack runs.

    But I have the following problem: I have Thingy:53 devices with the Weather_Station as end devices, and the Thingy:91 as coordinator. Previously I have developed a coordinator to set the binding for temperature, pressure and humidity clusters to do attribute reporting. I have developed this for the nRF5340 DK and works fine, it receives the reports. But when flashing into the Thingy:91, the coordinator sets the network, sends binding request, the end device sends success response, but the reports are never sent.

    I add two wireshark files, one using the nRF5340DK and other one using the Thingy:91.

    nRF5340DK.pcapngthingy91.pcapng

    Thanks for your help.

Children
  • Hi,

    The destination address in the Bind Request is incorrect in the Thingy:91 sniffer log.

    From the nRF5340 DK sniffer log:

    From the Thingy:91 sniffer log:

    As you see, the destination address of the Bind Request should be the same as the extended source address of the packet, that is, the coordinator's address in this case. In the Thingy:91 sniffer log, you are still using the extended address of the nRF5340 DK as the destination address for the Bind Request.

    Best regards,
    Marte

  • Hello,

    Yes, that was the issue. Thank you very much!

  • I'm trying to understand the steps required to build the co-ordinator example using sdk v290.

    Can you confirm:

    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

    4. Click Build Configuration Button -> expect failure

    5. Browse to the Device Tree -> thingy91_nrf52840.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.

    This fails for me with:

    FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\b620d30767\opt\bin\cmake.EXE' --build 'd:\ncs\applications\v290\network_coordinator\build_1\mcuboot'

    What am I doing wrong?

Related