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.

[6LoWPAN] if possible to change channel dynamically ?

Other Parts Discussed in Thread: CC2538, CC2630, CC2650, CC1310, CC1200

hi team,

Currently, the channel is defined on project-conf.h . It's hard-coded. Is it possible to use API to dynamically change RF channel on Edge-router, node ?

  • It's possible, though you should at least specify what king of framework do you use?

    The simple way to find the API is to search where the channel macro is used.
  • Sounds like Contiki to me. On most platforms you are able to, during run-time, change radio channel using the netstack API, eg NETSTACK_RADIO.set_param()... The question is why you want to do this. Are you considering to build a hopping protocol? If so, also consider how you get all devices in the network to change channel at the same time so that there are no devices left behind without ability to communicate. How do you get fresh (ie newly rebooted) devices to find the right channel? How do you handle transmissions close to a channel hop? And so on, and so on. There's a lot that goes into a robust channel hopping protocol, we know that allright... :)

  • Hi mslothy, Igor,
    Thanks for your reply. Yes, this is for Contiki 6LoWPAN. My customer just consider to divide a big network ino few networks of different channel. This is to speed up the data transmission.
    NETSTACK_RADIO.set_value(RADIO_PARAM_CHANNEL, RF_CORE_CHANNEL);
  • Yeah, that's the API.

    By the way, even for large networks, switching channels may be a total disaster (on many levels).

    So, advice to your customer to consider this twice.

    We have a network of 100 nodes (Contiki based, but not a 6LoWPAN) on the same channel and PAN ID and it works

    just fine. The HW in our case is for nodes and a gateway is cc2538 (we have 2 gateways for the entire network). 

  • There are many possible reasons for why the customer considers run-time channel change, other than just to quicken up a data transfer (which is basically a scalability problem). Perhaps the most important is to comply with regulations, FCC/ETSI/etc. But also for robustness in case of interference, network commissioning and management, etc. I agree with Igor here, this is pretty much as far as you can come from trivial and not to be taken lightly. Wireless is in its essence unreliable, so you can't trust that your command to change channel has propagated to the full network. You'll notice that it will quickly break. Or work perfect in the lab with a handful of devices in range, but fail spectacularly in the field.

    Jerry (and others as well of course), we at Thingsquare have developed a frequency hopping protocol working on either 2.4 GHz or the various sub-GHz bands, with excellent low-power capabilities and scalability to hundreds or thousands of devices, so feel free to contact me at marcus@thingsquare.com if you want to discuss this further.

    Best,
    Marcus
  • Hi Marcus, Igor,
    Appreciate your sharing . I will provide your informaiton to my customer.
    For your Contiki based network, do you use TI chipset ? CC2538 or CC2630 or others ?
  • We support CC2538 or cc2650 for 2.4 GHz, and cc2538+cc1200 or cc1310 for sub-GHz. Some others too, but I think those are the most interesting for you. Feel free to pass my contact information along to them or to loop me into the discussion. I'd be happy to tell you and them more about our system.

  • CC2538 in my case. Currently porting all the related designs to cc1310 (the range is much better with sub GHz)