TestBench.tools
GitHub

PT100 / PT1000 Calculator

RTD resistance ↔ temperature per IEC 60751 (Callendar-Van Dusen).

R(T) = R0·(1 + A·T + B·T²)
A = 3.9083×10⁻³ · B = −5.775×10⁻⁷

Resistance
138.5055 Ω

This tool converts platinum RTD resistance to temperature and back for PT100 and PT1000 sensors, using the IEC 60751 Callendar-Van Dusen equation over 0…850 °C, and lists the resistance table both sensors follow. Reference points: 100 °C ↔ 138.5055 Ω on a PT100 and 1385.055 Ω on a PT1000; a measured 108.5 Ω ↔ 21.8189 °C.

How it works

Platinum resistance rises almost — but not exactly — linearly with temperature. IEC 60751 captures the curvature with R(T) = R0·(1 + A·T + B·T²) for T ≥ 0 °C, where A = 3.9083×10⁻³ and B = −5.775×10⁻⁷. Because that is a quadratic in T, the reverse direction has a closed-form solution via the quadratic formula — this calculator uses it directly, so resistance → temperature → resistance round-trips to within 10⁻⁵ Ω.

The negative branch of the standard (with its additional C coefficient) is intentionally not implemented; out-of-range inputs are refused with the supported range stated.

Worked example

PT100 · T = 100 °C
R = 100 × (1 + 3.9083×10⁻³·100 − 5.775×10⁻⁷·100²)
  = 138.5055 Ω

measured R = 108.5 Ω → T = 21.8189 °C

A PT1000 runs through the identical steps with R0 = 1000 Ω — the coefficients never change, only the scale:

PT1000 · T = 100 °C
R = 1000 × (1 + 3.9083×10⁻³·100 − 5.775×10⁻⁷·100²)
  = 1385.055 Ω

measured R = 1200 Ω → T = 51.566 °C

PT100 / PT1000 resistance table

The rows below are the Callendar-Van Dusen equation evaluated at common temperatures — the same numbers the calculator above returns, rounded to three decimals. Because R0 is the only difference between the two sensors, the PT1000 column is exactly ten times the PT100 column at every temperature; a PT1000 therefore also changes about 3.9 Ω per °C near room temperature against a PT100's 0.39 Ω. That ratio is why 2-wire wiring hurts a PT1000 far less: one ohm of lead resistance is an error of roughly 2.6 °C on a PT100 but only 0.26 °C on a PT1000.

ParameterValueNotes
0 °C1000.000 ΩPT100 · 100.000 Ω
10 °C1039.025 ΩPT100 · 103.903 Ω
20 °C1077.935 ΩPT100 · 107.794 Ω
25 °C1097.347 ΩPT100 · 109.735 Ω
50 °C1193.971 ΩPT100 · 119.397 Ω
100 °C1385.055 ΩPT100 · 138.506 Ω
150 °C1573.251 ΩPT100 · 157.325 Ω
200 °C1758.560 ΩPT100 · 175.856 Ω
250 °C1940.981 ΩPT100 · 194.098 Ω
300 °C2120.515 ΩPT100 · 212.052 Ω
400 °C2470.920 ΩPT100 · 247.092 Ω
500 °C2809.775 ΩPT100 · 280.978 Ω
600 °C3137.080 ΩPT100 · 313.708 Ω
700 °C3452.835 ΩPT100 · 345.284 Ω
800 °C3757.040 ΩPT100 · 375.704 Ω
850 °C3904.811 ΩPT100 · 390.481 Ω

The spacing between rows narrows as temperature rises: a PT1000 gains 39.025 Ω over the first 10 °C but only 29.323 Ω between 840 and 850 °C. That shrinkage is the B·T² term, and it is what a straight-line approximation throws away — invert a pure R = R0(1 + A·T) line and a sensor actually sitting at 400 °C (2470.920 Ω) reads back as about 376 °C, some 24 °C low. Values below 0 °C are deliberately absent: that branch of IEC 60751 adds a C coefficient and is not implemented here.

PT100 resistance at 10 °C steps (0–200 °C)

The table above jumps in 50 and 100 °C strides once it clears 100 °C, which is the wrong grain for the band most PT100 sensors actually sit in. Below is the same IEC 60751 equation at every 10 °C from 0 to 200 °C, PT100 first — so a reading taken at, say, 30 °C resolves to 111.673 Ω without interpolating between rows.

ParameterValueNotes
0 °C100.000 ΩPT1000 · 1000.000 Ω
10 °C103.903 ΩPT1000 · 1039.025 Ω
20 °C107.794 ΩPT1000 · 1077.935 Ω
30 °C111.673 ΩPT1000 · 1116.729 Ω
40 °C115.541 ΩPT1000 · 1155.408 Ω
50 °C119.397 ΩPT1000 · 1193.971 Ω
60 °C123.242 ΩPT1000 · 1232.419 Ω
70 °C127.075 ΩPT1000 · 1270.751 Ω
80 °C130.897 ΩPT1000 · 1308.968 Ω
90 °C134.707 ΩPT1000 · 1347.069 Ω
100 °C138.506 ΩPT1000 · 1385.055 Ω
110 °C142.293 ΩPT1000 · 1422.925 Ω
120 °C146.068 ΩPT1000 · 1460.680 Ω
130 °C149.832 ΩPT1000 · 1498.316 Ω
140 °C153.584 ΩPT1000 · 1535.843 Ω
150 °C157.325 ΩPT1000 · 1573.251 Ω
160 °C161.054 ΩPT1000 · 1610.544 Ω
170 °C164.772 ΩPT1000 · 1647.721 Ω
180 °C168.478 ΩPT1000 · 1684.783 Ω
190 °C172.173 ΩPT1000 · 1721.729 Ω
200 °C175.856 ΩPT1000 · 1758.560 Ω

Read down the PT100 column and the per-decade step falls from 3.903 Ω over the first 10 °C to 3.683 Ω over the last — a 5.6 % drop in sensitivity across the range, which is the whole reason the standard carries a B·T² term instead of a single slope. The rows at 20, 50, 100, 150 and 200 °C are the same values as in the 0–850 °C table above; they are listed twice on purpose so each table stands on its own.

Parameters

ParameterValueNotes
StandardIEC 60751Callendar-Van Dusen
A3.9083 × 10⁻³ °C⁻¹
B−5.775 × 10⁻⁷ °C⁻²
R0100 Ω (PT100) / 1000 Ω (PT1000)
Range0 … 850 °CT < 0 branch (C term) not implemented

Python implementation

Python
# IEC 60751 Callendar-Van Dusen, T >= 0 °C
A, B = 3.9083e-3, -5.775e-7

def rtd_resistance(t, r0=100.0):
    return r0 * (1 + A*t + B*t*t)

def rtd_temperature(r, r0=100.0):
    return (-A + ((A*A - 4*B*(1 - r/r0)) ** 0.5)) / (2*B)

assert abs(rtd_resistance(100) - 138.5055) < 1e-3
assert abs(rtd_temperature(108.5) - 21.8189) < 1e-3

FAQ

▸Which equation and coefficients are used?

The IEC 60751 Callendar-Van Dusen equation for T ≥ 0 °C: R(T) = R0·(1 + A·T + B·T²), with A = 3.9083×10⁻³ and B = −5.775×10⁻⁷. Temperature from resistance is the exact quadratic inverse, not a lookup-table approximation.

▸Why is the range limited to 0…850 °C?

Below 0 °C the standard adds a C-term quartic, a different equation branch that this calculator does not yet implement. Above 850 °C is outside the IEC 60751 platinum range. Inputs outside the supported range are rejected explicitly rather than silently extrapolated.

▸What is the difference between PT100 and PT1000?

Only R0, the resistance at 0 °C: 100 Ω versus 1000 Ω. The temperature coefficients are identical, so a PT1000 reads exactly ten times the resistance of a PT100 at every temperature — 1385.055 Ω instead of 138.5055 Ω at 100 °C.

▸What resistance does a PT1000 read at 25 °C?

1097.347 Ω — and a PT100 reads 109.735 Ω at the same temperature. Both come from the same equation: 1000·(1 + 3.9083×10⁻³·25 − 5.775×10⁻⁷·25²). The table on this page lists the common points from 0 to 850 °C.

▸What is the resistance of a PT100 at 30 °C per IEC 60751?

111.673 Ω, and a PT1000 reads 1116.729 Ω. Both are 100·(1 + 3.9083×10⁻³·30 − 5.775×10⁻⁷·30²) scaled by R0. The 10 °C-step table on this page covers 0 to 200 °C for lookups like this; the calculator above takes any temperature in between.

▸Where do the numbers in a PT1000 resistance table come from?

They are not measured values — every published table is the Callendar-Van Dusen equation evaluated at fixed temperature steps. That is why a PT1000 table is the PT100 table times ten, and why this page computes the points instead of shipping a lookup file: the calculator above gives any temperature between the rows.

▸My meter shows 108.5 Ω on a PT100 — what temperature is that?

21.8189 °C. A handy field rule: near room temperature a PT100 changes by roughly 0.39 Ω per °C, so 108.5 Ω sits about 22 °C above the 100 Ω ice point — the exact quadratic confirms it.

▸Is my data uploaded?

No. The equation is evaluated locally in your browser.

Related tools