Zigbee stack sending packets on its own

I have an XBee3 with the latest Zigbee firmware (1012) and I’m trying to create an end device that talks with a SkyConnect Zigbee dongle acting as the coordinator (and then into a Home Assistant ZHA integration).
I’m using Micropython to generate and receive the Zigbee (and ZCL etc.) packets but looking at a WireShark sniffer, there seem to be all sorts of packets that the XBee3 Zigbee stack is generating for itself.
For example, I’ve found that the XBee3 will respond to beacons and also join the coordinator’s PAN, even before I’ve started my Micropython code (I’m typing ‘import man’ from the REPL for debugging purposes).
Also the WireShark sniffer shows a lot of packets being sent to the XBee3 that I’m not seeing in my ‘Receive()’ function.
Where can I find a list of the packets that are sent and received/handled by the Zigbee stack and when this will be occurring?
Also, if necessary, is there a way to stop these ‘background’ packets being processed?


The packets you are referring to are part of the Zigbee Stack and controlled at the stack level. These function are not function you would need to put in your code.

Thank you for confirming what I’m seeing.
Can you please address the question I asked about finding a list of the packets and that sent/received?
Do I get all ZCL packets that are sent to me?
Where in the ‘joining’ sequence do the automatic packets leave off and I am expected to take over?
I see that somewhere the coordinator is told that my XBee3 is battery powered - how cna I correct this (in my situation at least)?

I would suggest looking at Digi XBee® 3 Zigbee® RF Module

Your application only needs to respond to very few packets. Items such as Binding requests Digi XBee® 3 Zigbee® RF Module or application level packets.

As for your other question, I would suggest reading Digi XBee® 3 Zigbee® RF Module and Digi XBee® 3 Zigbee® RF Module

Thank you.

One of the problems I had was that the PDF file I was using was obviously old and it didn’t contain that information you linked to.

One more question: When writing Micropython code, when the manual says that the packets are sent out to the serial port, is this the UART or my code? Looking at the diagrams on pages 134 and135, is the Micropython code the part labelled “Handled by the XBee Applicaiton AO=0)” (or AO>0) or the “Serial Port (0x91 FrameType)”


The Micro Python code will send the Data out the modules UART. If the module supports a Micro Python UART, then it will be sent out that UART. Otherwise it will use the Primary UART.

It will not be in API frames but however you frame the data.

So does that mean it will NOT be picked up by the MicroPython ‘receive()’ function and ONLY do to the UART?

No that is not what it means. The receive function is just for that. Receive data from the RF port.