How to Buy
IoT Products and Services
Digi XBee Ecosystem
Digi XBee RF Modules
Digi XBee Cellular Modems
Digi XBee Gateways
Digi XBee Tools
Single Board Computers
IoT Development Kits
IoT Software and Services
Digi Remote Manager
Wireless Design Services
TrustFence Security Framework
USB Over IP/AnywhereUSB
Built-in security framework for the IoT
Solutions by Application
Kiosks and Digital Signage
Positive Train Control (PTC)
Solutions by Technology
The Journey to 5G
Private LTE Based on CBRS
Smart Out-of-Band Management
Zigbee Wireless Mesh Networking
Solutions by Industry
Examples and Guides
Product Returns (RMA)
Expert Support Login
Diagnostics, Utilities & MIBS
Ask a Question
Welcome to Digi Forum, where you can ask questions and receive answers from other members of the community.
6 years (since May 23, 2014)
Activity by Jaymer
New to the Community
Wall for Jaymer
to post on this wall.
Ham, basically, most people who hook up a thermistor are measuring "general" temps (like their house, outside, etc.)
I was doing an Oven.
So while the device was fine with that ambient temp, the XBee couldn't handle that much incoming voltage since 1.2v was its Max.
So, scaling it down before Xbee, then multiplying it to get it back to actual in software is how it was solved.
Jun 20, 2017
Ham, here's 2 emails from the guy who helped me with this:
The spec says the MCP9700 output rises 10mV per ° C where 0° is scaled up to 500 mV so if 500mv is 0° C then 510mV is 1°C. 520mV is 2°C etc,
So at say only 240°F you have 115.55°C which is 115.555* 0.010V + 0.500V = you have 1.6555 volts The Xbee outputs a maximum of 10 bit value 1023 (0x3FF) at a max voltage of 1.2V so as you concluded you have to cut down the output of the active thermistor.
We discussed cutting it in half and that would give you the ability to read up to 2.4 volts which is about 374°F But the device can only measure up to 150°C or 302°F At that temp it only outputs 2 Volts.
So to go from 2 volts to 1.2 you need a divider that outputs 0.6X the input Since the MCP9700/9700A and MCP9701/9701A is designed to source/sink 100 μA (max.) we also need to keep the total resistance to the 2.0V above 20K
So I have plugged in the Input voltage at 2.0 Volts and output at 1.2V starting with R1 at the popular 10,000 (10K) value in this online calculator
It calculates that R2 is 15000 so
R1 = 10K
R2 = 15K
The parallel impedance of those two is less than 10K which meets the Xbees requirement for the driving output impedance of the voltage source. Now that we have added all these resistors I would suggest paralleling a small capacitor of say 0.1 uF since you will probably now have some noise due to the higher resistances that you don’t have going straight in. .
So now a reading of 1023 (0x3FF) = about 302°F which is full scale Xbee input. I should have those and I will bring them in next time I swing by. Most likely this week.
I am sure the way you do the math will work absolutely perfectly fine but I am bad at explaining things without a whiteboard or pen and pencil. Here is the way I would have approached the conversion problem. (bear in mind I usually do real time stuff so I try to simplify the math the processor does by doing most of the conversions ahead of time and not on a sample by sample basis.)
1023 (0x3FF) = 150° C = 302° F = 2 volts
0 (0x000) = -50° C = -58° F = 0 volts
that’s a span of 360° F =302 – (-58) over 1023 units so each unit represents 360/1023 or 0.35190615835777126099706744868035 degrees F per unit starting at a base of -58° F (see bits per millivolt becomes absorbed in the definitions)
so the simple equation is:
temp_in_farenheight = (xbee_value*0.35191) - 58
when xbee_value =1023; temp_in_farenheight = 302° F
when xbee_value = 0; temp_in_farenheight = -58° F
everything in between is linear
glad it’s working for you.
Jun 20, 2017
The issue is is that the temperature is exceeding the maximum value.
I think if you look at the specs on the xbee device, it's input is only 12 bits.
(That's from memory, I am away from my computer right now)
So when a high value from the thermistor comes in it's saturates the range that the input can handle. So it shows its maximum value which is 03FF.
I'm not electronics guy, and I can't remember exactly what this is called, but that was some sort of reducing circuit using resistors that a guy made for me and it's scaled the input voltage down so that it was always in the range that could be read correctly.
Then I multiply that by a constant to get it back up to The actual temperature.
I still have that circuit built on a breadboard, and can photograph it for you if you need it.
And I may be able to find an email with this guy that defined what it was.
Please reply here if you need this info.
It's been so long since I signed up here I was surprised to get an email on my phone showing your post but I am glad to help you. Thanks Jaymer.
Jun 20, 2017
Were you able to solve your problem in your post titled "Incorrect value 03FF coming from remote XBEE s2. ADC input max?". I am having the same issue and can't figure it out.
Jun 19, 2017