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 to Digi XBP24 Communication Problem

Other Parts Discussed in Thread: CC2530, CC2531, Z-STACK, CC2530EM, CC2431

I've been thrust into the world of ZigBee for a project I'm doing for my employer.  My goal is to use a Digi XBee Pro Series 2 (XBP24-27WIT-004) module to communicate with a TI CC2530 one.  I have a testbed set up with the CC2530 Development Kit and several of the Digi modules in fixtures that allow me to use them with USB and serial ports on my computer.

I've successfully loaded the ZigBee stack and sample program into the CC2530 development kit and had the CC2530 router talk to the CC2530 coordinator.  I've also flashed the DIgi modules as router and coordinator and have had them talk to each other. I've even had the CC2530 router use the XBP24 as its coordinator.

The problem I'm having is with the one configuration I actually need for my project -- where the XBP24 router uses the CC2530 as its coordinator.  Using the Daintree sniffer with the CC2531 USB dongle, I think that I've isolated the problem, but I'm not sure whether to blame TI or Digi.  There's a slight difference in the ZigBee NWK Beacon packet that the two coordinators emit in response to the XBP24's beacon request packet. 

In the case of the XBP24 coordinator, the key part of the packet looks like this:

XBP24 Coordinator ZigBee NWK packet:
ZigBee NWK Beacon
       Protocol ID: ZigBee NWK (0x00)
       Flags: 0x8422
              .... .... .... 0010 = Stack Profile: 0x02
              .... .... 0010 .... = nwkcProtocolVersion: ZigBee 2006/2007 (0x02)
              .... ..00 .... .... = Reserved: 0x00
              .... .1.. .... .... = Router Capacity: True (1)
              .000 0... .... .... = Device Depth: 0x00
              1... .... .... .... = End Device Capacity: True (1)
       nwkExtendedPANId: 8a:fe:6a:c6:c4:ec:28:e5
       Tx Offset: 0x00ffffff symbols
       nwkUpdateId: 0x00

But in the case of the CC2530 coordinator the same response look like this:

CC2530 Coordinator ZigBee NWK Packet:
ZigBee NWK Beacon
       Protocol ID: ZigBee NWK (0x00)
       Flags: 0x8421
              .... .... .... 0001 = Stack Profile: 0x01
              .... .... 0010 .... = nwkcProtocolVersion: ZigBee 2006/2007 (0x02)
              .... ..00 .... .... = Reserved: 0x00
              .... .1.. .... .... = Router Capacity: True (1)
              .000 0... .... .... = Device Depth: 0x00
              1... .... .... .... = End Device Capacity: True (1)
       nwkExtendedPANId: 00:00:00:00:00:00:00:00
       Tx Offset: 0x00ffffff symbols
       nwkUpdateId: 0x00

I've boldfaced and underlined the difference.  Basically, the TI part is reporting a stack profile of 0x01, whereas the Digi part is reporting a stack profile of 0x02.  The latter seems more correct to me, because, as you can see from the protocol version, it is 0x02, but I really don't know what's correct. 

I'm hoping that someone here with more experience can help me, and perhaps point me to the correct person at TI if it turns out to be something that they need to fix.  I already have a contact at Digi to help me out.

Thanks in advance for any assistance!

 

  • Hello musicfan

    Sounds like you have an interesting project going on.

    From the data you supplied it looks to me like you compiled the wrong project (i.e. a non-PRO while the Digi module uses PRO), but let me give some more detailed info:

    The Stack Profile indicates whether a device is using the ZigBee or the ZigBeePRO stack profile. For more details please have a look at section 2.2 in the C:\Texas Instruments\ZStack-CC2530-2.2.0-1.3.0\Documents\Z-Stack Developer's Guide.pdf .

    The Z-Stack supports both ZigBee and ZigBee PRO. If you open a sample application project (e.g. SampleLight ) you will see different set ups like shown in the screen shot and you would need to use the projects ending on PRO to compile your device as a ZigBee PRO device and to be able to do your communication with the Digi devices.

    The reason why you see the TI device joining the Digi coordinator is that a non-PRO device (router or end device) can join a PRO device as an end device.

    Why the Digi module cannot do that I cannot answer. Maybe there is some code in there application example that you are using that prevents it from joining non PRO networks.

    Hope this helps!

    Good luck!

    /Kite

  • Thank you very, very much, that appears to have solved the problem I was having!

  • I'm trining to do something similar. I started just right now to set-up my hardware (cc2530zdk, cc2520dk and some xbp24 module on usb/serial board) but I can' sniff any packet from XB/XBP24 module (using SmartRF Packet sniffer). Where i'm wrong?

    Thanks for any suggestion!

  • I would try this:

    1) Download and install Digi's X-CTU program if you haven't already.  This may require the use of a computer running MS Windows, if you don't currently have one.

    2) Make sure you can communicate with the XBP24 using X-CTU.  You should be able to use the Test/Query button on the PC Settings tab, then the Read button on the Modem Configuration tab.  If you are using a USB adapter, be sure to install the necessary drivers.

    3) On the Modem Configuration tab, flash the XBP-24 by selecting Modem: XBP24-ZB, Function Set: ZIGBEE ROUTER AT, and version: 2241, then clicking the Write button.

    4) Change some XBP24 parameters, if necessary, as follows:

      ZS - ZigBee Stack Profile, set it to 2 for ZigBee Pro.

     JV - Channel Verification, Set it to 1 - Enabled.

    5) Write the new settings to flash, then turn off the XBP24.

    6) Turn on the CC2530DK module acting as the coordinator, and the packet sniffer.

    7) Turn on the XBP24, restart X-CTU, make sure the Test  / Query button works on the first screen.

    8) You should see the communications between the XBP24 and CC2530DK in the packet sniffer.

    9) Go to the X-CTU Terminal tab and enter some characters and make sure they appear on the sniffer as packets.  You can make it wait longer before sending what you type by adjusting the RO - Packetization Timeout parameter to the maximum value, FF, though even with that setting you have to type pretty quickly, depending on your baud rate.

    If something along the way doesn't work, let me know which step it was, and I'll try to help you further.

     

     

  • Thanks for the very quick reply,

    I have done every step suggested by you but I'm still having problem.

    I have started to work with xbee (both series1 and 2) about 1 year ago and I've used many times XCTU, but i'm new using "ZigBee" from texas instruments. Anyway using the PacketSniffer i can see the packets generated by cc2530em coordinator but no any XBee packet. I have tried to "sniff" XBee packets in many ways, also configuring XBee as coordinator and EndDevice but never works.

    If the XBee join the network it should show the same coordinator's PAN ID (reading settings by XCTU), right? 

    Sorry for my bad English and thanks again for help me!

  • From your description, it seems that the sniifer never sees any packets from the xbee device. If so, it would seem that xbee device is on a different ZigBee channel than the sniffer and the CC2530EM device.

  • What's the part number of the XBee device that you are using from Digi?

  • I'm using XB24-ZB and XBP24-ZB modules with firmware 2041/2064 for coordinator and 2241/2264 for router.

    Now i'm going to check if there is some problem in the ZigBee channel selection

  • Ok, now it seems to work fine! It was the Scan Channels (ATSC) bitmask inthe XBee configuration set to default 0x1FFE  rather than 0xFFFF. 

    Thanks for the help, it was useful!

  • Hi musicfan,

     

       I followed your procedure  you gave on 6th October,2009. I got the Xbee device(router) has joined in the cc2431's network(coord).  Its working very good. congrats & thank you.

        But I could not able to send or receive characters from xbee or cc2431. Could you please send any mail to me. thanks you.

           my email ID: seshuramv@esntechnologies.co.in

     

    regards,

    SeshuramV

     

     

  • Hi musicfan,

       I followed your procedure  you gave on 6th October,2009. I got the Xbee device has joined in the cc2431's network.  Its working very good. congrats & thank you.

        But I could not able to send or receive characters from xbee to cc2431. presently I am using the zstack 143121 for cc2431. Could you please send any mail to me. thanks you.

           my email ID: seshuramv@esntechnologies.co.in

     

    regards,

    SeshuramV

     

     

  • Hi I'm working with Xbee S2 and I followed  the steps posted on Oct 06/2009, I tried working with the cc2530 like the Coordinator and the Xbee like a router and nothing happened. Now I'm working with the Xbee like the Coordinator and the cc2530 as a End Device  (this configuration is what I need), I send some info from the cc2530 to the xbee and the RX led of the Xbee Coordinator programmer (Xbee Explorer) turn on and off every time the xbee gets some info from the TI end device (CC2530) but the xbee doesn't shows anything on the X-CTU terminal. Can anyone help me?

  • Hi emma,

    Check if you enable SECURITY and TC_LINKKEY_JOIN on your CC2530.

  • Has the security  to be enable ( set in 1) and the TC_LINKKEY_JOIN  be defined in the preprocessor symbols?

  • Hi emma,

    Yes, it means you already enable Security with TC_LINKKEY_JOIN. Do you check what zigbee channel do you enable?

  • I'm new on this. I'm using TI ZStack-CC2530-2.3.0-1.4.0 and I'm running the \ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp.eww example to do unicast to the coordinator. 

    When I added TC_LINKKEY_JOIN to the Defined Symbols in the Project -> Options -> C/C ++ Compiler -> Preprocessor and then I Make the project I get an error: Error running C/C ++ compiler. So I don't know if I need to add a file or download something to make it works.

    What do I have to do?

  • TI ZStack-CC2530-2.3.0-1.4.0 is obsolete. I would suggest you to use TI Z-Stack Home 1.2.0 to do the test.

  • Hi I did what you said.I'm trying to run the SampleLight and SampleSwitch from TI Z-Stack Home 1.2.0 but I' getting an error: 

    And that's because of the TC_LINKKEY_JOIN definition. So Do you know what I'm doing wrong?

    I'm working with IAR Embedded Workbench for 8051 Version 8.30.2.

  • I already corrected that problem, it was because of the directory I was running the example (wrong path). Now I'm having another error: 

    :S

  • Z-Stack Home 1.2.0 is built by IAR 8.20. I would suggest you to download IAR 8.20 from http://www.iar.com/Products/Wireless-solutions/Tools-for-TI-wireless/ and build with it.

  • Because of the TI Z-Stack Home 1.2.0 didn't work I kept working with the TI ZStack-CC2530-2.3.0-1.4.0. I added SECURE=1 and TC_LINKKEY_JOIN to the Defined processor symbols (I had to add the path of the libraries that  TC_LINKKEY_JOIN definition needs) but the led of the Xbee Explorer didn't turn on, so I supose the Xbee S2 is not getting any information. What would I have to do?

    This is the file from TI Packet Sniffer that I got from the Xbee and CC2530 communication:

    0218.sniffer_xbeeCoor_CC2530EndDevice.psd

    I got the file with the cc2530 configuration without SECURE=1 and TC_LINKKEY_JOIN ( the led turn on and off)

  • From the sniffer log, I see that your Xbee coordinator doesn't use SECURITY. It is OK that you don't config SECURE=1 and TC_LINKKEY_JOIN on CC2530 end device. And, I see the end device already joins coordinator and doing polling. The end device with short address 0x0857 keeps sending packet with cluster ID 0x0002 and end point 0xFF. The end point 0xFF is illegal in Zigbee. End point only allows from 1 to 240.

  • Thanks again for the reply. I tested the communication between two cc2530 one as a coordinator and the other one like an end device and I captured the packets with the Ti Packet Sniffer and I got this:

    4628.sniffer_cc2530Coor_cc2530End_unicast.psd

    So I cheked what I got and the Dest. End Point still in 0xFF but the Source End Point value is 0x14, that value is what I programmed in the software.

    The communication between cc2530 and Xbee-cc2530 is unicast (from End device to Coordinator).

    The communication between the two cc2530 works fine: the coordinator shows in the serial port the information that the End Device sends, and the Dest. End Point Still in 0xFF. So I don't know if it's necessary to change the Dest. End Point, I'm not sure if it is the real problem.

  • I was cheking all the packets fields (in TI Packet sniffer) and I realized that the APS Dest./Src. EndPoint, APS Cluster ID and APS Profile ID were different in cc2530, so I changed in my cc2530 code those values ( I don't know how to do it in the Xbee S2) and the terminal of the X-CTU prints an 'space' ( see the image - the 'dot' indicades the receiving of a new group of characteres) but I need to see the information.

    The sniffer file from the communication:

    6303.sniffer_xbeeCoor_CC2530EndDevice_unicast_3.psd

    Now what is the problem?

  • Hi emma,


    Actually, I see your CC2530 has joined XBee coordinator and communicate fine. Your problem is very fundamental of Zigbee protocol. You need to put correct cluster ID and endpoint in your application so your end device can communicate with coordinator. I would suggest you to have some study first. The book "Zigbee wireless networking" is a very good start. By the way, XBee is use Ember's solution not TI's. If you need to know how to use X-CTU, you should go somewhere like https://sites.google.com/site/xbeetutorial/home

  • Thank you. You really helped me a lot. I actually have the Xbee as the coordinator and the CC2530 like the End device talking to each other .The problem was the way that I was sending the message: The terminal needs that the message will be sent by the serial port or at least written like it will be sent by serial port.

    Thanks again !!!

  • im doing a project where is have a bunch of cc2530 and i need to connect them to Wi-fi so i got a raspberry pi with a wi-fi adapter but i need to know if i connect a Xbee module to it will it receive data from cc2530 ? if so which model of xbee do u recommend?
  • musicfan has pointed it out in his original post. He uses  Digi XBee Pro Series 2 (XBP24-27WIT-004).

  • Thanks alot my Xbee just came in the mail, i have run into the same problem i have config it correctly (ROUTER AP) i think because it has automatically set my coordinators ID as its own but the range test just comes up blank so i cant tell if its receiving anything . the XBee is connected to by laptop via Sparkfun's Xbee USB.

    "emma castillo -  I actually have the Xbee as the coordinator and the CC2530 like the End device talking to each other .The problem was the way that I was sending the message: The terminal needs that the message will be sent by the serial port or at least written like it will be sent by serial port."

    im not sure what he meant or how he manged to fix it, any help would be great.

    Thanks ,

    David