Problem verifying checksum for frame type x92

I’m having an issue with payload length and calculating checksums for IO samples. I’ve set up an XBee Pro 900Mhz DigiMesh module to send periodic I/O samples via escaped API frames. The data packets I receive don’t make any sense to me at all.

Here is a packet with escape characters still in tact;

7E 126
00 0
14 20
92 146
00 0
7D 125
33 51
A2 162
00 0
40 64
47 71
7F 127
DA 218
FF 255
FE 254
01 1
01 1
10 16
11 17
00 0
40 64
21 33
00 0
40 64
3F 63
FF 255
AD 173

Now if I unescape them;

7E 126
00 0
14 20
92 146
00 0
13 19
A2 162
00 0
40 64
47 71
7F 127
DA 218
FF 255
FE 254
01 1
01 1
10 16
11 17
00 0
40 64
21 33
00 0
40 64
3F 63
FF 255
AD 173

The first thing I notice is the length is wrong. The length bytes indicate a total payload length of 20 bytes, but this is obviously not the case. Also, I’ve tried arriving at the checksum of AD (173) by doing just about every combination of bytes in the payload possible and I can’t seem to figure it out.

Any help would be very much appreciated!

Does my packet-check program help at all? (802.15.4 forum, pinned posts)

If not, please feel free to complain as bitterly as you like :slight_smile:

You can easily form and decode the frames using the link given in the following article, http://www.digi.com/support/kbase/kbaseresultdetl?id=3215