ESI SR104 10000 Ohm resistance standard review



After promising results from 1 Ω and 10 KΩ prototype lab resistance standard Fluke SL935, we had to have a test versus famous industry proven ESI (today IET) SR104. So here it is, right from eBay, ultimate resistance standard for the 10000 Ω. Every serious lab who care about accurate resistance measurement has one of these cute white boxes, due to high accuracy, excellent long-term stability and low temperature coefficients.


Redistribution and use of this article or any images or files referenced in it, in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of article must retain the above copyright notice, this list of conditions, link to this page ( and the following disclaimer.
  • Redistributions of files in binary form must reproduce the above copyright notice, this list of conditions, link to this page (, and the following disclaimer in the documentation and/or other materials provided with the distribution, for example Readme file.

All information posted here is hosted just for education purposes and provided AS IS. In no event shall the author, site, or IET or any other 3rd party be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of information published here.

If you willing to contribute or have interesting documentation to share regarding pressure measurements or metrology and electronics in general, you can do so by following these simple instructions.

Manuals and comparison to production standards

Comparison for known specifications of other resistance standards:

Specification Fluke SL935 Fluke 742A-1 Fluke 742A-10K ESI/IET SR104 IET SRL-1
Output resistance 1 Ω and 10 KΩ 1 Ω 10 KΩ 10 KΩ 1 Ω
Accuracy (1y) 60 ppm, 3 ppm ±2 ppm ±2 ppm ±1 ppm ±2 ppm
Temperature coefficient, ppm <0.05 ppm/°C, <0.05 ppm/°C ±3 ppm ±1.5 ppm <±0.1 ppm/°C ±3 ppm max (18-28°C)
Long term 1 year stability, ppm ? , ? ±8 ppm ±4 ppm ±0.5 ppm ±2 ppm
Max load current 100mA, 500µA 200 mA 600 µA 10 mA or 10 mW 418 mA
Construction type Hermetic Fluke film networks Precision wire-wound Wirewound resistor in oil tank Precision wire-wound
Active thermal compensation Yes, +35 °C oven assembly None Thermistor in oil tank None
Temperature sensor Yes, 100 KΩ thermistor No No Yes, 10 KΩ thermistor No
Power requirements AC mains or +12VDC 300mA Not required, passive device
Backup/offline power supply Internal 7.0 Ah +12V VRLA Not required, passive device
Dimensions, weight 86 × 105 × 127 mm, 910g 254 × 206 × 311 mm, 4.8kg 86 × 105 × 127 mm, 730g
MSRP N/A, Prototype $3600 USD $3600 USD $7147 USD $1974 USD

Table 1. Comparison of primary resistance standards specifications.

There are also other versions of SR10x resistors with other values.

Model Nominal value Accuracy Max voltage Max power
IET SR100 1 Ω ±10 ppm 0.100 V 10 mW
IET SR102 100 Ω ±1 ppm 1.000 V 10 mW
IET SR103 1000 Ω ±1 ppm 3.160 V 10 mW
IET SR104 10000 Ω ±1 ppm 10 V 10 mW

Table 2. SR10x series of resistance standards from IET.

Option Deleted Case (DC), such as SR-100/DC,SR-102/DC, SR-103/DC, SR-104/DC The deleted case (DC) option available from IET to allow use of SR10x-series for full immersion oil-bath operation. This version comes without the external case, but it retains the five-terminal connection to the resistor. When the standards are used in an oil bath, the resistance elements maintain a constant temperature, providing outstanding short-term stability, which is especially important when making Quantum Hall Effect measurements.

SR104 Design and construction

ESI SR10x series resistance standards are essentially box with ultra-stable resistive element, temperature sensor, all enclosed in sealed oil-filled metal can. Everything is embedded in nice wooden box (there is option from IET without wooden enclosure as well).

Image 1-3: ESI SR104 in condition as received.

It’s little dirty and peppered with stickers, but nothing criminal outside. ESI SR10x are mounted in a nice white wooden case, with a removable lid and carrying handle. Calibration and other standard data is attached to the inside of the lid, specific to each particular sample.

Image 4: ESI SR104 lid open. Lot of RAAF stickers and TR calibration sticker from 25 May 2016.

Open the removable lid, and we see earlier ESI metal faceplate with six 5-way binding post terminals for each standard resistor and precision RTD temperature sensor. The temperature sensor is mounted in the same oil-filled can as the special Evanohm wirewound standard resistor, and thus is at the same temperature.

There is additional thermometer well in the center to allow external calibration of RTD and standard. Each SR104 has also calibration report with measured data right on the lid. There is a temperature correction chart for traditional metrology scale +18 °C to +28 °C, as well the calibration value and correction calculation formula.

Image 5-6: Standard with lid removed. Rubber seal on the lid walls.

Lid have nice rubber gasket to keep inner volume sealed during the shipping. Overall build quality is very good, with attention to little detail like labels, wooden box finish. Whole thing feels quality, as expected for the money.

Image 7: ESI SR104 characterization label on the lid.

Deviation of this particular sample on sticker is 0.0 ppm, while actual certificate report from May 2016 reported value as 10000.0011 Ω, but uncertainty of that reading is mere ±1.0 ppm due to use Fluke 8508A-001 and other ESI SR104 as standard. We can only tell that it’s very close to labelled value, IF resistor stayed stable after shipping and unknown since last calibration.

Image 8: 5-way binding gold-plated tellurium-copper posts and metal nuts.

This resistor also have metal nuts for standard binding posts, as original ESI plastic nuts are very fragile and easy to break.

But I know what you come here for, a teardown. Well, not much of that will happen this time, as it is too pricey to sacrifice for simple curiosity. So teardown is just limited to removing top plate to take inner build concept, and no further.

Image 9-10: Lifting top plate to peek inside the box.

Four screws removed, and rather thick steel plate just lifts off, revealing a view over thick hard white foam holding stainless steel oil tank with actual resistor and RTD elements, two of trimming resistors in epoxy package and four cables connecting components to binding posts.

According to IET SR104 manual, standard’s resistance changes less than ±0.1 ppm with normal atmospheric pressure and humidity changes. Massive oil mass in steel tank also damper temperature change seen by resistance element by a lot. Manual specify thermal lagging time constant as 1 hour minimum. This also helps to avoid rapid stress to the precision wire in case of sudden ambient temperature change (practical example: move resistance standard from one building to another during frosty winter).

Image 11-12: Overview on internal connections to the oil tank.

Interesting to note shorts at both force and sense terminals at the binding posts. Usually resistance standards expected to have kelvin-type connection right to the resistive element to avoid resistance error from the connection cables and connectors, but it’s not the case here. So it is important to track and know exact current and connection configuration on which ESI SR104 was calibrated for best uncertainty.

Image 13: Terminations on the binding posts.

Oil tank marked with hand written serial number 726014. Compensation resistors are 0.38 Ω in black epoxy package with gold-plated copper terminals for standard resistance element and 19 Ω for RTD element. RTD and standard resistor are trimmed to same resistance.

Image 14: Oil tank sealed connections and trim epoxy resistors.


Image 15: ESI SR104 after cleaning and stickers removal.

Image 16: Gunk after cleaning the binding posts.

Image 17: Cleaned posts ready for operation.

Initial measurements

We were lucky to receive actual calibration data assigned to this ESI SR104. Calibration was performed in May 2016, just few years ago and this measured value will be used as check baseline. Once Fluke SL935 arrive back to our lab, it will be used to calibrate this SR104 to better uncertainty.

Image 18: Calibration certificate segment with measurement data.

Now time for direct connection to some lab 8½-digit meters for testing.

Image 19: Initial testing with ESI SR104 connected to Keysight 3458A pair.

All four used meters are calibrated within last two years, so we can also verify if my resistance accuracy still in ballpark of earlier estimated ±8 ppm.

Each multimeter data was fetched by simple python application, with help of linux-gpib and NI GPIB-USB-HS dongle
Data capture was done by Terasic DE1-SoC FPGA board.

Settings used for 3458A:

def init_inst_fres(self):
    # Setup HP 3458A
    self.inst.write("PRESET NORM")   # Preset meter to known state
    self.inst.write("OFORMAT ASCII") # ASCII format for data
    self.inst.write("OHMF 10E3")     # 10000 Ohm range
    self.inst.write("TARM HOLD")     # Single capture only
    self.inst.write("TRIG AUTO")     # Auto trigger
    self.inst.write("APER 1")        # 1 second aperture for ADC measurement 
    self.inst.write("AZERO ON")      # Use autozero
    self.inst.write("OCOMP ON")      # Use offset compensation
    self.inst.write("NRDGS 1,AUTO")  # Take only one reading
    self.inst.write("END ALWAYS")    
    self.inst.write("NDIG 9")        # Maximum resolution
    self.inst.write("DELAY 0")       # 2 second delay to mitigate OCOMP accuracy issue due DA

Image 20: ESI SR104 initial measurement over HP3458A-3.

Image 21: ESI SR104 initial measurement over HP3458A-2.

My second HP 3458A calibrated in January 2017 in USA by Todd, and used as 2017 DC & Ohm transfer to my lab first 3458A and Keithley 2002.

Now Keithley 2002 units:

Image 22: ESI SR104 initial measurement over Keithley 2002-4.

Image 23: ESI SR104 initial measurement over Keithley 2002-6.

Initial results are rather impressive, given any reasonable proper time (weeks) to possibly relax and stabilize from international shipping (you still see oil tank slowly cooling by black RTD element reading line) is already just -1.0 ppm off the value in 2016 calibration report (10000.0011 Ω ±1 ppm at +23.34 °C bottom of the well temperature).

Used DMM Calibrated Expected reference SR104 RTD Temp DMM reading Deviation DMM spec, 1 year
HP 3458A[2] January 2017, HFL spec 9999.9999 Ω +23.3 °C 9999.9853 -1.46 ppm ±8 ppm
HP 3458A[3] March 2017, 002 spec 9999.9989 Ω +23.8 °C 10000.0182 +1.93 ppm ±8 ppm
Keithley 2002[4] June 14, 2017 9999.9973 Ω +25.6 °C 9999.9482 -4.9 ppm ±9.8 ppm
Keithley 2002[6] April 8, 2017 9999.9978 Ω +25.3 °C 10000.0125 +1.5 ppm ±9.8 ppm

Table 3. Initial resistance check summary, April 2018

Observed difference on both 3458A’s is well with agreement (<1 ppm!) from my earlier comparison experiment to November 2017 calibration data from Fluke SL935, giving good confidence that both of my Keysight 3458A still good and stable.

HP 3458A, meter 1 over 10 KΩ, direct 4-wire, OCOMP ON, DELAY 3, NPLC100 = 9999.985 Ω, +25 °C ambient, 20 May 2017. Error from PI value : +1.03 ppm
HP 3458A, meter 2 over 10 KΩ, direct 4-wire, OCOMP ON, DELAY 3, NPLC100 = 9999.965 Ω, +24.5 °C ambient, 25 Sept – 28 Sept 2017. Error from PI value : -0.97 ppm

Live temperature corrected standard resistance calculator

The temperature correction chart in the lid of the each SR104 unit is helpful to correct the resistance of the standard resistor for different ambient temperature effects. We added interactive real-time calculator for this article to aid with the calculation. Just fill in blue boxes from your SR104 lid information and enjoy the calculated value of expected resistance in green box.

RSTD = 10000 Ω + (( (α × ΔTEMP) + (β × ΔTEMP2) + RSTD_DEV) × 10000 Ω / 1-6) Ω

Here’s realtime calculator that accept resistor parameters from lid certificate to provide temperature-corrected output resistance at arbitrary environment temperature. Just enter α, β, STD deviation and desired temperature:

Alpha α +23 °C ppm/°C
Beta β +23 °C ppm/(°C)2
RSTD deviation +23 °C ppm
Temperature to recalculate at °C

Standard Resistance output : Ω, ppm from ideal 10 KΩ

This resistance value may be used as given at +23°C, if the change in resistance for the temperature range to be encountered is acceptable. For example, temperature variations less than ±2 °C from a nominal +23 °C would result in a worst case resistance deviation less than -0.3 ppm. If this is an acceptable, then no temperature correction is required.

Here is also python application to calculate resistance relations if you prefer to play with numbers more.

import sys

# Constants from SR104 resistor lid
ALPHA    = -0.03  # Alpha value at +23c
BETA     = -0.028 # Beta value
R_DEV    = 0.0    # Deviation value for standard resistor
TEMP_DEV = 0.004  # Deviation value for RT
STEP     = 0.5    # Step to go thru temperature points in mode 2
#count = 0

def show_r(temp, rsi):
    f = 0
    delta = temp - 23.0
    ppm = 0.0 + (ALPHA * delta) + (BETA * delta * delta)
    r = 10000.0 + ((ppm+R_DEV) * 10000.0 / 1000000.0)
    f = (temp * 9.0 / 5.0) + 32.0
    print ("temp = %5.2fC / %5.2fF Rstd = %12.5f Ohms, %3.3f ppm\n" % (temp,f, r, R_DEV+ppm ) ),
    return r

print "-- RComp | ESI SR104 correction calculator -- \n--  Rev.1 Apr 2018           --"
print "R deviation = %.4f ppm    T deviation = %.4f%%\n" % (R_DEV, TEMP_DEV),
print "Alpha = %.4f ppm/C       Beta = %.4f ppm/C/C\n" % (ALPHA, BETA)

mode = int(raw_input("Enter 1 to calculate Rstd at Rrtd or Enter 2 for table curve generate"))
if (mode == 1):
    rt = float(raw_input("Room Temp: "))
    rs = float(raw_input("Standard resistance: "))
    rs = 10000.0 + (R_DEV * 10000.0 / 1000000.0)
    print "Rt=%f  Rs=%f\n" % (rt, rs)
    r = (rt - rs) * 100.0 / 10000.0
    r = r - TEMP_DEV
    r = r * 10.0
    temp = r + 23.0
    show_r(temp, 10000)
elif (mode == 2):
    count = int(10 / STEP);
    for ix in range (0,count+1):
        temp = float(18 + ix * STEP)
        show_r(temp, 10000)

Example prinout of python program shown below:

# python ./
-- RComp | ESI SR104 correction calculator --
--  Rev.1 Apr 2018           --
R deviation = 0.0000 ppm    T deviation = 0.0040%
Alpha = -0.0300 ppm/C       Beta = -0.0280 ppm/C/C

Enter 1 to calculate Rstd at Rrtd or Enter 2 for table curve generate2
temp = 18.00C / 64.40F Rstd =   9999.99450 Ohms, -0.550 ppm
temp = 18.50C / 65.30F Rstd =   9999.99568 Ohms, -0.432 ppm
temp = 19.00C / 66.20F Rstd =   9999.99672 Ohms, -0.328 ppm
temp = 19.50C / 67.10F Rstd =   9999.99762 Ohms, -0.238 ppm
temp = 20.00C / 68.00F Rstd =   9999.99838 Ohms, -0.162 ppm
temp = 20.50C / 68.90F Rstd =   9999.99900 Ohms, -0.100 ppm
temp = 21.00C / 69.80F Rstd =   9999.99948 Ohms, -0.052 ppm
temp = 21.50C / 70.70F Rstd =   9999.99982 Ohms, -0.018 ppm
temp = 22.00C / 71.60F Rstd =  10000.00002 Ohms, 0.002 ppm
temp = 22.50C / 72.50F Rstd =  10000.00008 Ohms, 0.008 ppm
temp = 23.00C / 73.40F Rstd =  10000.00000 Ohms, 0.000 ppm
temp = 23.50C / 74.30F Rstd =   9999.99978 Ohms, -0.022 ppm
temp = 24.00C / 75.20F Rstd =   9999.99942 Ohms, -0.058 ppm
temp = 24.50C / 76.10F Rstd =   9999.99892 Ohms, -0.108 ppm
temp = 25.00C / 77.00F Rstd =   9999.99828 Ohms, -0.172 ppm
temp = 25.50C / 77.90F Rstd =   9999.99750 Ohms, -0.250 ppm
temp = 26.00C / 78.80F Rstd =   9999.99658 Ohms, -0.342 ppm
temp = 26.50C / 79.70F Rstd =   9999.99552 Ohms, -0.448 ppm
temp = 27.00C / 80.60F Rstd =   9999.99432 Ohms, -0.568 ppm
temp = 27.50C / 81.50F Rstd =   9999.99298 Ohms, -0.702 ppm
temp = 28.00C / 82.40F Rstd =   9999.99150 Ohms, -0.850 ppm

Be sure to update constants ALPHA, BETA, R_DEV, TEMP_DEV to match your SR104 standard lid information before use.

I have compiled few known ESI SR104 and our ovenized Fluke SL935 temperature stability data together into pretty Excel chart:

Image 24: ESI SR104 versus ovenized FSL935 in temperature coefficient from +18°C to +28°C. Click for Excel file.

Stability study of SR104 and other resistance standards

Annual drift of this ESI SR104 will be known only after few years of continuous and periodic sub-ppm accuracy level calibration. But online EEVBlog and forums member zlymex did very neat compilation of annual drift results on twelve ESI SR104 standards:

%(imgref)Image 25: Annual drift estimate of 12 (twelve!) ESI SR104. Compiled by zlymex

Temperature stability measurements

Second ESI SR104 was also received for interlab transfers between NJ and FL xDevs labs.

Standard was shipped in Pelican Cube 0340 foamed hardcase, to ensure minimal stress and shocks to sensitive standard. Externally standard is missing original handle. Instead it has just rusty metal strap attached.

This unit is 20 years older than primary SR104 covered above, manufactured and calibrated on August 29, 1969. That is 52 years ago, to be exact!

To monitor the environment condition during shipping transit standard was bundled together with inexpensive AZ 88163 THP USB datalogger. This datalogger store temperature, humidity and pressure readings from internal sensors into memory. Data can be further exported to CSV or PDF report when plugged into computer USB A port.

Measurements performed in our new large TEC-driven air bath chamber . Both SR104s were placed in chamber and wired to external Datron 1281 8½-digit multimeter . 3rd check standard (Fluke SL935) used as the verification source to ensure that Datron 1281 does not have stability or thermal coefficient issues on its own. All three used inputs on Datron 1281 were calibrated and corrected to obtain same reading to allow good resistance transfers with 3 standards.

Test run was automated using’s Python app TECKIT and Keysight E5810A GPIB interface . Initial temperature in airbath was set to +18 °C then temperature was slowly increased to +23 °C where it was kept for 4 hours. Next temperature ramped to peak +28 °C to hold for 8 hours. Then thermal slope was reversed and final temperature +18 °C was obtained again. Temperature slope speed was fixed at 0.00694 °C/minute. Settings used for TECKIT are:

sv_start            = 18.000     ; Chamber start temperature
sv_end              = 18.000     ; Chamber end temperature
peak_temp           = 28.000     ; Top soak temperature
delay_start         = 0          ; Delay before any operation start, seconds
slope               = 24         ; Hours, Time for slope (symmetric positive/negative) ramp
time_start          = 12         ; Hours, Initial hold temperature time, before positive slope starts
time_dwell          = 4          ; Hours, Dwell temperature duration time at peak-start/2 temperatures
time_hold           = 8          ; Hours, Hold temperature duration time once reached peak_temp
time_end            = 12         ; Hours, Final temperature duration once rampdown finished
slope_shape         = lymex_step ; Advanced shape type, lymex_step = soak time_start in middle of the ramps

Results are pretty good. First we can notice relatively large amount of noise due to DMM internal current source and low voltage amplifier noise. Overall noise is about 0.3 ppm peak to peak. There is also slight hysteresis, which suggests that wirewound resistive element inside ESI SR104 may require some longer time to recover after 10 °C excursion. This test took 89 hours. Mostly such long time is due to large mass of the oil in SR104’s tank. Such mass caused long thermal delay around 9 hours during the test.

First we can check green reference SR104 data. It was last calibrated year ago by PI on 3/17/2020. Standard was assigned with value 10000.0041 Ω at test current 300 µA with uncertainty ±0.15 ppm, but I have low confidence in this result, as previous history on this standard and our own measurement transfers suggest value around 10000.0026 Ω ±0.2 ppm instead. This standard will be recalibrated by high-end resistance laboratory in coming months and we can repeat measurements to obtain fresh traceable resistance reference at’s lab.

Back to results. Obtained measurement at temperature point +23 °C equals 10000.0001 Ω ±0.3ppm. Temperature coefficient from lid factory certificate is outlined on a plot with label “Fab α” and “Fab β” values. Measured and calculated α and β shown in bold font. Reference SR104 (green color on plot) have opposite sign α value but β match almost exactly.

52 year old ESI SR104 under test (“DUT” label and plot in brown color) has deviation from nominal +3.81 ppm (assigned 10000.0381 Ω ±0.85 ppm new value). Measured and calculated α temperature coefficient value is slightly lower than factory (+0.056 ppm/°C vs +0.070 ppm/°C). β is almost exact match here as well. This standard will be also shipped for fresh calibration.

Summary & Conclusion

Cost breakdown for this project presented below:

Item Cost Shipping Supplier
ESI SR104 resistance standard $1528 $215 eBay
Total so far $1743 USD

Table 4. Costs summary

Given the performance and level of this resistance standard, condition and calibration data from 2016 total cost sounds reasonable. This SR104 will act as main lab reference after its own calibration and comparison versus Fluke SL935, which received second calibration in April 2018. SR104 will help to maintain lab resistance calibration accuracy and stability as artifact for 8½-digit DMMs and calibrators verification.

Resistance measurements at ppm-level accuracy can be tricky business, and ESI SR104 is a great tool to aid lower uncertainties. After getting some initial data during next few months, we plan to send SR104 for comparisons with other calibrated SR104. After doing this procedure for few years, we will eventually come up with annual stability/drift figures. Hopefully will know this primary 10000 Ω resistance stability by 2020.

Until then, stay tuned and let us know your feedback! Discussion about this article and related stuff is welcome in comment section or at our own IRC chat server: (standard port 6667, channel: Web-interface for access mirrored on this page.

Author: Illya Tsemenko
Published: April 4, 2018, 4:43 p.m.
Modified: April 10, 2021, 6:22 a.m.