Skip to main content
Associate
February 18, 2025
Solved

APS Layer configuration : Ack requirement

  • February 18, 2025
  • 1 reply
  • 785 views

Hello,
I'm trying to make an OnOff Switch emitter using zigbee on the STM32WB55 Nucleo Board. I started my project from the Zigbee_OnOff_Client_Distrib applications exemple.

The receiver that I use is not made to send back APS ACK. Because of this I add problems with Toggle command on the OnOff ZCL Cluster because the emitter was sending frame retries.

I figured out that I could disable Ack requirement in the APS Frame Control using

zigbee_app_info.onOff_client_1->txOptions &= ~(ZB_APSDE_DATAREQ_TXOPTIONS_ACK);

after cluster allocation.

Now, my problem is with the Zdo. In the find and bind process, I send a Simple Descriptor Request:

// /** Simple_Desc_req */
// struct ZbZdoSimpleDescReqT {
// uint16_t dstNwkAddr; /**< Destination network address */
// uint16_t nwkAddrOfInterest; /**< NWKAddrOfInterest */
// uint8_t endpt; /**< Endpoint */
// };

// Request simple descriptor
struct ZbZdoSimpleDescReqT req_simple_desc;
req_simple_desc.dstNwkAddr = zigbee_app_info.SW1_endpoint_bind.nwkAddr;
req_simple_desc.nwkAddrOfInterest = zigbee_app_info.SW1_endpoint_bind.nwkAddr;
req_simple_desc.endpt = zigbee_app_info.SW1_endpoint_bind.endpoint;

ZbZdoSimpleDescReq(zigbee_app_info.zb, &req_simple_desc, simple_desc_response_cb, NULL);

when I check in the packet with a sniffer, I see that the Ack requirement in the APS Frame Control is set, and the emitter send frame retries.

 

My questions are :

 - How can I disable Ack requirement in the APS Frame Control for zdo requests?
 - Is there a way to configure the APS Layer globally?

 

Thank you,

Best answer by Ouadi

Hello @Nath,

Thanks for contacting us.

Please find my answers to your questions: 

  • APS Acknowledgement is mandatory for all unicast ZDO Commands according to Zigbee specification, this allow to overcome transient routing leading to failures in the network.
  • Consequently, APS Ack can only be disabled for the ZCL layer at the cluster level as you mentioned.

Please find the paragraph from Zigbee spec : 

Ouadi_0-1739981684257.png

Kind regards,

Ouadi

 

1 reply

OuadiBest answer
Technical Moderator
February 19, 2025

Hello @Nath,

Thanks for contacting us.

Please find my answers to your questions: 

  • APS Acknowledgement is mandatory for all unicast ZDO Commands according to Zigbee specification, this allow to overcome transient routing leading to failures in the network.
  • Consequently, APS Ack can only be disabled for the ZCL layer at the cluster level as you mentioned.

Please find the paragraph from Zigbee spec : 

Ouadi_0-1739981684257.png

Kind regards,

Ouadi

 

NathAuthor
Associate
February 20, 2025

Hello @Ouadi,

Thank you for your answers.