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.
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.
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
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
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.