Home/Support/Support Forum/XBEE3 receive() missing senders network in 802.15.4 vs DigiMesh

XBEE3 receive() missing senders network in 802.15.4 vs DigiMesh

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

I am converting the application to 802.15.4. sender = received_msg returns None.

I am able to see the payload by payload = received_msg, 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 !!
asked Feb 15, 2021 in XBee3 802.15.4 by LLamabobAL New to the Community (2 points)

Please log in or register to answer this question.

2 Answers

0 votes
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
payload = received_msg
print("Data received from %s >> %s" % (''.join('{:02x}'.format(x).upper() for x in sender),
answered Feb 15, 2021 by mvut Veteran of the Digi Community (15,408 points)
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.
0 votes
*** 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.
answered Feb 16, 2021 by LLamabobAL New to the Community (2 points)