.. enough to be detected - though there should at least be room for the +-4 µV typical popcorn steps to be inside the accepted range.
In my experience the ADR1399 does not exhibit popcorn noise when used properly.
(...) Once I've replaced them by selected ADR1399 (...)
grouping_optimizer.py 8 6.932 6.939 6.9155 6.8915 6.905 6.909 6.936 6.943 6.9355 6.9355 6.933 6.943
Average value 6.93712
Error sum 3928.14
Average error 491.02 ppm
With these elements and corresponding errors:
(6.932, 6.939, 6.936, 6.943, 6.9355, 6.9355, 6.933, 6.943)
['-738.78', '270.28', '-162.17', '846.89', '-234.25', '-234.25', '-594.63', '846.89']
It can also be asked for a specific target value as well:grouping_optimizer.py 8 6.932 6.939 6.9155 6.8915 6.905 6.909 6.936 6.943 6.9355 6.9355 6.933 6.943 --target 6.918
Average value 6.92519
Error sum 15394.62
Average error 1924.33 ppm
With these elements and corresponding errors:
(6.932, 6.9155, 6.905, 6.909, 6.936, 6.9355, 6.9355, 6.933)
['2023.71', '-361.38', '-1879.16', '-1300.95', '2601.91', '2529.63', '2529.63', '2168.26']
As you can see, this one works happily with multiple elements of the same value. It can also show the iterations and handle priority elements much like the resistor divider ratio optimizer.Real Time Clock
The real time clock functions are generated within IC102 (2720-084 or 2720-071). This is a CMOS IC supplied from the supply labelled "+B" on the schematic, this is generated either from the battery or from the +5V supply whichever is higher. This selection is performed by the diodes D2 and 3 with C3 providing a smooth transition during changes in the power supply.
The real time clock is provided with a 32.768KHz reference clock by the crystal Y1 and is adjusted by means of C8 (the 32.768KHz should be monitored between TP1 and TP2 (GND)).
0 through 7 - Reference 1 through 8 voltage at the time of the latest calibration (in volts).
+6.94570030
+6.94534459
+6.93843745
+6.94167089
+6.93890978
+6.93802343
+6.93563261
+6.93402463
8 - Reference Divider ratio (divider used for 0.65V, 1.3V, 650mV and 1300mV ranges). The data in nominally 100% and is the data at the time of the latest 1V external calibration.
+099.987381
9 - Nullmeter scaling coefficient (1.073% nominal)
+000.003951
10 - Nullmeter high range zero offset (1.19% nominal)
+000.004493
11 - External reference scaling coefficient (14.39/100/143.9% nominal for the EXR1/7/10 respectively).
12, 13 - Internal DVM. scaling and zero coefficients respectively (0.119% and 0.085% nominal resp.)
+000.000221
+000.000154
14, 15 - Internal ammeter zero and scaling resp. (0.119% and 0.098% nominal resp.)
+000.000226
+000.000183
16 - Reference averaging coefficient (100% nominal)
+100.000320
17 - 2:1 sense buffer scaling (for 1300mV,1.3V,13V,26V,130V and 1200V ranges) (100% nominal)
+099.998918
18 - 2:1 sense attenuator scaling (for 26V range) (100% nominal)
+100.001274
19, 20 - 10:1 and 100:1 sense attenuator scaling resp. (100% nominal)
+099.993863
+100.003231
21 - Negative polarity DtoA convertor offset (0% nominal)
+000.000000
22 through 32 - 650mV, 1300mV, 0.65V, 1.3V, 6.5V, 13V, 26V, 65V, 130V, 600V and 1200V range zero offsets in voltage units
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+0.00000000
33, 35, 37, 39, 41 - Voltages of reference 1 at the times of previous calibrations (earliest to latest but one resp.)
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
34, 36, 38, 40, 42 - As above for reference 2
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
43, 45, 47 ,49, 51 - As above for reference 3
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
44, 46, 48, 50, 52 - As above for reference 4
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
53, 55, 57, 59, 61 - As above for reference 5
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
54, 56, 58, 60, 62 - As above for reference 6
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
63, 65, 67, 69, 71 - As above for reference 7
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
64, 66, 68, 70, 72 - As above for reference 8
+0.00000000
+0.00000000
+0.00000000
+0.00000000
+6.95000000
73 through 77 - Reference Divider ratios at the time of previous calibrations (earliest through latest but one resp.)
+000.000000
+000.000000
+000.000000
+000.000000
+100.000000
78 - User set Nullmeter zero offset (by SET ZERO command) in volts.
+0.00000000
79 through 86 - Presently measured reference voltages (as obtained by the OBRMS system) in volts
+6.94570657
+6.94533921
+6.93843947
+6.94166848
+6.93891909
+6.93802837
+6.93563030
+6.93401944
87 - Presently measured reference averaging system error (as obtained by the OBRMS system) in %
+100.000307
From what I can observe the output noise is mostly dominated by varying low frequencies of the oven controls, not by the noise of the references, the DAC or the output stage, which is limiting the performany. Every now and then one of the controls kick in and ruin the output voltage with low frequency oscillations. Not sure how to improve on that. Thermal insulation?
Do you know if the interference is thermal (temperature fluctuations) or electric (e.g. the oven controller modulating the voltage rails)?
As far as i understand the original circuit would work in on-off mode like a common refrigerator. Adding a capacitor into it makes it an I-controller. In general it would still not be stable until you also add a P-term for damping. Only then you get the desired PI-controller.