This two-part Design Idea (DI) follows on from a couple of previous articles relating to 100-Ω platinum resistance temperature detectors (Pt100 RTDs). The first of those (which we’ll call Ref 1) used a simple current-driven bridge to give an output of 1 mV/°C (or /K, if you prefer) that could be read directly on a DMM, while the second (Ref 2) had a ratiometric output to emulate an NTC thermistor but with greater range and accuracy.
Ref 1 was useful but too simple: it was precise at its calibration temperatures of 0 and 100 °C, but had an inherent error of nearly 0.4° at 50 °C because an RTD’s resistance is not quite linear with temperature. Ref 2 compensated for that with good precision – and discussed how the Callender-Van Dusen (CVD) equations are key to doing so – but was rather specialized.
Finalizing and extending the circuit must wait for the second part of this DI. Its first part will use the heart of Ref 2 to implement the function of Ref 1 and find out what else needs fixing.
That heart is the fairly conventional circuit shown in Figure 1.
![]() |
|
| Figure 1. | A simple circuit feeds the RTD, amplifies the resulting voltage, and uses some positive feedback to compensate for the sensor’s non-linear response to temperature. |
Fairly obviously, VREF and RFEED drive current through the RTD producing a voltage that is amplified by

That voltage is only nearly proportional to absolute temperature, so RPFBK adds a little positive feedback to (almost) linearize the output. Its value is critically dependent on RFEED and the gain, and, as described in Ref 2, is best found by iterated simulation. (Though later, we’ll see a useful shortcut.) Figure 2 shows the resulting error curve, which scarcely changes for gains above ~3 once RPFBK has been optimized.
![]() |
|
| Figure 2. | With compensation, the circuit’s output can be very close to ideal. (Real-world components may modify this somewhat.) |
Our aim is to make a box that will give a DMM-useful 1 mV/°C output, but properly compensated. Figure 1’s circuit was a good starting point; now Figure 3 shows the end point.
A1a works just like Figure 1, using a 1.24 V reference. Using 3k3 for RFEED and a gain of 6.6, its output sits close to 258 mV for an RTD resistance of 100 Ω (0 °C) and increases by ~1.05 mV/°C, which is dropped to a precise 1 mV/°C by R6 and R7. Keeping the gain trim passive and away from A1a’s feedback loops avoids any interactions. R5, our former RPFBK, was calculated – or rather, homed in on – in the same way as its counterpart in Ref 2, using successive approximations in the graphical sim until the error curve was flattest.
A2b provides an offset reference at that ~258 mV level, so that 0 °C at the sensor will give 0 mV across the outputs. It’s basically a clone of A1a to ensure good thermal matching. Calibration is easy: set the 0 °C/0 mV point with R14, then trim R6 for an exact 100 mV at 100 °C.
Even easier calibration
Ice-buckets and kettles are not really needed yet and are best saved for the final calibration with the actual sensor connected. For experimenting and troubleshooting, make up a gadget involving a carefully-selected 100-Ω resistor, a nominal 39 Ω with something in parallel to give 38.5 Ω, and a decent switch to short out the latter pair. Now you can easily flick between simulated 0 and 100°C inputs: easier and quicker than my original pot-based kludge.
Nicely balanced?
As noted above, A1b’s circuit is very similar to A1a’s. A trimmable resistive network could provide the reference, but this active approach ensures that any thermal effects in A1a will be balanced by those in A1b. After all, if two identical op-amps are sat side-by-side on a sub-squillimeter speck of silicon, they will behave identically, especially where temperature drifts are concerned, right?
Wrong!
Figure 3’s circuit worked perfectly, but for one thing: it wasn’t temperature-stable – not a good thing in a thermometer. Checking half-a-dozen MCP6002s mostly showed bad input-offset mismatches between the two halves. Those could be trimmed out, but unbalanced temperature drifts couldn’t – and they predominated, leading to reading errors of up to 1° for a 10° change in the circuit’s temperature. I did find one IC that was okay, but making this idea work properly called for a slightly different approach. All will be revealed in Part 2.
That feedback resistor
For the greatest accuracy at and around the 0 to 100 °C calibration points, the value for RPFBK is critical. (Those points are also used to define the slope against which the response is checked.)
For a wider range but with a different balance of errors, RPFBK needs to be reduced. (Again, we’ll explore that further in Part 2.) Throughout, R5 or RPFBK is shown to 4 or 5 places; it needs a little work to find the best series/parallel combinations. All other components were chosen from E12/24 values, though some need to be closely toleranced.
Now for that shortcut to determine RPFBK. Some work with the simulator gave optimized values for RPFBK with gain values from 4 to 100, with ad hoc curve-fitting suggesting equations giving good approximations to the target values. Here they are:

where RFEED = 3k3 and G is the gain;

for G from 4 to 10 or

for G from 8 to 100.
“Good approximations” means that the errors are always <0.05 °C and mostly around 0.01 °C, giving a good fit for temperatures from below –55 to above +125 °C. If R3–5 are within 0.1%, errors due to their tolerances will be in the same range. All these circuits use a 3k3 feed resistor; I’ve not checked these equations with other values.
Await Part 2
We now have a basic circuit capable of decent performance, apart from its own tempco. The second part of this DI will fix that flaw, show some interesting variants – hence the plural in the title – and even add some bells and whistles. Think of this part as the theme, with Part 2 exploring the variations.
References
- Cornford, Nick. "DIY RTD for a DMM."
- Cornford, Nick. "Dropping a PRTD into a thermistor slot—impossible?."


