XBEE3 receive() missing senders network in 802.15.4 vs DigiMesh

I have a 2-board point-to-point application where I was using DigiMesh. With Digimesh, I’m able to get the sender’s serial# via sender = received_msg[‘sender_eui64’].

I am converting the application to 802.15.4. sender = received_msg[‘sender_eui64’] returns None.

I am able to see the payload by payload = received_msg[‘payload’], but just not the sender’s 64-bit address.

I changed the MY parameter to 0xFFFF for both boards which is supposed to force it in 64-bit address mode.

Any suggestions would be appreciated.

Thanks !!
Bob

The following should do what you want.

while True:
# Check if the XBee has any message in the queue.
received_msg = xbee.receive()
if received_msg:
# Get the sender’s 64-bit address and payload from the received message.
sender = received_msg[‘sender_eui64’]
payload = received_msg[‘payload’]
print(“Data received from %s >> %s” % (‘’.join(‘{:02x}’.format(x).upper() for x in sender),
payload.decode()))

That’s very similar to my code and it did not work. The ‘sender’ variable was set to None, even though I received a payload.

*** Solved ***

I did some troubleshooting using XCTU and converted my AP parameter on my board from MicroPython to API. Then with my Xbee Micro development board, I sent a Tx Request: 64-bit address to my board. It received the message in 16-bit mode, not 64-bit as expected.

I looked at the MY parameter, and it was set to 0x0000 somehow. I changed it to 0xFFFF on all of my boards, and then was able to retrieve the 64-bit address of the sender.