Reply
Posts: 26
Registered: ‎02-13-2014

Channel change with sleepy end-node

Hi Everyone,

 

I have a sleep end-node on channel 12. I change the co-ordinator channel to 13 to see if my device will find the new channel. It begins calling "status = emberFindAndRejoinNetworkWithReason(secure, channels, EMBER_AF_REJOIN_DUE_TO_END_DEVICE_MOVE);" Seems to report error code 0x70 which is "EMBER_ZCL_STATUS_REQUEST_DENIED".

 

The channel mask is "EMBER_ALL_802_15_4_CHANNELS_MASK".

 

Any reason why it won't rejoin the new channel?

 

EMBER_NETWORK_DOWN 145
Move attempt 0 nwk 0: 0x00
EMBER_JOIN_FAILED 171
sleep 12663 ms (until End Device Support Plugin Move NWK 0 Event)
wakeup 6322 ms
EMBER_NETWORK_DOWN 145
EMBER_JOIN_FAILED 171
sleep 2969 ms (until End Device Support Plugin Move NWK 0 Event)
wakeup 2969 ms
EMBER_NETWORK_DOWN 145
Move attempt 1 nwk 0: 0x70
EMBER_JOIN_FAILED 171
sleep 34009 ms (until End Device Support Plugin Move NWK 0 Event)
wakeup 34009 ms
EMBER_NETWORK_DOWN 145
Move attempt 1 nwk 0: 0x70
EMBER_JOIN_FAILED 171
sleep 48480 ms (until End Device Support Plugin Move NWK 0 Event)
wakeup 48480 ms
EMBER_NETWORK_DOWN 145
Move attempt 1 nwk 0: 0x70
EMBER_JOIN_FAILED 171
sleep 61279 ms (until End Device Support Plugin Move NWK 0 Event)
wakeup 61279 ms
EMBER_NETWORK_DOWN 145

Posts: 5
Registered: ‎09-04-2015

Re: Channel change with sleepy end-node

Hi @jlabute

If you don't mind me asking, what method did you use to change the channel on Coordinator? The reason for the question is that I just want to make sure that you have not left current network by accident.

Posts: 144
Registered: ‎11-06-2014

Re: Channel change with sleepy end-node

Good point, @wanindra.

 

@jlabute could you provide a few details?

Highlighted
Posts: 26
Registered: ‎02-13-2014

Re: Channel change with sleepy end-node

Hi Guys,

 

Thanks. The co-ordinator is from Control4 and it has the option to change the channel from a PC application called Composer (connected by ethernet). Once the co-ordinator changes channel, my sleepy device eventually awakes and tried to do a network move after a number of polls fail.

 

Does emberFindAndRejoinNetworkWithReason(...) on the sleepy device try to find the new channel? if not, I am trying to incrementally change channels when I get an EMBER_JOINED_FAILED. I am not sure what the proper method should be... or if emberFindAndRejoinNetworkWithReason should work for me.

 

Thanks Robot Happy

 

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> YK
Posts: 107
Registered: ‎02-13-2017

Re: Channel change with sleepy end-node

I suggest you to use sniffer to check what happens over the air.

Posts: 144
Registered: ‎11-06-2014

Re: Channel change with sleepy end-node

Hi @jlabute,

 

Yes, emberFindAndRejoinNetworkWithReason(...) should work. Note that you can specify the channel mask over which the end device should scan.

 

Our End Device Support plugin makes use of this method too. Refer to end-device-move.c.

 

As @YK suggested, have you analyzed the packet trace to see what's going on? 

 

Best regards,

Yuping

 

Posts: 26
Registered: ‎02-13-2014

Re: Channel change with sleepy end-node

Thanks.

I see the reference in end-device-move.c and "emberFindAndRejoinNetworkWithReason(...)" gets called. The channel mask is "EMBER_ALL_802_15_4_CHANNELS_MASK".

Example, if my sleepy end node is on channel 14, and the controller changes to channel 20, when the sleepy end node decides to move, I capture a 'Rejoin Request' but the device does not rejoin the network. If I change the controller channel back to 14, then it Rejoins. Not sure why it wouldn't work.

 

At timestamp 276 is when I change channel to 20.

 

 

 

 

Posts: 26
Registered: ‎02-13-2014

Re: Channel change with sleepy end-node

A question was how do I change channel on the co-ordinator. The co-ordinator is from Control4 and it has a user option to select channel. The controller then sends out network update requests with a new channel# as seen in the capture (timestamp 111).

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> YK
Posts: 107
Registered: ‎02-13-2017

Re: Channel change with sleepy end-node

There is no one response to your rejoin request on the sniffer channel. Are you sure that your coordinator and end device are on the same channel?

Posts: 26
Registered: ‎02-13-2014

Re: Channel change with sleepy end-node

The co-ordinator is on channel 20, the end device is on channel 14. We have a situation in which the co-ordinator will change channels over time seeking the best frequency to operate, and the sleepy devices do not follow to the new channel.

 

The co-ordinator and sleepy end-device started on the same channel in the capture, and then I changed the co-ordinator channel to test if the sleepy device could find the new channel.

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> YK
Posts: 107
Registered: ‎02-13-2017

Re: Channel change with sleepy end-node

Then, you should use sniffer to check the channel that coordinator changed to.