To start, I’m just trying to wrap my head around the API frame and transmission protocols with the Xbee radio and Connectport X. I’m using the dev board as a stand in for my uC in the application and using the X-CTU software to connect to the radio, also I’m hoping that would give me at least semi-transparent information about what the software is doing.
I’m running basic python commands on the Connectport X, using the supplied zigbee python examples (getnodelist, sockets, and sendto).
First, I’m trying to send data from the Connectpor X to the Xbee radio, I start with getnodelist() and it returns both the coordinator and the router, as it should. I’ve created the address tuple properly using to_socket_addr, and by forcing it by creating a list. So after calling sd.bind I want to send just a ‘hello world’ message to the radio to confirm that I can communicate between the nodes. If I check the terminal on the X-CTU software I get nothing. I would have expected that this would parse the entire frame that the coordinator is sending to the Xbee dev board. So that is the first thing I was hoping would work.
Now, trying the other way (let the coordinator sit and wait for data sent by the radio). I’m reading the pdf for the Xbee Znet 2.5 OEM modules and I’m looking at the example API frames on page 57. So with X-CTU I enable API without escape characters and go into terminal mode. I click assemble packet, and enter in the example API frame given “7E 00 16 10 01 00 00 13 A2 00 40 0A 37 8E FF FE 00 00 54 78 32 43 6F 6F 72 64 FC”. The only change I made is that I added the 64 bit address of the coordinator, but it doesn’t work if I leave it blank either. The python code running on the Connectport X is the sd.recvfrom() and it just sits waiting for the transmitted frame.
So I know the radios are talking to each other via the getnodelist() but I have absolutely no idea what is happening with the data I’m trying to transmit.
Any help would be greatly appreciated!
-Mike