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.

Z-Stack Lighting and Frequency Agility

Other Parts Discussed in Thread: Z-STACK

Hi,

I'm looking to improve network reliability by using the frequency agility feature of Zigbee PRO. I've read a description of it in the Z-Stack Developer Guide - though it's not mentioned specifically in the Z-Stack Lighting guide. Does this mean that with ZLL, this feature shouldn't / can't be implemented?

What I tried so far is enabling NWK_MANAGER on the SampleBridge and after creating a network, use the Mgmt_NWK_Update_req to change the MGR_ADDRESS to 0x0001 (bridge's address). I used SmartRF studio and an EB to cause interference, but I couldn't get the network to change channels.

Question is, is there a proper way to test this feature (assuming it can be used with ZLL at all)?

Thanks,

Sjef.

  • Hi Sjef,

    I forwarded your post to a ZLL expert. His reply will be posted here soon.

    Best regards,

    OD

  • Sjef de Krijger said:
    I'm looking to improve network reliability by using the frequency agility feature of Zigbee PRO. I've read a description of it in the Z-Stack Developer Guide - though it's not mentioned specifically in the Z-Stack Lighting guide. Does this mean that with ZLL, this feature shouldn't / can't be implemented?

    On the contrary, ZLL is the only profile that mandates the support of frequency agility. In all other profiles it is not mandated and so can only be used in a closed system where all manufactures agree to implement it. Sorry it is not mentioned in the developers guide, it is a key feature of ZLL and Z-Stack-Lighting.

    Sjef de Krijger said:

    What I tried so far is enabling NWK_MANAGER on the SampleBridge and after creating a network, use the Mgmt_NWK_Update_req to change the MGR_ADDRESS to 0x0001 (bridge's address). I used SmartRF studio and an EB to cause interference, but I couldn't get the network to change channels.

    Question is, is there a proper way to test this feature (assuming it can be used with ZLL at all)

    You should not need to do anything special other than sending Mgmt_NWK_Update_req  API. Below is the ZTool (js) code I used to test this feature:

    function ZDOMGmtNwkUpdateReq(DstAddrMode : ZDO_MGMT_NWK_UPDATE_REQUEST.ADDRESS_MODE, ChannelMask : ZDO_MGMT_NWK_UPDATE_REQUEST.ZIGBEE_CHANNELS, ScanDuration : Byte, ScanCount : Byte)
    // send a ZDO_MGMT_NWK_UPDATE_REQUEST message
    {
    var req : ZDO_MGMT_NWK_UPDATE_REQUEST = new ZDO_MGMT_NWK_UPDATE_REQUEST ();
    req.DstAddr = DestAddr;
    req.DstAddrMode = DstAddrMode;
    req.ChannelMask = ChannelMask;
    req.ScanDuration = ScanDuration;
    req.ScanCount = ScanCount;
    
    // req.NwkManagerAddr = NwkManagerAddr ;
    // display log messages
    ZEngine.WriteLog("sending ZDO_MGMT_NWK_UPDATE_REQUEST to " + zportName); 
    ZEngine.Send(zportName, req);
    } 
    } // end MyClass
    
    ...
    
    ZDOMGmtNwkUpdateReq(0x0f, /*0x00100000*/ 0x00000800 , 0xFE , 0x0); //Move to channel 11
    
    

    Regards, TC.

  • Section "3.12.1.23 ZDO_MGMT_NWK_UPDATE_REQ" of "Z-Stack Monitor and Test API.pdf" should also be useful. The message should be sent to DstAddr 0xFFFD and DstAddrMode 0xFF.

    Regards, TC.

  • TC, Thanks! Javascript.. Long time no see :) Actually I'm using a different (python based) setup - I didn't know Z-Tool was scriptable with JS.. 


    For now, I already figured out that using MT_APP RPC_CH_CHANNEL of the bridge works - with some fixes (I changed it, so that besides broadcasting the update_req, it also sends an update_req to itself, /before/ incrementing UpdateID) - so I can change channels when I like to.

    I'll assume the JS code has the same effect. I'll test it later.

    Does it mean I have to add some decision logic (when to change channel) myself? I was under the impression that somehow this would be automatic (posted this as another Z-Stack-in-general question, have a look) through an event generated by the NWK layer. Can this be done?

    Regards,

    Sjef.

  • Sjef,

        When I tested this feature (using a remote build) it switched automatically. Personally I have not tested it on the bridge, but others have. I would expect this is automatic, the same as it was on the remote, but it could be that the remote acts automatically because it is a end device.

    I'll take a look.

    Regards, TC.