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.

CC1352R: TI15.4 Stack - Simultaneous Activation of an LED on Multiple Sensors Without Using Broadcast

Part Number: CC1352R


Hey everyone,

In my application I'm using TI15.4 stack in FH mode, and we have a need to sync activation of outputs on multiple sensors, such as an LED for instance.

Easiest way to accomplish this is via broadcasts, however due to application requirements, we've realized that broadcasts are too power hungry. Since we need a quick activation time, that would requires broadcast interval to be short, and it's just not acceptable in terms of power. Besides, all sensors would be wasting power for turning on reception during the broadcast slots, even when there is no broacast message to be sent, and even on nodes that don't need the synching, wasting unnecessary power.

So our second approach is to use polls, we use short interval polls, only on sensors which have the need for quick activation. The problem with polls is they happen randomly within that interval. Let's imagine a 5s poll interval. My idea is when the collector sends the activation request for all the desired nodes, it also sends a timestamp for when the LED should turn on, and this would always need to be higher than 5s (the poll interval). This way I can guarantee that even in the worst scenario (5s after the request was sent by collector) all the LEDs still turn on simultaneous. 

The problem now is having a network synched clock. I don't want to implement a new one, since that will require frequent synchronization messages from the collector, to correct the drift on the nodes, wasting more power. I noticed in the documentation that the ACKs from the collector contain UTT-IE elements, for the nodes to manage their unicast communication schedule with the collector, to know which channel the collector is in at any given moment. 

Am I correct in assuming this UTT-IE information could be used for this application? I know it's not the purpose of those elements, those are used for internal network events, but if a timing information or some sort of network clock is available there, which is relatively well synched across all network devices, then I think there should be a way to tap into that information and use it as a output synching mechanism as well. In practicality, I just need a time variable that is the same at any moment, on the entire network. Or is there another way I'm missing? Is there some sort of network clock/timing info somewhere else that could be used for this?

  • Anyone can help me?

  • Hi JD,

    I am sorry for the lack of response! The requirement is fairly clear, I will check if something can be done and if one of the stack level messages that you mentioned can be tapped into. 

    Regards,
    Sid

  • Hi JD, 

    This UTT-IE seems to be present in more than just the ack frame. It is defined in the Wi-SUN specification if you need more details regarding the UTT-IE itself. 

    But this information and the calculation of the tx slot for unicast transmission is deep in the mac layer and there is no variable or signal we have that can be used to expose the information.

    Unfortunately, broadcast seems to be the only application level approach. 

    Regards,

    Sid

  • Have you looked into async frame transmission?

    This is transmitted on all channels and thus received by the sensors irrespective of their hopping pattern. 

    Here is a snippet from the users guide. 

    dev.ti.com/.../frequency-hopping-mode.html

    Regards,

    Sid

  • Hey Sid, 

    Thank you for the answer and suggestion. That's very unfortunate.

    I haven't considered the async transmissions because it is my understanding that those are only used for PA, PAS, PC and PCS. Besides they can take a few seconds to transmit and I assume that sending them from the collector to a sleepy sensor while they are in normal operation, might take even more time. But I haven't tried it.

    Broadcasts would only be feasible if power consumption was way lower than it is. Maybe if:

    - Broadcast interval could be changed quickly instead of being a static value. This way I could increase or decrease the rate of broadcasts when needed to save power. But I read somewhere that changing the interval rate might take a while.

    - And also if it was possible to disable broadcast reception only on some desired nodes. Some nodes will never need to receive broadcasts, so it would be great if it was possible to disable it internally on those sensors, so they would not waste power waking up during broadcast slots. But I haven't figured a way to do this.

    Do you have any insight on these options?

    Thanks

    JD

  • Hi JD,

    There are a couple of things you could try. But it is something untested on our end.

    The relevant documentation sections for you are "Parameters Controlling the Broadcast Channel-Hopping Sequence" and "Changing Broadcast Sequence Values in the Middle of Network Operation" in the User's guide. 

    dev.ti.com/.../frequency-hopping-mode.html

    If you do not set the ApiMac_FHAttribute_trackParentEUIattribute in the wsAsyncIndCb(). The sensor may continue to have the broadcast schedule it was initiated with instead of getting the broadcast schedule of the coordinator. 

    Also, if you set the ApiMac_FHAttribute_broadcastDwellInterval to 0. This will disable broadcast transmission.

    You could try these two things to see if the sensor indeed sleeps through the broadcast schedule.

    Broadcast interval could be changed quickly instead of being a static value. This way I could increase or decrease the rate of broadcasts when needed to save power. But I read somewhere that changing the interval rate might take a while.

    This is indeed mentioned in the user guide.

    In this case, it seems like you need to send more PAN configs to get more responsive change to the broadcast interval. But this means you need to receive this config frame on the sensor anyway. 

    Regards,

    Sid

  • How to do that? What is needed to do on the sensor so that it works?

  • I am closing this thread as a colleague is working on this and supporting you here. 

    e2e.ti.com/.../launchxl-cc1352r1-changing-broadcast-intervar-during-operation-time-in-fh-mode