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.

how to make end device always does broadcast without waiting for any response

Part Number: CC2652P

I am disabling poll by doing "writeReq.has_disablePollRate = true" and "writeReq.disablePollRate = true", 20 seconds after bootup. Its seems to be doing the job. However, sometimes the device is polling, which i have verified using a sniffer and I observed data requests after broadcast. 
I dont have access to the source code and I am finding it difficult to analyse. I could see a bunch of conditions in nwk_data_req_send and my guess is "nwk_SetCurrentPollRateType(POLL_RATE_TYPE_RESPONSE, TRUE)" is happening. 
Can anyone help me with this. I want to know what could be happening and how can i fix this or any kind of tests that i can run for RCA.
Thank you

  • Hi Abhinaba,

    Can you please confirm that you are using Zstackapi_sysConfigWriteReq as demonstrated in the Z-Stack User's Guide?  Although any End Device should be polling its parent occasionally to not be aged out of the Zigbee network.  Your guess is correct in that "nwk_SetCurrentPollRateType(POLL_RATE_TYPE_RESPONSE, TRUE)" is taking place.

      if ( ret == ZMacSuccess )
      {
        if ( ZSTACK_END_DEVICE_BUILD )
        {
          if ( ZG_DEVICE_ENDDEVICE_TYPE && zgRxAlwaysOn == FALSE )
          {
            nwk_SetCurrentPollRateType(POLL_RATE_TYPE_RESPONSE, TRUE);
          }
        }
      }

    You can try temporarily changing zgRxAlwaysOn or immediately setting POLL_RATE_TYPE_RESPONSE back to FALSE in your application to determine whether this changes the behavior.

    Regards,
    Ryan

  • Hi Ryan,
    yes, i used Zstackapi_sysConfigWriteReq to disable the polling.
    I'm disabling the poll and doing a manual poll whenever needed. I noticed the issue when i was measuring the current consumption continuously.  I noticed this was happening only after a long period of inactivity, when I broadcasted.
    The battery consumption spikes up when broadcasted then settles back , but after a long time of inactivity when i broadcasted, the consumption settled at a much higher value, and had to power to get back to the idle power consumption.

  • I am familiar with similar behavior that occurs when there are long periods of time between any radio activity, data polling or otherwise.  The threshold was measured at greater than 9 minutes of inactivity and has not been addressed or resolved in the SDK as far as I am aware.  I recommend that you set a timer in your application which send a data poll at a frequency of less than 9 minutes in order avoid the high power consumption.

    Regards,
    Ryan

  • Thanks for the help Ryan.
    Correct me if I'm wrong, whenever any send happens, the poll rate is set to response type. But, it does not take poll, because I'm setting the poll rate to disabled right at boot up, and the check for disabled happens prior to others. But after long period of inactivity somewhere the Rx is turning on. Right?
    Do you have any idea where this could be happening ?

  • Correct me if I'm wrong, whenever any send happens, the poll rate is set to response type.

    As I alluded to earlier, any nwk_data_req_send will result in nwk_SetCurrentPollRateType(POLL_RATE_TYPE_RESPONSE, TRUE); for a sleepy ZED.

    But after long period of inactivity somewhere the Rx is turning on. Right?

    That is similar behavior to the bug I explained in my most recent response.

    Do you have any idea where this could be happening ?

    The TI R&D Teams do not have the resources to identify and resolve the root cause, thus polling at least every <9 minutes is advised as a workaround.

    Regards,
    Ryan