This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2530 - Zigbee examples without binding

Other Parts Discussed in Thread: Z-STACK

Are there any example projects using z-stack that form a zigbee network and transfer data without binding?

BR

Srikanth

  • No, there's no such example. If you don't do binding, sender doesn't know receiver's short address.
  • Hi,

    In case of sample applications, SW2 is pressed on both coordinator and end device to do hand binding (or SW4 for MatchDescReq). Why should the binding request be mutual? 

    I want to implement a case where a new end device wants to join a existing zigbee network and sends a bind request message. In which case, the bind request will be sent only by end device and not the coordinator. How can my coordinator read the message and add the end device to the network?

    BR

    Srikanth

  • What do mean "why should the binding request be mutual? I also don't understand your following questions well. Zigbee device joins to coordinator is nothing to do with binging. Can you elaborate what you want?
  • Hi,

    1. In your replies you have mentioned that "If you don't do binding, sender doesn't know receiver's short address" and "Zigbee device joins to coordinator is nothing to do with binging". But if a device joins to coordinator won't the short address be automatically allocated without the need of binding?

    2. In SWRA201 sec "1.4 Device Binding & Discovery" it is mentioned "In order to make two matching sample applications talk over-the-air, there must be a SW2 press on both of them within a short amount of time as well as a Coordinator device present in the network;". Here pressing SW2 on coordinator and end device will call below code:

    dstAddr.addrMode = Addr16Bit;
    dstAddr.addr.shortAddr = 0x0000;
    ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(),
    GenericApp_epDesc.endPoint,
    GENERICAPP_PROFID,
    GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
    GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
    FALSE );
    As you can see in above code, both the devices are initiating binding requests. why?

    3. If a new device would like to join existing zigbee network as End Device and executes below code how should the coordinator respond to the request?

    dstAddr.addrMode = Addr16Bit;
    dstAddr.addr.shortAddr = 0x0000;
    ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(),
    GenericApp_epDesc.endPoint,
    GENERICAPP_PROFID,
    GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
    GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
    FALSE );

    BR
    Srikanth
  • 1. Yes, short address is assigned when device joins Zigbee network.
    2. &3. This is the fundamental of Zigbee end device binding. Two devices send end device binding requests and coordinator help to coordinate the binding.
  • In a laboratory setup it is possible to do discovery & binding by pressing SW2 (or SW4) on both the boards simultaneously. But, in real time scenario how is it done automatically. Are there any example projects?

    BR

    Srikanth

  • We usually at least have a button on Zigbee device for end device bind. If you cannot have this button, you can try to use ZDP_BindReq to send binding request from coordinator.
  • Hi,

    Please clarify below items:
    1. Initially when a zigbee network is formed (before running any binding or match desc requests) each device will have information only about its short address? After binding or Matchdesc reqests, each device will also have info. on IEEE & short address of the device it is bound to?

    2. Inside a zigbee network is it possible to address remote device with its IEEE address? if not why?


    BR
    Srikanth

  • 1. When a device joins Zigbee network, it will broadcast end node announcement which will contain short and IEEE address of the joined device. You can use its short address to request active end point and simple descriptor of the device. Later, you can do binding accordingly.

    2. Yes, you can do this.

  • with regard to point 2, AF_DataRequest requires destination address only as per "The address mode in this structure must be either: afAddrNotPresent to let the reflector (source binding) figure out the destination address; afAddrGroup to send to a group; afAddrBroadcast to send a broadcast message; or afAddr16Bit to send directly (unicast) to a node." There is no mention of 64 bit address. Is it omitted by mistake?

    BR
    Srikanth
  • I had tried 64 bit address in AF_DataRequest so it should work. You can try to verify it.
  • I tried it once with no luck. Let me check it again.

    Also, what are the call back functions for detecting:
    1. network formation
    2. Addition/Deletion of new node in network

    BR
    Srikanth
  • 1. ZDO_NetworkFormationConfirmCB in ZDApp.c
    2. Device add can be notified with Device_annce registered. As for delete of a node, it is difficult to know.