Skip to main content

You are here

Using jeenodes as a "wireless bridge" for thermistors

15 posts / 0 new
Last post
Using jeenodes as a "wireless bridge" for thermistors

I use a microcontroller to control various processes in my home brewery that is essentially a black box. It does it's thing very well, but I can't change it's firmware.

It has multiple thermistor inputs, multiple 5V control inputs, and multiple 5V control outputs. I'd like to design a breakout box to relocate some of the I/O to a remote location, about 50' away. I have played with arduinos, and I'm a competent programmer, but my electrical knowledge is lacking. I'm curious is anyone has input, or if this is even possible.


  • Existing "black box" controller sees I/O just like it does now
  • 2 or more JeeNodes act as wireless bridges between the controller I/O and endpoint boxes

My main concern with this is the thermistor inputs for the controller. Is it possible to create a circuit that looks just like a thermistor to the controller box, but is actually being read elsewhere?

Thanks everyone!


@cc - can you measure the resistance range of the thermistors (highest likely, lowest likely)?


@martynj Would I just do this with a voltmeter with the thermistor at expected range temperatures?


The spec on the thermistors I am currently using with the controller shows them at 10 kΩ at 25C. I have no idea what the resistance range is though. I'll have to determine that by testing somehow.


I was able to find a range calculation spreadsheet on the website of the thermistor manufacturer. By the specs, the operating range I will be dealing with will be roughly 6 kΩ to 80 kΩ .

Sorry for all the responses, kind of fumbling through this as I go :)


@cc, reasonable range. Have a look at these digital pots - basically a resistance value set (and saved) on command.

More probing of the existing circuit is needed to work out the operating range of the thermistors now (and the phantom thermistors later). You mentioned a voltmeter - is that a DVM?
Next on the list to investigate is operating voltage (probably ~5v) and sensing circuit (how is the thermistor sensed by the 'black box'). Is the circuit board at least accessible?


@cc, here is the approach. The 'black box' controller needs knowledge of the temperature at several points in the process. Thermistor with a known part number are measuring the temperatures indirectly through a known resistance versus temperature transfer function.

The existing MPU is likely to interface these thermistors to individual I/Opins. Some biasing/divider circuit is turning resistance change into voltage change at the I/O pin and then a multichannel ADC is taking samples. There may well be conversion tables, offset correct and other manipulations after the ADC, but that can remain opaque.

Provided a similar resistance value is substituted for a real thermistor, the MPU 'sees' the same, unaware that the thermistor is now simulated. That can be the basis of the first approach - use a software controlled resistor as a direct substitute for the real thermistor.

This needs some detective work. The biasing system is critical - it defines the voltage range that the 'soft' resistor has to deal with. The circuit may be very simple (e.g. a pullup resistor for the thermistor to ground and that node goes straight to the I/O pin) or may have noise filtering, a constant current source instead of a resistor pullup, protection diodes etc.


This looks promising. Here is what I have learned since my last;

  • the controller is expecting 10 kΩ NTC thermistors
  • it internally uses a Steinhart-Hart equation for correcting the non-linear values
  • you input coefficients at 3 set points to calibrate it per sensor

The logic level is 5V, I can open the box to get at the board - what am I looking for to answer the remaining questions?

I do have a good digital voltmeter. Thanks!


@cc, good. Now try to trace the circuit for an individual thermistor from the external connector on to the PCB. One leg maybe goes to ground or Vcc, the other leg maybe direct to an I/O pin, or through a series resistor and perhaps a cap to ground.

Double check the circuit you draw by measuring the two output connector pins for the thermistor with respect to ground without the thermistor connected. Then substitute a 10KΩ for the thermistor and check the volts on both legs with respect to ground. Ohm's Law will confirm if your sketch of the input circuit is correct.


OK. Well, everything is SMD so it's all pretty tiny in there, but I think I have it figured out. First of all, I was wrong about the logic level. The controller provides +5VDC for external connections, but internally the micro (an ARM chip) is running at 3.3V. There are two on-board regulators, one 5V and one 3.3V.

The circuit appears simple. The thermistor is connected directly to ground on one side, and the other side is connected directly to an ADC pin on the micro. The trace between the thermistor and the ADC pin has a 10 kΩ pull-up resistor on it, connected to the +3.3V regulator.


Based on my discoveries above, would anyone have further input on gotchas I should worry about before I start physically hacking on this?


It seems like this would be a good chip to prototype on - DIP16, 2 pots, and if I understand correctly it will support 0-100 kΩ.

Seems like I2C interface would be an advantage, too?


Hmm, may not be the best choice, 100Kohm in 256 steps gives 25 steps for 10Kohm. You have some problems on the resolution. I2C interface is a nobrianer, so that, I think, is good.


Good point. If my operating range is ~ 6 kΩ to 80 kΩ that should give me 185 steps to work with. Since that resistance range represents 0ºF - 104ºF, my resolution should work out to 0.56ºF per step, which is passable but not great for my application, depending on jitter. The controller is working on a 2ºF dead band on the process.

I'd really prefer 0.1ºF resolution to the controller, but that would require a part with 6x the steps. I don't know if such a thing even exists.

I ordered up 2 of the above ICs last night, so I can at least build a sanity test device. From there, if it works at all, I can work on improvements.


@cc - Ohm's Law to the rescue.

  • Select a resistor R1 that matches the highest resistance the thermistor is likely to reach.
  • Select a resistor R2 such that R1||R2 is the lowest.
  • Put the programmable Rv in series with R2.
  • Plot Ry=R1||(R2+Rv) versus Rv input code.

The result is non-linear (a lookup table or solving for input code fixes that) but has finer steps.

Premium Drupal Themes by Adaptivethemes