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.

ez430-rf2480 help

Other Parts Discussed in Thread: CC2430, Z-STACK

Hello , i'm working with ez430-rf2480 evaluation kit and programming ZASA sample aplication with IAR Embedded Workbench and i need your help, please.

 

I must find where in the code the cordinator calculates and sets the short address of devices that joined the network. I know that there is a formula to calculate the short address of the devices in agreement to a ZigBee protocol, but i can't find it in the code.

 

I'm doing that because i have a large network and the coordinator needs to know the position of a device (acting like a sensor) that reports something.

I'm thinking in use its short adress to know where it is in the network, is there an easier way of doing it?

 

Thanks a lot!

 

 

  • Hi Felipe,

     

    I am an student and i have recently started my Master Thesis on ZigBee. By now i am just reading and trying to understand how does it work. Like you, im also using the ez430-rf2480 evaluation kit.

    About ur doubt: have u thought about using the 64 bit IEEE address? You can use the zb_FindDeviceRequest SAPI function to get the short address of a device (knowing its IEEE address). To know its IEEE address u can use the function zb_get_device_info.

  • Hi Gonzalo,

    Thanks for your help!

    I'm thinking that the assignment of the short address of devices is done by the CC2480 wich i'm not supposed to program.

    Maybe i can do something with the 64 bit-address.

    I'll keep trying discovering a way of reference the position of a node.

     

    Thanks again

  • Hi,

    Since the CC2480 supports the Zigbee 2006 stack, it uses the well known Cskip algorithm for address assignment. The stack profile is fixed at 20-6-5
    and cannot be manipulated by the user.

    You may like to view this community thread which talks about the source code for the 2480 pc app

     

     

    https://community.ti.com/forums/t/158.aspx> (they talk about the source code for eZ430-RF2500, and we posted the

    They talk about the source code for eZ430-RF2480 pc app, as it is the only open source version
    available.

    The Demo was developed using an open source version of QT (hence the
    GPL v2 license agreement) and Visual Studio 2005. Note that it should
    not be all that difficult to use MS Visual Studio Express instead of
    the full VS version to compile QT and the PC Demo).

     

     

    Look in the function getCskipParam().

  • Thank's "Z"!

    I looked that community and their work is very intersting. Right now i'm not thinking in a pc application, but later i'll have to do something.

    My problem now is to think a way to enlarge my network since i can't change the stack profile values of 20-6-5.

    Any help would be appreciated.

    Thank you!

  • Hey "Z"!

    Maybe the address implementation could be easy if i just understand how the short address is calculated for the devices.

    I taked a look in the Cskip algorithm, so here is my idea:

    When the coordinators receives a data from a node it gets the node address and function (router or end-device) by looking at zaccelMsgBuf, so with the Cskip algorithm it calculates how depth is the node in the network.

    It is like the Sensor Monitor displays the nodes positions, i think.

    With the correctly position, the coordinator will transmit the information by serial in its I/O pins to another hardware.

     

    I'm in the right way, or is there an easier way to do it?

    Thank's

     

  • Hi Felipe,

    Im taking a look to the code and i dont get to understand what exactly the variable zaccelMsgBuf stand for.

    Would you be so kind to explain to me the pourpose of this variable? ( I know it must be simple since most of the functions in sapi.c (and some in zaccel.c and mt.c) use it but i dont get to understand...)

    Thanks a lot.

  • Hi!

    I'm still learnig the code.

    To the best of my knowledge the zaccelMsgBuf is a vector with size of 128.

    This vector is used so often in the code (as you can see), but i use it to see and get the bytes received from devices.

    I still don't know exactly what are the others pourpose for this variable.

    I hope i could help you.

    If you need any help fell free to ask.

  • Thanks a lot, that information is enough for me since im still starting to learn about the code.

  • Hi Felipe,

    You're absolutely correct. This is how the sensor monitor draws the diagram.
    Actually 20-6-5 is not so bad unless you plan on doing a "daisy chaining" application?
    20-6-5 can actually cover quite a large physical area (tens of thousands of sqft) before depth becomes a problem.

  • Hello "Z"!

    I'm planning to redeuce my network so i will not have a problem with the 20-6-5.

    Thank's!

  • Hi,

    What is the network size for your application?

    20, 6, 5

    Gives:

    Depth 0: 5181

    Depth 1: 861

    Depth 2: 141

    Depth 3:21

    Depth 4: 1

    Depth 5: 0

     

  • Hello!

    The size of my network actually is:

    Depth 0: about 3

    Depth 1: about 3

    Depth 2: about 9

    Depth 3: about 3

    Depth4: i dont think i'll use it.

    ...

    When i saw the 20,6,5 i thought that the max numbers of nodes were 20 in all network.

    Thanks for clarifying it!

  • Does anyone knows if i can get access to the code of Sensor Monitor?

    I would like to see how it get the address and calculates the position of the nodes in the network.

    Thank's

  • Hi Felipe

    The SensorMonitor source code is available from this URL:

    http://focus.ti.com/docs/toolsw/folders/print/ez430-rf2480.html

    Please see the section Suppport Software

  •  

    Hi Jomar,

    Im also looking for the sensor monitor source code but i cant find it in that URL. In the section support software u just can download the installantion program or the ZASA source code.

    Thanks

  • It worked for me (using Internet Exploerer 6.0). Did you get any error messages when clicking on the 'zip' link ?

    Otherwise you can try this URL directly: http://www.ti.com/litv/zip/swrc096c

  • Jomar, i have the programm. I just want the see the code that it uses to calculate the positions of the nodes through the short address.

    Does anyone know if the Sensor monitor has a open source code?

     

    Thanks

     

  • Hi, LPRF Rocks,

    Unfortunately, i dont use ez430-rf2480 for my development of wireless mesh network, i use cc2430.

    Now, i also want to build a PC Sensor Mornitor to illustrate the whole topology, positions and sensing values of all nodes.

    With the help of other kindly users, i decide to discover the network topology from the short address, dose it work? Or is there anyother simpler way to achieve it?

    And i also want to know, can i use the same part of the source code of ez430-rf2480 to discover the network topology from the short address?

    Btw, i use the z-stack 1.4.2 (zigbee 2006) as the protocol stack.

    Thanks for your help!

  • Thanks for the post[&]

  • Hi i have a simple question.

    Does the eZ430-RF2480 ZASA have some kind of information like the CC2480 about the code and the variables used in it explaining the values and whatever ?

    This will really help me A LOT.

    Thanks

  • FelipeLazzari said:

    Does the eZ430-RF2480 ZASA have some kind of information like the CC2480 about the code and the variables used in it explaining the values and whatever ?

    The documentation I am aware of is provided as part of the eZ430-RF2480 ZASA Installation and is called the eZ430-RF2480 Demo Kit User's Guide.pdf.  It does a little information about the flow of the software example, but not a thorough, detailed description of the various variables, etc.

  • Does the TI have an module zigbee like the ez430-rf2480 but with the range of 1 mile or above?

    Thanks again.

  • Hello LRPF,

    You ahve been of great help in this forum.

    I'm using the ez430-rf2480 in a project relating to electric vehicles.

    I want to communicate the state of charge(SOC ) of battery of the vehicle to a central controller who receives it and runs an algorithm to allocate the required power to the car.

    Im simulating the entire project using two computers. One as car and other as controller. i have attached a zigbee node to each of the computer to allow for UART based communication of data. The SOC value for the car is read from a file int eh first computer and sent to the next computer over zigbee which is the controller who again receives it thru uart to run the algo.

    I currently have one zigbee node(FFD) that is the car which sends the SOC value read from the computer through the UART to the controller (NC) another zigbee node. The controller reads the data received from the UART to run the algorithm.

    I know that the NC sends back an ACK to the source about the reception of data. But my requirement is that it should send more than ACK. I want the controller to send back some data back to the car. In effect I want the NC also to be the source and send data back to the FFD.

    Is it possible? I already made the necessary code changes to send data back to the car as follows:

    This section of code is from the sapiRsp function in zaccel.c file

     case MT_SAPI_RCV_DATA_IND:
        if (!(zaccelEvtFlags & ZACCEL_RCV_DATA_IND))  // Currently limited by 1 incoming data buffer.
        {
          event = ZACCEL_RCV_DATA_IND;

          pBuf += MT_RPC_POS_DAT0;
          zaccelDataSrc = *pBuf++;
          zaccelDataSrc += (uint16)(*pBuf++) << 8;
          zaccelDataCmd = *pBuf++;
          zaccelDataCmd += (uint16)(*pBuf++) << 8;
          zaccelDataLen = *pBuf++;
          zaccelDataLen += (uint16)(*pBuf++) << 8;
          zb_ReceiveDataIndication(zaccelDataSrc, zaccelDataCmd, zaccelDataLen, pBuf);     
          /* Added By Kaushik */
          if(configureNCFlag)
          {
              zb_SendDataRequest (zaccelDataSrc, 4, zappMsgHandle++,
                            1, AF_DEFAULT_RADIUS, 3, piggyData);
          }    

        }

     

    where zaccelDataSrc gives the address of the node from which the NC received the data. So Im using the same address to send back data. piggyData is a uint8 array of size 3 containing {5,5,5}. i want the car which sent the state of charge to recieve this data of 5,5,5. the configureNCFlag is a flag to indicate that indicates if a device is a network corordiantor. If it is a NC then only it sends data as soon as it receives

     

    This is pictorially what i want

    Zigbee node(FFD) at car : using zbSendDataRequest ---------------------> ZigBee node(NC) at the controller : receives using zb_ReceiveDataIndication

                                                                                                                                       |

                                                                                                                                       |

                                                                                                                                       |

                                                                                                car <----------------------- using zb_SendDataRequest sends back 5,5,5

     

    Could you let me know what events and flags need to be set in order to make this work. Currently the code compiles without any error and i guess the controlelr successfully also sends the 5,5,5. But the FFd or car is not yet configured to receive it. Please help