CC2652P: ZED Switch sample - Failed to join Zigbee network (Interview failed because can not get node descriptor)

Part Number: CC2652P
Other Parts Discussed in Thread: CC1352P, , ,

Tool/software:

Hello

I'm using the Zigbee End Device Switch example to test my custom board which uses E72-2G4M20S1E (C2652P)

My coordinator is Raspberry Pi running Zigbee2Mqtt

The failure is "Interview failed because can not get node descriptor"

I also sniffed the network and see that the following - it looks like the coordinator asks my device for Node Descriptor Request - and after timeout of 1 minute it gives up

I suspect it may a security issue - since I can't view properly the device message on Wireshark

I'm attaching the sniffer file too

Thanks

Haim

11 27.241174 00:12:4b:00:26:d0:f0:d7 0x0000 IEEE 802.15.4 19 Association Request, RFD
12 27.242230 IEEE 802.15.4 3 Ack
13 27.611772 00:12:4b:00:26:d0:f0:d7 0x0000 IEEE 802.15.4 16 Data Request
14 27.612732 IEEE 802.15.4 3 Ack
15 27.614747 00:12:4b:00:2c:3a:31:ea 00:12:4b:00:26:d0:f0:d7 IEEE 802.15.4 25 Association Response, PAN: 0x9a0b Addr: 0x88a6
16 27.615995 IEEE 802.15.4 3 Ack
17 27.618639 0x88a6 0x0000 ZigBee 54 Command, Dst: 0x0000, Src: 0x88a6
18 27.620815 IEEE 802.15.4 3 Ack
19 27.755205 0x88a6 Broadcast ZigBee 55 Data, Dst: Broadcast, Src: 0x88a6
20 27.757413 IEEE 802.15.4 3 Ack
21 27.848985 0x88a6 0x0000 IEEE 802.15.4 10 Data Request
22 27.849753 IEEE 802.15.4 3 Ack
23 28.271559 0x88a6 0x0000 IEEE 802.15.4 10 Data Request
24 28.272326 IEEE 802.15.4 3 Ack
25 28.274974 0x0000 0x88a6 ZigBee 71 Transport Key
26 28.277695 IEEE 802.15.4 3 Ack
27 28.375566 0x88a6 0x0000 IEEE 802.15.4 10 Data Request

28 28.376334 IEEE 802.15.4 3 Ack

29 28.385335 0x0000 0x88a6 ZigBee ZDP 46 Node Descriptor Request, Nwk Addr: 0x88a6
30 28.385000 IEEE 802.15.4 3 Ack
31 28.470070 0x88a6 0x0000 IEEE 802.15.4 10 Data Request

zed_sw.zip



  • Hello Haim,

    Thanks for the sniffer log.  I am not seeing packets typically sent out by a ZED after joining, such as a Device Announce and End Device Timeout Request.  Node Descriptor Request unicasts should definitely expect a response.  Can you confirm that you are using the default LAUNCHXL-CC1352P-2 ZED switch example (or P-4 depending on your output TX power settings)?  What version of https://www.ti.com/tool/download/SIMPLELINK-LOWPOWER-F2-SDK have you installed, and is all device memory erased before reprogramming?  I do not see the TCLK update exchange, have you set requestNewTrustCenterLinkKey to FALSE for your ZED in this case?

    Regards,
    Ryan

  • Thanks Ryan

    Yes, I've created CCS project based on this ZED switch example

    I'm  using simplelink_cc13xx_cc26xx_sdk_8_31_00_11

    I've updated zcl_samplesw.c with my custom board GPIO (buttons and leds) and updated zclSampleSw_processKey() with my buttons instead of the default ones. So I start the Commissioning by pressing a button.

    I've set requestNewTrustCenterLinkKey to FALSE and I looked for the usage of requestNewTrustCenterLinkKey

    I've found that it is in use in bdb_StartCommissioning()  and in bdb_ProcessNodeDescRsp()

    I debugged and see that it never reached these code lines

    On initialization there is a call to  bdb_StartCommissioning(mode=0) , it checks  bdbNodeIsOnANetwork (NV) and it is FALSE

    On the button click there is a call to  bdb_StartCommissioning(mode=DEFAULT_COMISSIONING_MODE) , and since  bdb_initialization is TRUE is skip most of the function code

    I'm attaching my SysCfg header files - maybe it will help

    I can debug furthermore or add logs from zigbee2mqtt if it will help

    Thanks

    Haim

    Syscfg.zip

  • It would be optimal if you could prove that that a default out-of-box CC1352P-2 LaunchPad and code example are able to join the Coordinator without any issues.

    If you aren't using the Common UI then you should be defining CUI_DISABLE and removing BOARD_DISPLAY_USE_UART from Properties -> CCS Build -> Arm Compiler -> Predefined Symbols.

    You can debug ZDO_ProcessNodeDescReq on your ZED to determine whether it's being processed and what prevents Node_Desc_rsp from being sent out.

    Regards,
    Ryan

  • I'm using the example of LP_CC2652PSIP\zstack\zed_sw but I think it should be identical to CC1352P_2_LAUNCHXL\zstack\zed_sw

    I'm working with E72-2G4M20S1E (C2652P) on my custom board - I'm not using the LP-CC2652PSIP board

    About the UI - I only need it for starting the commissioning (triggered by a button), any other suggestion?

    I've tried to debug ZDO_ProcessNodeDescReq  - looks like I don't get it (I've checked at ZDP_IncomingData() - is it the right place?)

    Thanks

    Haim

  • If your target device is the CC2652P then you should be using CC1352P-2 examples (hence the prior E2E post), not the CC2652PSIP as this device selection will make undesired hardware decisions based on the SIP design which is not supported on the actual target device.  This is likely causing some of the issues you are experiencing.

    You can still remove BOARD_DISPLAY_USE_UART and use the existing UI button functionality for your custom board.

    ZDP_IncomingData is the correct location to receive zdpMsgProcs functions.

    Regards,
    Ryan

  • Thanks Ryan, I've created a new project based on CC1352P_2_LAUNCHXL and now it is working properly!