Zigbee3.0, Extended status 0x81, No free APDUs

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Zigbee3.0, Extended status 0x81, No free APDUs

1,438 Views
760167358
Contributor II

Question

    The coordinator displays  the error message "ERROR: Extended status 0x81", while it communicates with the end device. The definition of extended error code 0x81 is finded in 《ZigBee 3.0 Stack User Guide》.How should I do?

Environment

    The chip is MKWZ512. The IDE is MCUXpresso IDE.The SDK which is obtained from NXP official website,is 2.2.0.I use coordinator demo and end device demo which come from the SDK. Some code about data interaction, is added to the coordinator demo and end device demo.

topology

    The network topology is consist of  one coordinator and six end devices. The data interaction logic of application layer is simple.Firstly, the coordinator will regularly send a data request to end device. Then, the end device will send a data for which the sender asks.

Dilemma

    The Zigbee 3.0 Stack which belongs to NXP does not open souce.It Just provides some library files, which cases that the debugging is difficult. For me, Only the error code returned by the interface can be got.

Remarks

    Though I use the zigbee network, I do not care about the ZCL layer.I just want to transmit my private protocol data which belongs to application layer by the zigbee network.

Labels (2)
0 Kudos
4 Replies

1,203 Views
760167358
Contributor II

Hi, Sebastian!

    Currently, I use the API "ZPS_eAplAfUnicastAckDataReq" to send data  in the coordinator project. The parameter of cluster id is a fixed value "0x1234", but I do not create the cluster which value is 0x1234.

    In the end device project, I use the API "PDUM_u16APduInstanceReadNBO" to obtain the data. Then I call my API "ProtocolAnalysis" to analyze the data. I don't need the function about ZCL, and I don't care about the realization of ZCL.I only need that the data can be transferred from coordinator to end device or form end device to coordinator while data transfer functions are called.

    Though I do not create the cluster whose id is 0x1234, I can receive all the data . Though the cluster does not be created, it does not affect my data transmission.It is necessary to create a cluster , isn't it? If creating a custom cluster can resolve the error "ERROR: Extended status 0x81", I will try it.

PS:Realization of API "ProtocolAnalysis" is in attachment.

0 Kudos

1,203 Views
Sebastian_Del_Rio
NXP Employee
NXP Employee

Hi,

 

If you want to use Zigbee as your communicaitons protocol, it would be best to create a custom cluster so that data can be easily transferred. Then, after the data is received from the custom cluster, you can use your private protocol or process the data.

 

However, if you don't necessarily want to use Zigbee, you could transfer raw data using 802.15.4 instead. This way, you don't have to implement a custom cluster, but this depends on your final application.

 

Please let me know if you need more information.

 

Best regards,

Sebastian

0 Kudos

1,203 Views
Sebastian_Del_Rio
NXP Employee
NXP Employee

Hi, I hope you're doing well!

 

I would recommend you try implementing a custom cluster so that you can implement your own application frame. There's a guide explaining how to create a custom cluster on our community, you can find it in this link.

 

Also, are you using 802.15.4? Could you please provide more information about your final application? If you want to implement your own private protocol, you could also try using GenericFSK as a base.

 

Best regards,

Sebastian

0 Kudos

1,203 Views
760167358
Contributor II

Hi, Sebastian!

    Currently, I use the API "ZPS_eAplAfUnicastAckDataReq" to send data  in the coordinator project. The parameter of cluster id is a fixed value "0x1234", but I do not create the cluster which value is 0x1234.

unicast.png

  In the end device project, I use the API "PDUM_u16APduInstanceReadNBO" to obtain the data. Then I call my API "ProtocolAnalysis" to analyze the data. I don't need the function about ZCL, and I don't care about the realization of ZCL.I only need that the data can be transferred from coordinator to end device or form end device to coordinator while data transfer functions are called.

    Though I do not create the cluster whose id is 0x1234, I can receive all the data . Though the cluster does not be created, it does not affect my data transmission.It is necessary to create a cluster , isn't it? If creating a custom cluster can resolve the error "ERROR: Extended status 0x81", I will try it.

zps_event.png

protocol_analysis.png

protocol_inc.png

protocol_src.png

0 Kudos