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.

CCS/CC1310: FH: Understanding and optimizing join behavior sensor/collector

Part Number: CC1310

Tool/software: Code Composer Studio

Hey guys,

this question is somehow related to: https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz/f/156/t/965776

The setup:

We use FH and have about 60 channels enabled and we do not use long range mode. We have one collector and about 50 sleepy sensors. The trickle timer on the sensor side are both 3s. On the collector side, max and min trickle timer are set to 1.5s and 3s, respectively. In order for the sensors to join, the sensors send a PAS and try to associate with a collector every 10mins. If the sensor receives a PA message, it proceeds with the PCS message. After receiving a PC message from the collector, the sensor sends an association request and joins the network.

The FH_CHANNEL_MASK and the FH_ASYNC_CHANNEL_MASK are identical on the collector and sensor side:

#define FH_ASYNC_CHANNEL_MASK         { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
                                        0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, \
                                        0xFF, 0xFF, 0xFF, 0x7F, 0x00 }


The sensors are basically TIDA 00489 boards, though we have adapted the RTC capacitors.

Observations:
Using a sniffer and Wireshark, I can at least see if the sensors are sending their PAS and PCS messages, since they are transmitted on all channels. I also thought this should be the case for the collector's async messages (PA and PC message) however, in the Wireshark log, there are only the PAS or PCS messages. I set the sniffer to 5 different channels, not on one channel I could see a PC or PA message.

I can see, that the sensors need several PAS or PCS messages in order to receive a PA or PC message from the collector. Hence, the collector is actually transmitting its PC or PA message but I dont know on which channel, and it takes quite long for the sensors to join if they ever join. Sometimes it takes up to more than a day (remember the 10min interval between two consecutive PAS or PCS messages the sensors are sending).

Questions:

  1. Having about 60 channels enabled, do you think 3s of trickle time on the sensor side are appropriate? We do not care for a fast join, but for a reliable join process, which does not need several tries.
  2. It seems to be obvious, that the collector is NOT sending its async response frames on ALL channels of the async channel mask, since I cannot find a single PC or PA frame in the sniffer log. But on which channel is the collector transmitting?
  3. How can I tweak the join behavior of the sensors? What could be better trickle times to increase probability of a successful join? Would it make sense to reduce the number of async channels on the collector and sensor side (although this makes only sense if the collector is actually transmitting on all...)?
  4. When the sensor has sent its async frame, on which channel will the sensor wait to receive the collector's response?

To sum it up, we only want a higher successful join rate and we do not care if the join phase (time from PAS to association) takes long, but we want to reduce the tries it takes for a sensor to join.

Hope you guys can help.

best wishes

Slev1n

  • Hi Slev1n,

    Can you post the sniffer log you are referring to?

    Thanks, 
    Elin

  • Hey Elin,

    find attached the sniffer log.

    Btw, I can see the PA and PC message from the collector if I factory reset the board, one of each message is transmitted at the beginning and it looks like they are transmitted on each channel.

    Furthermore, the join behavior improved significantly when we took 25 of the 50 sensors and placed them about 4-5m away from the other 25 sensors, which are still in the box.

    But we still dont know how the transmission of the collector's async messages is actually handled.

    FH_AsyncMessages.zip

    best wishes

    Slev1n

  • Hi,

    Remember that the sniffer only looks at one channel at the time. If you want to get a complete picture you can set up several sniffers on different channels.

    To answer your timing questions I would like to know what PHY you are using. I would also encourage you to try, maybe test with 2 s trickle time etc.

  • Hi Marie,

    Marie H said:
    Remember that the sniffer only looks at one channel at the time. If you want to get a complete picture you can set up several sniffers on different channels.

    I know that the sniffer looks only at one channel, but I thought the async messages are sent on all channels enabled in the FH_ASYNC_CHANNEL_MASK and since I am sniffing at one of these channels I should see the PC or PA message of the collector?

    Besides, do you know on which channel the sensor will wait to receive its PA or PC message? Is it the fixed channel?

    Marie H said:
    To answer your timing questions I would like to know what PHY you are using.

    For FH we use APIMAC_STD_US_915_PHY_1

    Marie H said:
    I would also encourage you to try, maybe test with 2 s trickle time etc.

    I have tried so far 6s, 3s, 2.5s, 2s and 1.5s, I actually didnt see much difference in the general behavior.

  • So far I was not able to get a high join probability for some of the sensors. But I think increasing the trickle timer on the sensor side and decreasing it on the collector makes sense. The value of the collector is at least as long as the time the async transmission from the sensor takes but not much longer.

    I will report back if I can improve the situation, any suggestions welcome.