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.

CC2538: End device announce, RSSI capture

Part Number: CC2538
Other Parts Discussed in Thread: CC2530, Z-STACK

Hi,

I read this thread:

CC2530: Zigbee Broadcast msg for RSSI Location (AF_SKIP_ROUTING)

e2e.ti.com/.../cc2530-zigbee-broadcast-msg-for-rssi-location-af_skip_routing

I understand the problem. The end device is always routing via its parent and hence a broadcast is actually a relayed broadcast. However, mention was made of ZDP_DeviceAnnce. In fact, this works, I tested with 1 coordinator and 2 routers, an end device announce is received by both routers. So my question is, how do you extract the LQI & RSSI of this announce ? It seems that the structures for zdoIncoming message doesn't have these, but afIncomingMSGPacket_t does ?   I am using ZStack 3.0.2 and GenericApp to test. Are these values captured by the stack in this instance ? If they are, how do you extract them ?

typedef struct
{
  osal_event_hdr_t hdr;
  zAddrType_t      srcAddr;
  uint8            wasBroadcast;
  cId_t            clusterID;
  uint8            SecurityUse;
  uint8            TransSeq;
  uint8            asduLen;
  uint16           macDestAddr;
  uint8            *asdu;
  uint16           macSrcAddr;
} zdoIncomingMsg_t;



typedef struct
{
  osal_event_hdr_t hdr;     /* OSAL Message header */
  uint16 groupId;           /* Message's group ID - 0 if not set */
  uint16 clusterId;         /* Message's cluster ID */
  afAddrType_t srcAddr;     /* Source Address, if endpoint is STUBAPS_INTER_PAN_EP,
                               it's an InterPAN message */
  uint16 macDestAddr;       /* MAC header destination short address */
  uint8 endPoint;           /* destination endpoint */
  uint8 wasBroadcast;       /* TRUE if network destination was a broadcast address */
  uint8 LinkQuality;        /* The link quality of the received data frame */
  uint8 correlation;        /* The raw correlation value of the received data frame */
  int8  rssi;               /* The received RF power in units dBm */
  uint8 SecurityUse;        /* deprecated */
  uint32 timestamp;         /* receipt timestamp from MAC */
  uint8 nwkSeqNum;          /* network header frame sequence number */
  afMSGCommandFormat_t cmd; /* Application Data */
  uint16 macSrcAddr;        /* MAC header source short address */
  uint8 radius;
} afIncomingMSGPacket_t;

Regards,
Ian

  • Hi Ian,

    The Zigbee Device Object (ZDO) layer lies separate from the Application Framework (AF) layer in Z-Stack and does not report RSSI.  You can broadcast AF_DataRequest message if you would like to record/monitor RSSI values.  I provided ZDP_DeviceAnnce as an example of broadcast messages in the previous E2E thread but did not intend for it to be used for RSSI measurements.

    Regards,
    Ryan

  • Ryan,

    Many thanks for your reply.

    My understanding, from this was that the RSSI reported, when using broadcast was that it reported the RSSI through its parent only.  In other words if you had ZC ->ZR1 - ZR2 - ZR3, and ZED was a child of ZR3, then a ZED broadcast would actually be from ZED to ZR3 (with RSSI for that link).  However, the broadcast would be relayed ZR3-ZR2 (with the RSSI for that link) . That is not of interest, I am interested in the RSSI ZED-ZR3, ZED-ZR2, ZED-ZR1 if they are in radio range.

    CC2530: Zigbee Broadcast msg for RSSI Location (AF_SKIP_ROUTING)

    Having read another post, it appears that the TheDarkSide is saying that in a AF_DataRequest from ZR3, that the RSSI reported in each router is actually ZED-ZR3, ZED-ZR2, ZED-ZR1 (provided that they are in radio range)

    Increase the Radio range according to RSSI

    https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread/f/zigbee-thread-forum/341305/increase-the-radio-range-according-to-rssi

    There appears to be contradictory messages here. Can you please clarify, which way it works ?

    Regards,

    Ian

  • The RSSI reported is for a single hop, as it is the received RF power of the packet.  If ZR2/ZR1 received the broadcast message directly from the ZED then the RSSI reported would be for the ZED, but if re-broadcast from the ZR3 parent then it would be the RSSI value between routers.  The issue is that the AF Data Request packet will only be processed once by ZR2/ZR1, either from the ZED directly or ZR3 hop, and you will not be sure which is received first.  Therefore you must try using unicast with AF_SKIP_ROUTING and see whether the ZR2/ZR1 routers can directly receive messages from the ZED.  I have not personally attempted this, please let me know the results of this configuration.

    Regards,
    Ryan

  • Ryan,

    I tested this configuration with my demo kit. I can confirm that an AF_DataRequest broadcast is only received by the parent and not the other routers that are in radio range. When I tested the lower levels of the stack, the other routers do actually receive it but it is then dropped if it is not a parent, so if you dig deeper into the stack, you can find it if you really want it.

    Regards,

    Ian

  • ZR could receive from other ZR relayed broadcast msg.  it may be possible to get rssi of ZED-ZR3, ZED-ZR2, ZED_ZR1 from neighbor table.

    Regards,

    David