First the “.” is showing a value that is not an printable ASCII character.
Second, I seemed to have stated the wrong DIGI doc. My very bad.
For the Series 1 & 802.15.4 use doc #900000982.
Ok, since the start of the data packet is "&. Vx " and can be seen in the left window of X-CTU
(I’m assuming this from your earlier post).
X-CUT doesn’t have the HEX code in the right window aligned with the ASCII in the left window
(learned this the hard way) so by using an ASCII table an ‘&’ is 0x26, a ‘V’ = 0x56, ‘x’ = 0x78.
The first occurrence of these values is on the top line as: 26 83 56 78 2F 00 05 0E 00 01 F1 02
EA 02 43 01 EE 02 EB 02 41 01 F2 02 EA 02 3E 01 F0 02 ED 02 44 01 F3 02 EA 02 43 01 C0 7E 00
Then it repeats.
You can now see that the first ‘.’ has a value of 0x83.
Now for the decoding. This is difficult the first time as the DIGI docs are very sparse on
describing the data format.
On page 13 of the doc is the data packet description.
It says that the first byte is the number of samples, the is 0x26 = 38d (38 decimal).
The next two bytes indicate which channels (pins) that are active (set as inputs).
This is 0x83 & 0x56 in hex but must be converted to binary to decode.
0x83 = 0b1000 0011, 0x56 = 0b0101 0110. This says that pins A0, D8, D6, D4, D2 & D1 are enabled,
this doesn’t make much sense if you do have 3 pins set as analog inputs.
So lets back pedel and reexamine the data. I do see the value 0x7E and know that API packets start
with this value. So an API data frame type 0x83 is mentioned on page 14 as a RX packet with 16bit addressing.
With this information the above data is re-synced to use 0x7F as the beginning and broken down as follows:
7E ; sync byte
00 26 ; number of bytes after this value (38 dec)
83 ; frame type
56 78 2F 00 ; 16bit source address
;; now the remained is the same as the data explained on page 13.
05 ;byte 1- number of samples- 5 samples for each channel
0E 00 ;bytes 2,3- channel indicator
;; A2, A1 & A0 inputs enabled and data for these follows
01 F1 ; first sample data for input A2
02 EA ; A1
02 43 ; A0
01 EE ; second sample of A2
02 EB ; and so on…
02 41
01 F2
02 EA
02 3E
01 F0
02 ED
02 44
01 F3
02 EA
02 43
01 C0
The first sample of channel A2 is 0x1F1 = 497.
The ADC Vref is 3.3V and 10bit, so the volatge on A2 is:
3.3V * 497/1024 = 1.60V
For 800mV/g setting. g = (1.60V *1000)/800 = 2.00g. I’m assuming that you have either some gain (op-amp) and/or a voltage offset so that both positive and negative G’s can be measured.
So to summarize:
Your XBee is sending data to the PC in API = 1 mode.
The Frame starts with 0x7E, followed by 2 bytes of the number of bytes that follow.
The frame type is 0x83.
The data comes from the remote module with the 16 bit address of 5678 2F00.
There are 5 samples from each input.
Only 3 analog inputs are enabled, A2,A1,A0.
The data sequence is: A2,A1,A0,A2,A1,A0…
I wrote out the process I went through to figure this out. I do hope you can follow the logic and the information in the Digi doc now.