I have several Xbee series 2 modules I’m trying to use in a project. I also have Digi documents 90000991_B.pdf and 90000976_S.pdf along with the Faludi book and Titus’ “The Hands on xBee Lab Manual”. I cannot find correct data on how to decode the packets I’m seeing.
For example, I have a coordinator and end device configured for API, no excapes.
I send 7e000408524e4413(Node discovery).
I get back : 7e 001c 88 52 4e44 007d33a2 00 4079d070 45303230 00 00000200c105101e 65
All devices return a similar packet.
Documentation indicates the packet should be type 95 (return for ND) not 88 (return for AT). Also it indicates the packets should end after the NI delimiter with a checksum.
XCTU test query returns type XB24-ZB, S/N 0013a2004079d070
XCTU Read returns
XB24-ZB ZIGBEE END DEVICE API 29A7
SH 7D33A2
SL 4079D070
The results are the same for Raspberry PI, Arduino, and my PCs.
I have two questions :
Why does XCTU SH/SL not match the device serial numbers?
Where can I find informaton on how to parse the return packets? Not just this one, but all types…
The ND command is an AT type command so Frame type 0x88 is correct. Look at the 90000976 document on Frame Type: 0x88. Do not confuse the return for a “Node Discovery” for a “Node id” packet, they are different.
This frame: 7e 001c 88 52 4e44 007d33a2 00 4079d070 45303230 00 00000200c105101e 65
I think I now have it figured out. I did get crossed up on the ND, NI, and some search terms. Some of the devices had API mode 2, which confused the addresses. Also there are no (0x0d) separators, and a 00 delimiter is inserted after the NI.
Also the 900000976_S is the one to read. I think I am now equipped to attack the other messages.
lyttlec:
I have several Xbee series 2 modules I’m trying to use in a project. I also have Digi documents 90000991_B.pdf and 90000976_S.pdf along with the Faludi book and Titus’ “The Hands on xBee Lab Manual”. I cannot find correct data on how to decode the packets I’m seeing.
For example, I have a coordinator and end device configured for API, no excapes.
I send 7e000408524e4413(Node discovery).
I get back : 7e 001c 88 52 4e44 007d33a2 00 4079d070 45303230 00 00000200c105101e 65
All devices return a similar packet.
Documentation indicates the packet should be type 95 (return for ND) not 88 (return for AT). Also it indicates the packets should end after the NI delimiter with a checksum.
XCTU test query returns type XB24-ZB, S/N 0013a2004079d070
XCTU Read returns
XB24-ZB ZIGBEE END DEVICE API 29A7
SH 7D33A2
SL 4079D070
The results are the same for Raspberry PI, Arduino, and my PCs.
I have two questions :
Why does XCTU SH/SL not match the device serial numbers?
Where can I find informaton on how to parse the return packets? Not just this one, but all types…
BTW, I program in C/C++ or PERL, but not Python.
If you use an Atmel AVR or a PJRC Teensy 3, you can use the Arduino XBee library for XBee S1 and S2.
On Windows or Linux or MAC, you can use an XBee library for Python 2.x.
Or build your own API processor - which is much simpler for XBee S1 than S2/Zigbee. S1 has a mesh option called DigiMesh.