This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf52840 zigbee protocol queries

Hi All,

We are working on zigbee protocol and wants to replace the existing setup with nRF52840 . We have some below queries need your answers on the same to go ahead on the same.

  1. Setting up device Pan ID 
  2. How to keep Pan ID for coordinator auto acquiring.
  3. In the existing case, we have a single module which contains the switch and load control. How to set clusters in the same.?
  4. Can wecreate and configure end points during run time. If yes, How?

Thanks and regards

Sudhindrayk

Parents
  • Hi,

    I think I may have some answers for you, but I'm not sure if that's what you asked for.

    1. Setting PAN ID is implemented inside CLI example. Please take a look there.

    2. If you mean selecting a PAN by 'auto acquiring', it is also implemented in CLI.

    3. I see two solutions. First one is pretty simple - just implement two endpoints. In case you ask about implementing the same cluster on a single endpoint, but with a different role (server/client), it is also possible. Take a look at the precompiler output of your main.c file. Each cluster structure has a field, that sets the role.

    Having a customized set of clusters will always force you to unwrap at least the first layer of macros.

    4. Setting endpoints in run time is a bit tricky. Just imagine that your device connects to a hub. Upon connection, the hub discovers all endpoints and clusters and stores this information inside its database. Afterwards - you add an endpoint. As far as I remember, there is no "endpoint notification", so the hub will not get informed about the new endpoint, so you end up with a misconfigured hub. As a consequence, adding "run time" endpoint should require your device to leave the network, (at best) change the long address, commission a modified device.

    There are no helpers to implement such endpoint modification, but if you look closely at the precompiler output, there are no signs of mechanisms that will prevent you from implementing this functionality. Personally, I have some ideas on how to achieve that, but I still do not have free time to give it a try.

    Just a general note - if you see that people struggle with understanding your question, please add a simple example of what you want to achieve. That way you will not get answers that may misguide you.

    Kind Regards, 

    Tomchy

Reply
  • Hi,

    I think I may have some answers for you, but I'm not sure if that's what you asked for.

    1. Setting PAN ID is implemented inside CLI example. Please take a look there.

    2. If you mean selecting a PAN by 'auto acquiring', it is also implemented in CLI.

    3. I see two solutions. First one is pretty simple - just implement two endpoints. In case you ask about implementing the same cluster on a single endpoint, but with a different role (server/client), it is also possible. Take a look at the precompiler output of your main.c file. Each cluster structure has a field, that sets the role.

    Having a customized set of clusters will always force you to unwrap at least the first layer of macros.

    4. Setting endpoints in run time is a bit tricky. Just imagine that your device connects to a hub. Upon connection, the hub discovers all endpoints and clusters and stores this information inside its database. Afterwards - you add an endpoint. As far as I remember, there is no "endpoint notification", so the hub will not get informed about the new endpoint, so you end up with a misconfigured hub. As a consequence, adding "run time" endpoint should require your device to leave the network, (at best) change the long address, commission a modified device.

    There are no helpers to implement such endpoint modification, but if you look closely at the precompiler output, there are no signs of mechanisms that will prevent you from implementing this functionality. Personally, I have some ideas on how to achieve that, but I still do not have free time to give it a try.

    Just a general note - if you see that people struggle with understanding your question, please add a simple example of what you want to achieve. That way you will not get answers that may misguide you.

    Kind Regards, 

    Tomchy

Children
No Data
Related