XBee S2C ADC Problem

I have the new XBee S2C RP-SMA and I’m wanting to accurately and remotely read the ambient temperature so I’ve connected up an MCP9700A Linear Active Thermistor to the XBee S2C ADC port.
I needed to calibrate the system and create a formula to translate the XBee S2C A0 ADC Reading in mV to a Temperature DegC. I found that when the A0 ADC input is connected to 0V GND the ADC reading which should be 0mV 0x00 was varying between 0x10 and 0x15. This translates to 0.5 Deg C which I was not expecting.
D0 = 2 Set D0 port to ADC
D1 = 2 Set D1 port to ADC
RP = 0 Disable all Pull-up resistors
IR = EA60 Sample every 60 Seconds
Connect: GND=0V, VSS = 3.3V, VRef = VCC 3.3V, D0 to GND 0V, D1 to the output of the MCP9700A.
Am I doing something wrong or is there a problem with the XBee S2C ADC?
I’m using the latest version of XCTU v6.2 on a Windows 7 (64bit) Workstation and the XBee S2C XB24CZ7SIT-004 is loaded with the latest Firmware Version 4059.

What are the actual API frames you are receiving with GND being connected to ADC0?

I’m only using the XCTU v6.2 Configuration and Console with the XBee S2C. Test Environment: XBee S2C directly mounted on a breadboard with a bench PSU 3v1. XBee S2C is configured to Tx Analog values every 60 seconds which it is doing very well.
Configuration:
D0 = ADC
D1 = ADC
D2 = ADC
D3 = ADC
PR = 0
PD = 0
IR = EA60
V+ = D48
Connections:
VCC = 3v1
GND = GND
VRef = VCC
D0 = GND
D1 = Vout from MCP97000A Linear Active Thermistor
D2 = GND
D3 = GND
API Frames:
7E 00 1A 92 00 13 A2 00 40 F5 17 A1 05 32 01 01 00 00 8F 00 12 02 78 00 11 00 11 0C 0D 3C
7E 00 1A 92 00 13 A2 00 40 F5 17 A1 05 32 01 01 00 00 8F 00 11 02 78 00 11 00 11 0C 0D 3D
7E 00 1A 92 00 13 A2 00 40 F5 17 A1 05 32 01 01 00 00 8F 00 12 02 76 00 11 00 11 0C 0D 3E
D0, D2, and D3 should = 0x00. As you may see from this that D0 is showing a different and fluctuating values compared to D2 and D3 which are ALL connected to GND. D1 is reading the voltage from the temperature sensor.

From what I am seeing, it looks like you just need to calibrate the ADC lines with your Code or with an external resistor.

I thought the ADC connected to GND 0V should read value 0x00 not a floating number between 0x10 and 0x17.

I’ve just switched off then on the power and now I get a 21 = GND.

7E 00 1A 92 00 13 A2 00 40 F5 17 A1 05 32 01 01 00 00 8F 00 15 02 82 00 15 00 15 0C 0C 28

There is nothing in the XBee S2C User Guide that suggests the ADC are floating.

My project will probably require all 4 ADC’s so I will not have a reference to play with…

Wouldn’t it be better if Digi just fixed the XBee S2C ADC’s?

That does not sound right at all. Did you turn off the internal pull up and down resistors?

As I said earlier ALL PullUp resistors have been disabled: PR = 0, PD = 0
I’ve just tried setting all ADC resistors to PullDown but this did not change anything. PR = 1E, PD = 0.
With the PulllDown resistors enabled I detached the GND to AD3 it floated to value 546, NOT GOOD.

I really think the XBee S2C ADC has a problem and it needs to be escalated. Is this something you could do? If not how do I do this?

Andy I think you are a little confused. You are in the Support forum where Members help members and not Digi Technical Support. To contact Digi technical Support, you need to log in and submit a case at http://www.digi.com/support/enterprise-support#tieroptions.

I was really hoping for some guidance and maybe someone to confirm this ADC problem exists with the XBee S2C TH unit and then let me know how to solve it.

I’ve now contacted Digi Technical Support with this issue and they have recreated the ADC problem on the XBee S2C TH units and are now escalating the issue to the Digi Engineering Department.

I hope they come up with a solution soon.

I’ve now had news back from the Digi Technical Support Department. It looks like the IC suppliers have changed the specification of the XBee components and the ADC has a ±20mV Error. I think this error renders the ADC reading totally useless as the resolution of my Temperature sensor is 1mV =0.1 DegC resulting in an Error of ± 2 DegC.