# First calibration test

A project log for Programmable Precision Resistor

A SCPI programmable precision resistor

In one of the previous logs I covered in depth, how I use the term “calibration” in the context of the programmable decade resistor and how the calibration procedure works. Now it's time for an initial test of the calibration procedure. To automate the calibration I wrote a little Python script that interfaces with the programmable resistor as well as the multimeter (Agilent 34401A) via PyVISA and SCPI commands.

Automated calibration procedure using SCPI commands

The result table shows a selection of calibration points for the 4 wire mode. It has the following columns:

• Applied value: Value applied to the input for checking the calibration
• Calculated value: Estimation of the actual resistance, based on the previous “adjustment” procedure
• Ind. value: Indicated value/Measurement taken with an Agilent 34401A 6.5 digit multimeter
• Min: Minimum value according to initial accuracy goals
• Max: Maximum value according to initial accuracy goals
• Dev.: Deviation between indicated value and applied value in percent
• Dev. Calc. to Ind.: Deviation between calculated value based on the calibration constants and the indicated value
Applied value (Ω)Calculated value (Ω)Ind. value (Ω)Min (Ω)Max (Ω)Dev. (%)Dev. Calc. to Ind. (%)
00.0790.0700.0000.300-11.5278
11.0621.0520.9951.3055.2383-0.9056
22.0802.0741.9902.3103.7170-0.2721
1010.12210.1089.9510.351.0764-0.1418
100100.074100.06199.5100.80.0609-0.0131
1k1000.2001000.1619951005.30.0161-0.0039
10k9999.0139998.949995010050.3-0.0105-0.0006
100k100000.33999999.99499500100500.30.0000-0.0003
900k900000.234900018.830895500904500.30.00210.0021

As expected, the programmable decade resistor stays well within the initial goal of << 0.5% of value + 0.3 Ω. That, however, was a pretty low bar. At the upper end, the performance is fairly impressive and showed how well the algorithm described in this post actually works. Also, the estimation of the actual resistance (that is also shown on the display) is very close to the measured value.

At the lower end, however, there is some significant deviation, mostly caused by the relay contact resistances, trace resistance and so on.

## Next steps

Before doing a proper full calibration and presenting the final results in a more user-friendly form, let's do a small hardware optimization of the design.