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.

RTOS/CC1310: CC1310 launchpad mesh network TIDA-01547 end nodes not sleeping

Part Number: CC1310
Other Parts Discussed in Thread: TIDA-010003, , TIDA-010024

Tool/software: TI-RTOS

Greetings

we succedded at making the TIDA-01547 reference design with TIDA-010003 reference design to create a mesh network for push scenario.

the thing is we want the end nodes to sleep in certain time then wake up for transmitting or forwarding other nodes transmissions.

we measured the current consumption in end node it was 7.9 mA continuously.

we changed this line in the config.h file to make end node Rx off when idle:

#define CONFIG_RX_ON_IDLE                           false

we also changed:

#define FH_NUM_NON_SLEEPY_HOPPING_NEIGHBORS         20

#define FH_NUM_SLEEPY_HOPPING_NEIGHBORS             0

to different values like non sleep 2 sleep 20, but no change on end nodes whatsoever.

my questions:

1. does this reference design even support sleeping, therefore a low power consumption layout.

2. how can we make end nodes sleep means make them idle when no tx is available (for only Tx end nodes).

3. can we change the available mode (for example beacon mode) to make all nodes wake up in a certain time listen for any transmission in the air (for Tx Rx end nodes).

4. the TI 15.4 Stack Power Calculator, does it give average current consumption for CC1310 in mesh also or just star, plus how to change (Collector Message Period) show in the calculator.

  • Hi, 

    Thanks for your interest on the 6LoWPAN mesh reference designs. 

    #1/#2. We have recently released an update for TIDA-010024 with the low-power mode configuration (LEAF). You can check out a new software example in the TI design (by typing the TIDA-010024 on TI.com). 

    The LEAF node configuration saves power by disabling routing capability and turning off RX during idle time.  

    For the TIDA-01547 and TIDA-010003, you can make the same changes we've done in the TIDA-010024. The build configuration in the TIDA-010024 is debug_push_leaf. Since this is for end-nodes, I guess you will need to change only for TIDA-010003 but the same change can apply for TIDA-01547 if you runs the TIDA-01547 as end-nodes. 

    Here is step-by-step instruction for the update. 

    1. Create a new build configuration for the leaf configuration. Copy the build configuration from debug_push. 

    2. CCS property-> Predefined Symbols. Update the following symbols: 

    IS_ROOT=0

    IS_INTERMEDIATE=0

    3. In the TIDA-010024 CCS project with the debug_push_leaf configuration, search "IS_INTERMEDIATE" and update your codes based on the changes in the files below. 

    - middleware.c (or corresponding file in the TIDA-010003 or TIDA-01547) in the Application/ directory

    - config.h in Application/subg/

    -  uip_rpl_task.c in 6lopwan/ directory

    #3. The reference design runs on top of TI 15.4-Stack. The TI 15.4-Stack doesn't support time-slotted channel hopping or beacon mode operation with frequency hopping mode. 

    Regards,

    Wonsoo

  • thank you very much for the reply and for the new release of mesh network.

    I added the code to the cc1310 end node build but there is a problem:

    after it is connected and it goes to the state of sleeping with 0.04 mA, it sends number of packets then it's like disconnected from the mesh network and try to connect again with non sleeping mode for another 1 to 2 minutes.

    I am guesing there is some type of checking from the collector that the node is alive or something and it is being sent during sleep time, therefore the collector presume it's dead then when it is time for Tx it finds itself out of network so it tries to connect again to the network.
  • Hi,

    You are right. The keep-alive mechanism needs to be removed from the LEAF node configuration. I've just added here the complete instruction with an update to make the LEAF configuration with TIDA-010003.


    (How to create LEAF configuration with the TIDA-010003 software example)

    1. Create a new CCS build configuration for the LEAF node. Copy the build configuration from debug_push.

    2. CCS property-> Predefined Symbols. Update the following symbols:

    IS_ROOT=0
    IS_INTERMEDIATE=0
    remove "FH_KEEP_ALIVE"

    3. In the TIDA-010024 CCS project with the debug_push_leaf configuration, search "IS_INTERMEDIATE" and update your codes based on the changes in the files below.

    - middleware.c (or corresponding file in the TIDA-010003 or TIDA-01547) in Application/
    - config.h in Application/subg/
    - uip_rpl_task.c in 6lopwan/

    Thank you.
    Wonsoo
  • Thank you for the reply

    I will try that and see if it will stay connected when sleeping.


    But we still have a problem with the routing devices. How can we make them go to sleep also.

    Can we write a protocol for them on top od the current version of the reference design for synchronising their sleeping or other idea for that issue.

    Actually we have a contiki version of contiki rime stack mesh network that works fine but TI stopped supporting that version of contiki as far as we know, so we thought we could manage to make this TI supported mesh network reference design as a fully sleeping node low-power mesh network.

    Sorry for the long writing, and thank you again for detailed replies.
  • The router should wake up to maintain their routing entries.

    The software examples provided with the TI designs are open-source. Yes, you can modify the sources to use for your target applications. There are no issues. As stated in the disclaimer in the TI design guide, please understand that we don't offer software debug or support with the example sources.

    The CONTIKI is an open-source project not maintained by TI.

    Regards,
    Wonsoo
  • hi Wonsoo

    I tried the removing of FH_KEEP_ALIVE predefined symbol, the problem still exist.

    it connects to mesh collector then go for sending a couple of packets then connection is lost trying to connect again.

    current consumption is low when it connects, then it goes high again when it tries to connect again.

    regards
  • Hi Ali,

    The LEAF mode turns on RX during joining process and then RX off once joining completes. I made the same changes and it works ok. Please, make sure if you made all the changes as we discussed. In addition, change the following as well since I found that the buffer size was not the same for LEAF mode in the example codes. This is just to make the same buffer sizes as the intermediate node.

    Thanks.
    Wonsoo

    (bm_api.h)

    #else //LEAF
    #define BM_NUM_BUFFER 4
    #endif

    (config-uip-private.h)
    #if IS_ROOT
    #define SICSLOWPAN_CONF_REASS_BUF_SIZE 6
    #elif IS_INTERMEDIATE
    #define SICSLOWPAN_CONF_REASS_BUF_SIZE 6
    #else
    #define SICSLOWPAN_CONF_REASS_BUF_SIZE 6
    #endif
  • Hi Ali, 

    The TIDA-010003 has been updated with the low-power mode option. Please, check out the updated software example by visiting TI.com and search for TIDA-010003. Thank you. 

    Regards,

    Wonsoo

  • thank you for this update,

    the update is only for leaf nodes

    the intermediat nodes still have to be awake all the time with no sleeping periods right?
  • Yes, that's correct. Thanks.
    Wonsoo