3458A Worklog - Page 1
Forum section: electronics / general

author: MiDi
author_rank: Frequent Contributor
timestamp: January 07, 2019, 01:41:27 am
content: This unit is equipped with option 002 and was received with "RAM TEST 1 LOW" error.It was first powered up on Nov 24th, on Dec 1st it was taken apart for further inspection and cleaning.Besides a bit of dust on fan & filter it looked as it came straight out of factory.The datecodes on the ics reveales a manufacturing date from late '89 to early '90.Remarkable that the calram still seems to be in good condition and maintaining caldata after nearly 30 years.Obviously it is high time for replacement of the 3 Dallas NVSRAMs - to save the calram a Linux-Tool for GPIB was used.Next thing to check was heart of instrument: condition of adc (A3-board)Manual data for cal 72 & 175 was captured between Nov 26th and Dec 9th, since then the acal dc data was captured by script every 5min.The first two weeks were not promising: theSN18A checkrevealed drift of > 0.43ppm/day.It appeared to become a member of A3-sickness club, but fortunately the drift went down to sub 0.01ppm/day for last weekThe adc shows a TC of ~0.33ppm, that is below the stated0.4ppm in HP Journal p. 13.This seems to be in spec and shows why it is a good idea to do regular acal for precision measurements even in the 10V range - if the lab temperature is not rock stable (which home lab is?).In conclusion the adc seems to be in reasonable condition after a month of settling and ~8ppm total drift.In the meantime nvsram, caps and mains filter were ordered.Late on Dec 27th it went down for replacement of nvsrams and update to latest FW.This took a bit longer than estimated - as it revealed that uv light for e.g. developing pcbs (UVB) is not good for erasing eproms (UVC), but after 24h exposure all bits where cleared and newest FW version 9.2 could be programmed successfully.After this the device turned on and showed a convergence error once, after reset everything was fine and on several power cycles no error came up anymore.Things to do:-ordering special caps (radial 8200µF & big 15mF) and fan-replacement of electrolytics, mains filter & fan-investigate input leakage, noise, stability, TC etc.probably: reduce LTZ1000 temperature set point with parallel 100k to reduce drift even moreEDIT 2019-05-21 (moved table from second to first post):Overview of replaced parts:A4 - inguard power supplypart #descriptionpitch manufacturerreplacementmanufacturerC07, C082,200µF 35V 85°C 18x35mm SMC7.5Nippon Chemi-Con2,200µF 35V 105°C 16x25mm FR Type APanasonicC0915,000µF 16V 85°C 35x26mm SME10Nippon Chemi-Con18,000µF16V 105°C 30x30mm LGUNichiconC1722µF 50V 85°C 10x11mm 513D3,5Sprague22µF 50V 105°C 5x11mm FR Type APanasonicA5 - outguard controllerpart #descriptionpitch manufacturerreplacementmanufacturerU121, U122DS1235YW-150 NVSRAM28PDallasDS1230Y-120+ on precision socketMaximU132DS1220Y-150 NVSRAM24PDallasDS1220AD-150+ on precision socketMaximA6 - outguard power supplypart #descriptionpitch manufacturerreplacementmanufacturerC1, C11680uF 50V 85°C 16x22mm SXE7.5Nippon Chemi-Con680µF 63V 105°C 16x25mm LXZ(max 25mm - height limited by case)Europe Chemi-ConC88,300µF 35V 85°C 25x67mm 53D70Sprague10,000µF35V 85°C 25x61mm TVXNichiconC200, C20147µF 63V 85°C 8x15mm SME3,5Nippon Chemi-Con47µF 63V 105°C 8x11,5mm EB Type APanasonicC202330µF 25V 85°C 10x16mm SME5Nippon Chemi-Con330µF 25V 105°C 8x11,5mm FR Type APanasonicC203220µF 16V 85°C 8x15mm SME3,5Nippon Chemi-Con220µF 35V 105°C 8x11,5mm FR Type APanasonicC15, C162.2nF 250V~ Y2 40/085/56 3,5x13x7mm PME 27110RIFA2.2nF 300V~ Y2 55/105/56 4x13x9,5mm MKPWIMACasepart #descriptionpitch manufacturerreplacementmanufacturerFan60x60x25mm 12V 0.7Wpowered with 15VPapst60x60x25mm 24V 2.88W 109R0624D4011 (12-27.6V)Sanyo DenkiMains Filter3A 47nF 2x750µH FN 32340Schaffner6A47nF 2x800µHKFSSchurter

author: MiDi
author_rank: Frequent Contributor
timestamp: January 07, 2019, 01:41:57 am
content: On January, 25th the unit went down for another refurbishment.It was planned to replace the caps, mains filter and fan, but only caps were replaced for now - explanation below.There is an overview awailable at bottom with all original and replacement parts that were used - it can be easy copied to favorite spreadsheet program.Replacing all electrolytic capacitors was straight forward and there were no surprises.A thick copper wire was used to desolder both pins of the caps at the same time - desolder guns are overrated.The old caps were quite in good condition as a quick check with LCR-tester revealed.Just a bit more ESR and loss than replacements - would be nothing to worry about for now, but worth replacement for a couple of bucks for good sleep next years.A4 C09 & A6 C8 were replaced with next higher value available for best fit - as these caps have wide tolerance, a bit more capacitance would not do any harm.The hidden yellow C17 on A4 was missed, but will be replaced next time.The visual check on A6 catched attention on the two 2.2nF Y caps C15, C16 near mains fuse, they look cracked like spider app.They were dropped for now and are replaced next time - there are already Y caps in mains filter, so this should not be an issue.Mains filter from Schaffner has no good reputationdue to several fails, so better to replace it.It was decided to do it with remaining things next time, as it would be good idea to drill the rivets with closed case from outside to keep the chips out.Afterwards the case has to be opened again for replacement and all remaining work will be done in one step next time.The fan introduced quite some vibrations and has this annoying metal sound similar to old noisy hard drives.It is supplied with unusual 15V and it was intended to be replaced with 24V type that is rated down to 12V.When comparing both fans it seems that the chosen one would be reasonable with similar current draw and airflow.As it turned out there is no standardfor the pitch(corrected: the pitch is same) and size for mounting holes of "standard" fans and the screws did hold the replacement fan only slightly.It is a bit quieter and introduces no significant vibration, but a slightly mounted fan seems no good idea.For now there came no option to mind how to solve this, but it was not intended to put the old fan back without any improvement.There was fitted a bend copper wire into the slots for balancing and after some fiddling the best position and weight was found to minimize introduced vibration.Maybe it will be replaced in future...Another odd thing is a bend top cap for LTZ1000.Not shure if this is critical and should be fixed, any recommendation?ADC-Drift test is going on and gave unpleasant surprises, although it is still in spec.EDIT 2019-05-21: Moved Replacement table to first post.

author: MiDi
author_rank: Frequent Contributor
timestamp: January 07, 2019, 01:42:28 am
content: Time for the last episode: Mains Filter & FanThe unit went down on April 27th for the remaining replacements (list of parts updated & finalized).Drilling the rivets of the mains filter was a bit harder than thought -my HP3457Adid not struggle that much.After lots of chips and a bit of brute force it was released from its former job and replaced with new Schurter type.The new one is a bit longer, but no problem to fit it in its place.The RIFA MP Y-Caps on board were removed last time and now refitted with WIMA MKP (see attached picture).Interestingly the time did not improve on size of this types (compared to electrolytic ones), the new ones are thicker and higher - this gives confidence, that they will last long after me.For the problem with the new fan and its bigger screw holes a simple solution has been elaborated.Fill them with epoxy (e.g. J-B Weld) and after curing drill them to size of holes from original fan.(the spacings are identical, corrected statement in former post - I obviously squinted asthe picture already showed this)Although J-B Weld ist tought to be the strongest epoxy, it did not stick enough on cleaned, but unprepared holes when screwing itAfter filing the inside of the holes to roughen them a bit, the procedure was repeated with success.The new fan is not significantly quieter, but the annoying metal scratching sound has gone now.I decided to fix the bend cap - just to be safe - but it defended to go into its intended form.Heating multiple times to finally ~200°C and bending it with quite some force to its desired shape, it bended back again after cooling downSanding with 600 grid finally it gave up and went flat (picture of assembly of both capsand ref-board attached).Before:After:Last thing was to replace overlooked 22uF yellow cap - just a mere formality (see attached picture).Hopefully all the sweat comes to a happy end and unit is now in good condition.The ADC drift actually settled to ~0.035 ppm/day for 3 weeks now, before it stayed at ~0.05ppm/day for two months.The "noise" generated by acal dc is around 0.1ppm-pp according to cal 72, from this point an acal on my unit would be sufficient every 3 days.With ~0.33ppm TC of ADC this becomes the mayor drive to perform an acal - at least for every °C change (see attached picture of last 3 weeks).My unit seems to stop drifting during power down, but soon there will be more data to confirm this.The measured stability before and after final work against external LTZ1000 showed drift in sub-ppm region - fortunately no unpleasant surprises.Combined noise/drift (+TC) from unit and external reference are ~0,13 ppm stddev and ~0,5ppm-pp (3 days, 1°C span, 100NPLCs, 7V, acal every hour)Combined TC maybe ~-0,3ppm/°C, but the external ref is not characterized nor trimmed for TC.This data is just for reference, this has to be repeated with better setup.There are a couple of things left for full characterization and to be shure it is in good condition:-log input noise for the ranges and NPLCs-check input bias current at different voltages and ranges-measure TC of whole unit-calibration-long term driftBig thanks goes to the 3458A nuts - especially to TiN andhis great articles- with the help of this superb documentation the work was nearly straight forward.

author: TiN
author_rank: Super Contributor
timestamp: January 07, 2019, 04:31:02 am
content: Welcome to the club.Now you need SR104, 732A/B/C and second 3458A.... rabbit hole only starts here...QuoteI would hold the breathe, as sometimes bad A3's give you little tease, before they go back driftin. Don't ask me how I know...SN18A testing should be done weeks after long offline storage anyway, so you are sure data is valid, and not just initial settling of the unit (which often takes few weeks of 24/7 operation).QuotePretty horrid, if that TC is actually of the unit, and not the measurement setup. I'd say good happy 3458A should be <0.1ppm TC on main 10V range (no ACAL of course).

author: Dr. Frank
author_rank: Super Contributor
timestamp: January 07, 2019, 07:40:45 am
content: Quote from: TiN on January 07, 2019, 04:31:02 amHello TiN,how do you measure that on your 3458As?Per specification, about 0.5ppm/°C is the T.C. w/o ACAL, that is mostly the R-ladder matching T.C. of U180, and 0.15ppm/°C is with ACAL, i.e. latter is mostly the LTZ1000As T.C.I've determined about 0.23ppm/°C for CAL? 72 (i.e. purely U180).Did an ACAL directly after power-up, in cold state, that extrapolation fits nicely with statistical data.Combined T.C. of my box is about 0.4ppm/°C.I think, MiDis 3458A is fine as well.Frank

author: TiN
author_rank: Super Contributor
timestamp: January 07, 2019, 03:26:50 pm
content: QuoteWell, I remember we discussed this before at EEVBlog. Perhaps it's time we create separate thread "DMM temperature stability comparison project", not to pollute this fine thread?I was interested in total tempco of the DMM (that is from terminals to the output data, end-to-end, rather than specific 3458A's component contributor) so I did not use CAL? 72 data to evaluate tempco but rather variated ambient temperature (aircon on, about +18-20c, aircon off about +30c ambient), while keeping stable aged LTZ1000 reference in isothermal chamber (+/-0.01c at all times). Resulting data (don't recall graph links right now, but they are somewhere public) show me that both of my 3458A's had no visible tempco (below 0.1ppm that is, down it the noise). After that test I stopped doing silly ACAL DCV every 1C of TEMP? change. I did repeat same test few more times, with equal result.I'm willing to test this again once new A3 board for my 3458C arrives, so we can use more meters in the mix (and I still have 8508 to test too).In fact I havesomewhat indicativeplot, just quick check of K2002 warmup stability from 1 week cold state. But temperature changed too, so you can also see invisible tempco of my reference 3458 units (STD and B box, green lines).So that's why I say good 3458 should be 0.1 ppm/K or better, even though official spec (old and not updated) is 0.5ppm/K.My standalone HP 3458A A9 (old STD version) reference also have tempco<0.02ppm/K over 24-50c range, so A9 contribution to tempcocanbe much much smaller.During my own modules testing/assembly all LTZ references that fall outside of <0.05 ppm/K box at 18c-50c I consider as fail.

author: MiDi
author_rank: Frequent Contributor
timestamp: January 07, 2019, 04:51:52 pm
content: Quote from: TiN on January 07, 2019, 03:26:50 pmAs there are placeholders and I appreciate all your input and feedback, it would be no problem for me to "pollute" this thread - far from it!These valuable information backed my feeling, that this unit might be on the high side for adc tc.Perhaps the newer adcs have improved tc/stability?Collecting autocal data will go on for several weeks - lets see, how stability evolves.For now I have a bit of confidence, as it shows a quite smooth settling curve.

author: Dr. Frank
author_rank: Super Contributor
timestamp: January 07, 2019, 05:19:59 pm
content: Maybe we should really open another thread about the different T.C. specifications and HW versions of the 3458A.I was not aware, that TiNs 3 DMMs all should have such low T.C.s, and we did not discuss that in detail, either, if I recall that correctly.But I also can hardly believe that, for some reasons.The LTZ1000 references inside the 3458A have never been trimmed for lowest T.C. by hp, as far as I can tell, even up today, in the 'new' version of the 34470A.I really doubt that hp has ever selected these references for zero T.C., either.Then, the T.C. of U180 is the sum of about 6..8 different resistors, and even if these all are sitting on the same hybrid / chip, I really doubt that such ultra low T.C.s are really systematically possible.I really doubt, that KS has really redesigned U180 after 2000. Probably they just live from a last time build of this hybrid...as they live from bodges and All Time Buy from other terminated components..I also really doubt that they ever had budget, resources and brains to make any fundamental redesign / improvement on the 3458A in the last 20 years, apart from these slight compatible changes due to terminated components, basically A5 only.The only obvious component change regarding T.C. was the 40k reference resistor, which had been changed from the old Vishay technologies with about 1..2 ppm/K typ., non -oil filled to the VHP101, about 0.2 ppm/K, oil filled type, somewhere around 1995.In the end, I think that the old specifiaction from 1988, which is still valid, applies to the old instruments, before 1996 at least, but obviously also to my instrument from about 2000, apart from OHM TC and stability, maybe.So to say, that T.C. > 0.1ppm/K is nOK, is to my opinion not correct.Maybe TiN really has unbelievable luck in getting 3 A3 ADCs with exceptional low T.C., multiplied by the unbelievably low T.C. of his 3458As LTZ references, or agilent really has changed U180 to better technology in the last years, or maybe we should really define a reliable method of determination of the different T.C. parameters of the 3458A.MiDi, your instrument really seems to be be ok, and fine.. don't expect too low a T.C., even the more stable 8508A has 0.3ppm/K as best T.C. only, and that really sounds much more realistic.Frank

author: sokoloff
author_rank: Super Contributor
timestamp: January 07, 2019, 05:56:36 pm
content: Quote from: Dr. Frank on January 07, 2019, 05:19:59 pmI think there's value in that; I also think there's value in a basic "so you bought a good bench meter and want to know where it stands; here's the first 5 things to do and why..." with sub-threads of "here'showto do that on model XYZ".

author: TiN
author_rank: Super Contributor
timestamp: January 07, 2019, 06:02:18 pm
content: Okay, let's discusshere.I think it will benefit us all to get down this rabbit hole.Perhaps I got bit rude, using horrid word for 0.3ppm/K TC. It's just my level of acceptance on 3458A is high after all that effort put into units. Official spec on 3458A 10V rangeis 0.5ppm/Kwithout help of ACAL

author: AG7CK
author_rank: Regular Contributor
timestamp: January 08, 2019, 03:55:54 am
content: Quote from: MiDi on January 07, 2019, 01:41:27 amIf I am not mistaken, this means that all digits on the meter are steady. For instance readings varying between [9.999 999 9] and [10.000 000 1] flickers +-0.01ppm.I have never seen a 8.5 digit meter showing 7 or 10 volt DC without flickering in the last (at least 1 or 2) digits in any video from any member here or elsewhere. It would be interesting if you could explain and show how you do your "sub 0.01 ppm" measurements.

author: TiN
author_rank: Super Contributor
timestamp: January 08, 2019, 04:01:04 am
content: 0.01 ppm/day is not meter measurement, but the meter ADC gain stability. It does not include measurement noise.Sent from my Lenovo K900_ROW using Tapatalk

author: MiDi
author_rank: Frequent Contributor
timestamp: January 26, 2019, 05:21:09 pm
content: Short update: managed replacement of elkos on friday, details coming soon.For now, only two things I stumbled over:The two Y mains caps C15, C16 next to mains fuse look weird and I decided to drop them for now until replacement arrives.There are Y caps inside mains filter, so this should not be an issue.The second thing is a bend cap for LTZ1000, not shure if the gap is an issue

author: MiDi
author_rank: Frequent Contributor
timestamp: February 11, 2019, 11:26:26 pm
content: Took a bit longer than estimated, but now here ispart 2.

author: TiN
author_rank: Super Contributor
timestamp: February 12, 2019, 12:36:07 am
content: Nice

author: MiDi
author_rank: Frequent Contributor
timestamp: May 21, 2019, 12:23:31 pm
content: Last Part released: Mains Filter & Fan

author: MiDi
author_rank: Frequent Contributor
timestamp: August 18, 2019, 10:11:36 pm
content: An update of ADC-Drift after 16 days downtime and returning from PTB@Maker Faire.Take yourself a picture of drift when powered off for some time...The trip to the Maker Faire seems not to have affected ADC, was a bit afraid about it.Comparing against my LTZ1k it showed drift ~-1ppm after returning.

author: MiDi
author_rank: Frequent Contributor
timestamp: August 13, 2021, 06:44:34 pm
content: Couple of weeks ago unit got faulty with error "204, HARDWARE FAILURE -- AC VOS DAC CONVERGENCE: 181" and interesting readings on AC with shorted input:First hit was - how could it be something else-xDevs describing that this error direct us to assembly A2 (AC Converter 03458-66502) with U404 Elantec EL2039 600MHz op-amp showing huge voltage between input + & -.And yepp, this is the described fault in this unit too - this saved me much time to investigate the error: big thanks go out to TEKTRON (this time not Illya)!Elantec EL2039 is long time obsolete and no drop in replacement is awailable, luckily there are couple offers awailable on the usual selling platforms.I ordered two pcs. from two different sellers from china and hoping not to get fakesLuckily one seller sold original parts with convenient date code for my unit - as different packages and finally acetone test revealed, the other two are fakes.Top left is faulty specimen, bottom left replacement spare (other measured fine and already soldered in), right are fakes and went straight into the bin:Unit is now working without error again - but have no AC calibrator at hand to verify specs, but AC auto-cal should do that to a degree.Attached are top & bottom pics of A2 assembly, there seem to be quite some differences to later revisions.

author: MiDi
author_rank: Frequent Contributor
timestamp: August 13, 2021, 11:37:04 pm
content: Attached 22 ziped thermal images taken with UTi260B - the raw images can be extracted/converted withUNI-T-Thermal-Utilities.Overview top & bottom:

author: MiDi
author_rank: Frequent Contributor
timestamp: June 05, 2022, 11:27:16 pm
content: Wanted to know how good is ratio mode, so I tested it for more than half a year (same 7V LTZ1000 on both inputs):Edit: The formula used for the ratio plot (blue): value = ( [current ratio] - median(all ratios) ) * 1E6In addition the 3 1/2 year ADC drift attached.

author: Andreas
author_rank: Super Contributor
timestamp: June 06, 2022, 05:21:08 am
content: Helllo,one question:Ratio LTZ#2 against what? Against itself?Is LTZ#2 a 7V or a 10V reference?with best regardsAndreas

author: MiDi
author_rank: Frequent Contributor
timestamp: June 06, 2022, 10:03:13 am
content: Ratio was performed with same 7V LTZ1000 on both inputs, added that info to initial post.

author: martinr33
author_rank: Frequent Contributor
timestamp: June 07, 2022, 06:13:48 am
content: There are a few decoupling caps to add to the early version of the ADC. Some small tantalum electrolytics, and some ceramic decouplers. My apologies for not having pictures to hand, but I figured you would like to know.

author: MiDi
author_rank: Frequent Contributor
timestamp: October 09, 2023, 11:18:24 pm
content: For characterizing ULF-noise of anULF-ULNAthere was the need to get fast measurements over a day with minimum difference between aperture time and time between samples to minimize the error (see why).As it seems there is no way to read the FIFO continuous while measurements are taken I came up with this python code to test the throughput (Github-Repository):Code:﻿#!/usr/bin/env python# -*- coding: utf-8 -*-# developed & tested with Python 3.9from time import perf_counter_ns, sleepimport atexitfrom Gpib import *from statistics import mean, median, stdevgpib_address = 22def setup(addr):inst = Gpib(0, addr)inst.timeout(gpib.T10s)inst.clear()inst.write("TARM HOLD") # stop measurementsinst.write("PRESET FAST") # preset to fast mode, see p. 156 for high-speed modeinst.write("END ALWAYS") # EOI line set true when the last byte of each reading sent (read needs end of data info)#inst.write("DISP OFF") # set by PRESET FAST#inst.write("MATH OFF") # set by PRESET FAST#inst.write("MEM OFF") # set by PRESET FAST#inst.write("AZERO OFF") # set by PRESET FAST#inst.write("NRDGS 1,AUTO") # set by PRESET FAST#inst.write("TRIG AUTO") # set by PRESET FAST (triggers whenever the multimeter is not busy)inst.write("MFORMAT SINT")# DINT set by PRESET FASTinst.write("OFORMAT SINT")# DINT set by PRESET FASTinst.write("DEFEAT ON") # !!! input protection reduced (only +-100V up to 10V range allowed, +-1100V on 100V/1000V range) !!! see p. 157inst.write("LOCK ON")# local lock - does nothing for speed, but prevents interruptions by use of frontpanelinst.write("APER 1.4E-6")# fastest see manual p. 160#inst.write("NPLC 1") # for testing throughput with NPLCs#inst.write("DCV 1") # DCV 10 set by PRESET FASTinst.write("ARANGE OFF") # needed according to p. 156 for high-speed mode, really needed if set to a range?inst.write("DELAY 0")# sets the delay to its minimum possible value (100 ns) - see p. 159return instdef run_measurement(inst, runs=10000):data = []for _1 in range(3): # warmupvalue = inst.read()start = perf_counter_ns()for i in range(runs):value = inst.read()time_ns = perf_counter_ns()data.append([time_ns, value])stop = perf_counter_ns()return data, start, stopdef exit_handler(inst):inst.clear()# needed to exit fast modeinst.write("DISP ON")# enable diplayinst.write("DISP MSG,\" \"") # better as DISP OFF to save display lifeinst.write("LOCK OFF")# local lock disableprint('Exited gracefully')def main():global gpib_addressns_to_ms = 1_000_000dmm = setup(gpib_address)atexit.register(exit_handler, dmm)print (f"Starting throughput test with DMM address {gpib_address}, this will take some time ...")dmm.write("ISCALE?")scale = float(dmm.read().strip().decode("ascii"))dmm.write("TARM AUTO") # start measurements (always armed) - see p. 159sleep(1) # give the DMM some time to process settingscount = 10_000data, start, stop = run_measurement(dmm, count)delta_times = []for n, datum in enumerate(data):delta_time = datum-data[n-1] if n > 0 else datum-start # first delta_time is specialprint (f"{n:6.0f}: {datum} > {int.from_bytes(datum, byteorder='big', signed=True) * scale:3.6f}V dt: {delta_time/ns_to_ms:.3f}ms")delta_times.append(delta_time)print(f"Scale: {scale}")print( f"mean: {mean(delta_times)/ns_to_ms:.3f}ms"f"\nmedian: {median(delta_times)/ns_to_ms:.3f}ms"f"\nstdev: {stdev(delta_times)/ns_to_ms:.3f}ms"f"\nmin: {min(delta_times)/ns_to_ms:.3f}ms @{min(range(len(delta_times)), key=delta_times.__getitem__)}"f"\nmax: {max(delta_times)/ns_to_ms:.3f}ms @{max(range(len(delta_times)), key=delta_times.__getitem__)}")print( f"runtime: {(stop-start)/ns_to_ms:.3f}ms"f"\ntime per sample: {(stop-start)/ns_to_ms/count:.3f}ms/spl")if __name__ == "__main__":main()Throughput test results with Agilent 82357B GPIB adapter on a RasPi 3B:mean: 2.577msmedian: 2.584msstdev: 0.109msmin: 2.210msmax: 7.976msThe python code used for the measurements:Code:﻿#!/usr/bin/env python# -*- coding: utf-8 -*-# developed & tested with Python 3.9from time import sleepfrom datetime import datetime, timedelta, timezonefrom Gpib import *import atexitfrom multiprocessing import Process, Queuemeasurement_filename = "3458A 10V 1NPLC test.csv"gpib_address = 22def setup_dmm(addr):inst = Gpib(0, addr)inst.timeout(gpib.T10s)inst.clear()inst.write("PRESET FAST")inst.write("END ALWAYS")inst.write("ARANGE OFF")inst.write("DISP OFF") # Disable Diplayinst.write("MATH OFF")inst.write("MEM OFF")inst.write("OFORMAT DINT") # SINT, ASCIIinst.write("DEFEAT ON")inst.write("LOCK ON") # Local lockinst.write("DCV 10")inst.write("NPLC 1")#inst.write("APER 1.4E-6")inst.write("AZERO 0")inst.write("TARM HOLD")inst.write("NRDGS 1,AUTO")inst.write("TRIG AUTO")inst.write("DELAY 0")return instdef run_measurement(inst, filename, scale, queue, finish):while not finish:data = inst.read()test_time = datetime.now(timezone.utc).astimezone()queue.put(f"{test_time.isoformat()}\t{int.from_bytes(data, byteorder='big', signed=True) * scale:.6e}\n")def write_data(value, filename, finish):# with open(filename, 'a') as file_handle: # appendwith open(filename, 'w') as file_handle: # overwritewhile not finish:while not value.empty():file_handle.write(value.get())sleep(0.01)def exit_handler(inst, finish, write_process, measurement):finish = True # stop processesinst.clear()# needed to exit fast modeinst.write("DISP MSG,\" \"") # enable Display and emptyinst.write("LOCK OFF") # local lock disablewhile write_process.is_alive() or measurement.is_alive():print("Waiting for processes to end...")sleep(0.01)print('Despite the errors: exited gracefully')def main():global measurement_filenameglobal gpib_addressdata = Queue() # multiprocessing queue for datafinish = False # process shared variabledmm = setup_dmm(gpib_address)write_process = Process(target=write_data, args=(data, measurement_filename, finish))write_process.start()dmm.write("ISCALE?")scale = float(dmm.read().strip().decode('utf-8'))dmm.write("TARM AUTO")print (f"Collect Data DMM {gpib_address} to \"{measurement_filename}\"")measurement = Process(target=run_measurement, args=(dmm, measurement_filename, scale, data, finish))measurement.start()atexit.register(exit_handler, dmm, finish, write_process, measurement)# graceful exit no matter whatprint("Measurement running... finish with CTRL-C")measurement.join()print("Done with measurements")if __name__ == "__main__":main()Results for 1NPLC (50Hz/20ms and more than 6 million datapoints):mean: 21.808msstdev: 0.058msmin: 10.848msmax: 33.124msThe deviation of 1.8ms gives only a small error for the NSD - the white noise part is ~4% high - which was acceptable.

author: CurtisSeizert
author_rank: Regular Contributor
timestamp: November 18, 2023, 06:47:40 am
content: I struggled with this same thing, and I am reasonably satisfied with the solution. The key is if you want to make FIFO reads non-blocking use "INBUF ON".This is the script I use to digitize samples from the 3458a, except the couple lines for sample timing, which I put in to demonstrate that it works as advertised. I put in the t0 bit to make the list of sample times readable.Code:from pyvisa import ResourceManagerimport timeimport pandas as pdDCVrange = 0.1NPLC = 0.1numsamp = 1000sfreq = 50sleeptime = 1stime = 1/sfreqaper = stime/2logfile = 'test.csv'rm = ResourceManager()dmm = rm.open_resource('GPIB1::22::INSTR')dmm.timeout = Nonedmm.write("END ALWAYS")dmm.write("BEEP OFF")#dmm.write("MFORMAT ASCII")dmm.write("OFORMAT ASCII")print("")print("Voltage meter: ", dmm.query("ID?"))print("")print("Waiting %d seconds" % sleeptime)time.sleep(sleeptime)dmm.write("DCV %f" % DCVrange)dmm.write("APER %f" % aper)dmm.write("TIMER %f" % stime)dmm.write("NRDGS %d, TIMER" % numsamp)dmm.write("AZERO ONCE")dmm.write("MEM OFF")dmm.write("INBUF ON")dmm.write("RATIO OFF")dmm.write("TARM AUTO")dmm.write("TRIG SGL")df = pd.DataFrame(columns = ("V","freq"), dtype = float)V = []times = []t0 = time.time()count = int(0)while count < numsamp:V.append(dmm.read_ascii_values())times.append(time.time()-t0)pct_comp = count/numsampprint(end='\x1b[2K\r')print("Progress {:2.1%} ".format(pct_comp), end="\r",)count = count + 1df["V"] = Vdf.to_csv(path_or_buf= logfile)delta_t = times[numsamp-1]-timesprint("Average sample time: ", delta_t/(numsamp-1))Running 1000 samples, with stime = 0.02, I got 0.020000514s for the average sample time. I would not trust this code to give you an accurate indication of the aperture jitter unless you are running on a real time operating system. Even then, there is uncertainty in how long the transfer will take, the conversion from ascii to float, etc. The way that I used to check aperture jitter was to use those settings to digitize a 9 Hz sine wave and then took an FFT. I can't remember the results when I did that offhand, but they were good enough for the LF measurements I am doing. I hope this helps.Also, I noticed you had asked me about this in another thread and I forgot to respond. My apologies for not doing it sooner.

author: CurtisSeizert
author_rank: Regular Contributor
timestamp: November 18, 2023, 10:22:56 pm
content: To put some numbers to my last post, I compared aperture jitter calculated from the sample times taken in the code to aperture jitter calculated from phase noise of a 9 Hz carrier using a DS345 function generator.The aperture jitter calculated in the code was 384 usRMS, and it was 26 usRMS as calculated from phase noise. This very close to what I got with an Analog Discovery Pro, so the measurement is probably limited by the DS345.

author: CurtisSeizert
author_rank: Regular Contributor
timestamp: November 26, 2023, 08:08:51 pm
content: I began getting some trigger too fast errors with the code I was using, and the problem was somewhat sporadic at 50 SPS - worse at some times, better at others. At 40 SPS, I got no errors, at 60 SPS, I always got them. From doing a little bit of experimentation, I found that running captures while transferring one data point per GPIB transaction could not do better than about 19 ms with my GPIB to USB bridge. This was with all the settings necessary for fast mode and "OFORMAT SINT". That is not much faster than transferring not in fast mode with "OFORMAT ASCII", just about 1 ms for me.To solve this problem, I just transferred all the data in one transaction. It is not much more work to go from the float values to integers, and you can get a lot better throughput with integers, probably because this output format puts the meter in fast mode. However, it is difficult to avoid trigger too fast errors for long captures at fast sample rates, even if you can further increase the sample rate and get no errors with short captures. For example, with 10kSPS and 10k samples I get an error, and with 50kSPS and 131 samples I get no error. I consistently get an error at 132 samples with 50kSPS. With 10kSPS, 1k samples is fine (I haven't checked the exact limit), and with 5kSPS, 10k samples is fine. Changing the aperture time as a fraction of the sampling interval has minimal effect up to maybe 90% unless you are on the line. The code I used for this is below - I just used this for testing, and there is the possibility it will hang forever if something goes awry.Code:from pyvisa import ResourceManagerimport timeimport pandas as pdimport numpy as np#import matplotlib.pyplot as pltDCVrange = 0.1numsamp = 10000sfreq = 5000sleeptime = 1stime = 1/sfreqaper = 80*stime/100logfile = 'test.csv'df = pd.DataFrame(columns = ("V","freq"), dtype = float)rm = ResourceManager()dmm = rm.open_resource('GPIB1::22::INSTR')dmm.timeout = None# Setup commands and clear errorsdmm.write("END ALWAYS")dmm.write("BEEP OFF")dmm.write("TARM HOLD")dmm.write("TRIG HOLD")dmm.write("ERR?")dmm.write("OFORMAT ASCII")print("")print("Voltage meter: ", dmm.query("ID?"))print("")print("Waiting %d seconds" % sleeptime)time.sleep(sleeptime)# For high-speed modedmm.write("ARANGE OFF")dmm.write("MATH OFF")dmm.write("OFORMAT DINT")dmm.write("DISP OFF")# Measurement parametersdmm.write("DCV %f" % DCVrange)dmm.write("APER %f" % aper)dmm.write("TIMER %f" % stime)dmm.write("NRDGS %d, TIMER" % numsamp)dmm.write("AZERO OFF")dmm.write("MEM OFF")dmm.write("INBUF ON")dmm.write("RATIO OFF")dmm.write("TARM AUTO")V = np.empty(, dtype=np.int32)t0 = time.time()V = dmm.query_binary_values("TRIG SGL", datatype='i', delay=0, container=np.ndarray, data_points=numsamp, is_big_endian=True, header_fmt='empty')scale_factor = dmm.query_ascii_values("ISCALE?")t_tot = time.time() - t0avg_time = t_tot/(numsamp-1)print("Average sample time: ", avg_time)dmm.write("DISP ON")dmm.write("BEEP ONCE")dmm.write("OFORMAT ASCII")df["V"] = V*scale_factordf["freq"] = sfreqdf.to_csv(path_or_buf= logfile)err_code = dmm.query("ERRSTR?")if(int(err_code) == 0):print("Valid data: no errors")else:print("Invalid data: ", err_code)I don't know offhand why I get the trigger too fast error under specific conditions with this code. It would seem that if the GPIB transfers can keep up with a handful of readings, there should be idle time between the transfers of individual samples. If there is idle time, there should not be enough fluctuation between times of individual transfers that 50kSPS could work for 100 or so readings and 10kSPS could give errors at some point. This code has no way of giving the intervals between individual samples, so it is not clear how many times in, for example, a 1M sample capture at 10kSPS the error is being thrown. In such an experiment with aperture time at 90% of the sampling interval, the average sample time was 100.14us, and this was consistent. In any event, I have run multiple captures using this code (with OFORMAT DREAL) at 4M samples and 200 SPS with no trigger errors, and I used 90% aperture for those. It would be nice to use this method to take arbitrarily large captures at the GPIB bandwidth limit of about 50kSPS for DINT and 100kSPS for SINT, but I haven't been able to pull that off yet.

author: Dr. Frank
author_rank: Super Contributor
timestamp: November 27, 2023, 09:21:44 am
content: GPIB usually is able to transfer @ 1MByte/sec, therefore there is no problem for Digitizing with SINT @ 100kHz (16bit, 1.4µS APER) and DINT @ 50kHz (>= 18Bit, 10µs).You have several possibilities for making fast data acquisitions , with very low jitter.At first, you either need to use the TIMER function for arming / triggering, or you might use external triggering at the required sample rate.Latter gives +/- 50ns latency / jitter, or you might go one step further and synchronize with the internal 10MHz timebase, as NIST / PTB do for their AC digitization standards.Then you have two possibilities for the data transfer, or data storage.You might first sample into the internal memory of up to 148kB, and afterwards read it from there.If you want to sample directly into the PC, you need to use low level GPIB commands for array transfer. My GPIB card features:procedure rarray (var d; count : word; var len : word; var status : integer)where you can transfer a pre determined amount of data, up to 64kB with one triggerThat avoids any GPIB READ or TRIG commands for each data point, which would slow down the transfer., and gives a high trigger uncertainty / jitter.I also used low level GPIB commands like MLA 0 TALK 22, so that trigger and data transfer is completely managed by the basic GPIB functions of the interface card and the hp3458A.You might find examples for such precisely timed, fast transfers also inside the source code (vb) of the Swerlein algorithm.Frank

author: leighcorrigall
author_rank: Frequent Contributor
timestamp: April 30, 2024, 09:58:05 pm
content: Does anyone know what the two-position fan connector is called? I would like to order a replacement to swap fans in quickly.Thank you.

author: leighcorrigall
author_rank: Frequent Contributor
timestamp: May 01, 2024, 12:50:05 pm
content: Quote from: leighcorrigall on April 30, 2024, 09:58:05 pmI was told by a community member that they used the following as replacement parts:TE Connectivity 104257-1 with 1-104480-6I am also going to try out the following:Molex 0015474023 and 0705410036EDIT: The Molex part numbers seem to be original. I would suggest these, although the TE Connectivity parts seem to be interchangeable.Some additional comments:I would also like to point out that MiDi's fan selection is excellent. It seems to have slightly lower noise and cooling capabilities. The internal (34 Celsius) and external (23.5 Celsius) temperature difference (delta) is about 10.5 Celsius when the fan filter is installed.The only disappointment was that the mounting hole diameters were slightly larger than the original.This consequence means that a fastener assembly needs to be applied to secure the fan. The author of this post does point this out, but it should be made more obvious.Clearing the fan filter significantly improved the temperature. This easy process will prolong the service life of this instrument by reducing the internal temperature by a degree or so.

author: Arhigos
author_rank: Regular Contributor
timestamp: May 08, 2024, 01:10:07 pm
content: Does anyone know how I can remove SCAL FREQ REQUIER message from the meter? I checked AC and Frequency and its all good. I just want to get rid of that message

author: Dr. Frank
author_rank: Super Contributor
timestamp: May 08, 2024, 01:37:50 pm
content: Quote from: Arhigos on May 08, 2024, 01:10:07 pmProbably you just have to do a frequency calibration. See service manual, how to.Frank

author: MiDi
author_rank: Frequent Contributor
timestamp: January 19, 2025, 06:50:21 pm
content: To characterize noise of unit, measurements for different ranges, NPLCs, short/FS and AZ on/off were taken.It gives the base for major project on improving noise of unit by exchange of A9 for low noise ADR1000 and changing several op amps e.g. for reference scaling (+12V/-12V/+5V) - inspired by talk from Chuck Beuning at MM24.More on that in future posts, currently FW mod and A9 ADR1000 is installed w/o issues.FW mod only changes the minimum cal values, so that lower voltage ADR1000 can be used w/o additional gain stage.Comparison for input short of different NPLCs for 10V with AZ:As expected NSDs for 10 to 100 NPLC are similar, as the 3458A just does multiple 10 NPLC readings for higher NPLCs and takes the mean.Overlapping Allan Deviation (OADev) gives a bit different picture for averaging times >1h, seems there is an advantage for longer integration times - the cause is unclear, it may be just a fluke.Unexpected is the significantly increasing NSD and additionally the increasing 1/f and "HF" part to higher NPLCs.OADev tells 2 NPLC has lowest noise at ~3h averaging, but may be just a fluke.Same comparison on 0.1V range:Difference of NSD 1/f part is nearly same for all NPLCs compared to 10V, which implies origin from AFE and not Ref/ADC, the "HF" part does not increase, instead bump between 0.1..1Hz rises.OADev show no significant difference between NPLCs around 5min averaging, for higher averaging times environment and other factors may be the main contributor as there is no clear picture of what is going on.Comparison of short/FS on 10V range (FS with 2 different 3x18650):NSD shows prominent 1/f noise at FS compared to input short.OADev reveals some more details that are barely visible in NSD: 10.6V shows lower noise for higher averaging times in comparison to 11.8V.My guess is this is the transition of 1/f noise from FS to short, which could be verified by measuring different input levels.Lowest noise for 10.8V between 10..20s averaging is around 120-150nV, which is in compliance what PTB showed at MM24, but lower noise around 90nV (10NPLC, 5V input?).As for the short the NSD is significantly increasing to higher NPLCs and OADev confirms lower noise for 1NPLC.That implies to capture in 1NPLC and do averaging later in software for lowest noise.Comparison with other 3458A meters on 10V range (AZ off):With AZ off there is no significant difference in noise between 1 and 10 NPLC in comparsion to AZ on.My unit shows a bump between 1..10Hz, which is not present in the other units and not visible with AZ at 10V and indicates that something is off.Same on 0.1V range (AZ off):Same on 0.1V, with AZ off there is no significant difference in noise between 1 and 10 NPLC as was with AZ.Bump now between 0.1..1Hz (same as with AZ on), what could change this bump in frequency for range change?References:Captured dataCaptured data from repsPython script to capture the dataPython script to analyze and plot the data (combined plots for NSD, ADev, OADev, MDev included)Python script to combine different data in one plot # currently not available online, will be updated

author: Kleinstein
author_rank: Super Contributor
timestamp: January 19, 2025, 10:46:14 pm
content: The Allan deviation at the very long times is effected by thermal drift and similar. Different runs may not experience the same degree of thermal drift. This could explain the difference between the 10 PLC / 50 PLC and 100 PLC curves, that suould normally look similar.It quite normal that about the last decade of data for the Allan deviation is not that repeatable. Also a new run with the same setting can look different there.

author: aronake
author_rank: Frequent Contributor
timestamp: January 20, 2025, 04:52:33 am
content: Quote from: MiDi on January 19, 2025, 06:50:21 pmNice work and detailed measurements! Do you have any before and after comparison for the ADR1000 mod? Or anyone else seen some data on this?

author: MiDi
author_rank: Frequent Contributor
timestamp: January 20, 2025, 08:10:02 am
content: A9 ADR1000 sneak peek.Keep in mind that there is a scaling factor of 1.06 from ADR1000 to LTZ1000.

author: Kleinstein
author_rank: Super Contributor
timestamp: January 20, 2025, 01:40:39 pm
content: Why does the reference make so much difference also with a shorted input ? There is a small contribution expected, but it should not be that much, unless the A9 reference is rather noisy in the higher frequency range.

author: MiDi
author_rank: Frequent Contributor
timestamp: January 20, 2025, 07:28:22 pm
content: Quote from: Kleinstein on January 20, 2025, 01:40:39 pmNo clue, scaling factor should not effect 0V noise.The A9 ADR1000 has some additional EMI-filtering (10nF), but that should not have any significant effect (schematic see attachment).The attached zoomed view of the NSD for short shows 10-15nV / 8-10% lower noise.How does ref noise at higher frequency reflect back into noise at lower frequency for shorted input?

author: Dr. Frank
author_rank: Super Contributor
timestamp: January 20, 2025, 08:00:59 pm
content: Hello MiDi,thank you for sharing the information.Have you already replaced the noisy OpAmps for the +/- 12V and +5V references at U180, like Chuck Beuning did, or wanted to do?Others already claimed, that w/o replacement, the lesser noise of the ADR1000 would not become effective.Have you observed what happens with your specific ADR1000, when it's switched off for several days, or weeks?I have observed that its reference voltage needs 1..2 weeks to recover to its old, powered-on state.When sitting idle, my specimen showed a temporary shift of up to +5ppm after re-powering.Frank

author: Kleinstein
author_rank: Super Contributor
timestamp: January 20, 2025, 08:06:03 pm
content: The capacitor C3 shown in the ADR1000 ref. circuit can make quite some difference for the noise in the 100 kHz range.The higher frequency (e.g. half the run-up modulation frequency or some 160 kHz) reference noise can modulate down to near zero. The run-up alternates between using the positive and negative reference to get a zero. The switching effectively acts like an RF mixer, muliplying the ref. noise with the modulation pattern (as +-1). There is some gain from the 50K/40 K resistor ratio. At least the 7 V to +-12 V gain is largely filtered, otherwise the ref. noise could be even worse. In my estimate for the noise contributions the mixed down ref. noise is about on par with the integrator noise (mainyl the LT1001). There is quite some uncertainty here as the 100 kHz range noise for the LTZ1000 is not in the datasheet and details of the ref. circuit can have an effect from filtering to an added noise peak.Filtering out the part about some 50 kHz does not take much. I think this is a part that is missed in the design, not just for the 3458. It is a bit tricky part that is easy to miss. It's also a slightly odd part that gets less when the voltage gets higher. As a complication the frequencies involved would also change.

author: MiDi
author_rank: Frequent Contributor
timestamp: January 20, 2025, 09:07:24 pm
content: Quote from: Dr. Frank on January 20, 2025, 08:00:59 pmReplacement of ref gain op amps are next steps, first want to get data with A9 replacement only.The ADR1000 is only a week on until now, will do further tests after it has settled (TC, on/off hysteresis, ...) - so in 3-4 years maybe.Quote from: Kleinstein on January 20, 2025, 08:06:03 pmIndeed, C3 adds additional LPF.Thought about replacing op amps in the integrator/slope amp to decrease noise, any suggestions?At least LT1001 in integrator could benefit from lower (current & voltage) noise upgrade.Additional LPF of +-12/5V ref voltages could be another thing to try.

author: Kleinstein
author_rank: Super Contributor
timestamp: January 20, 2025, 11:10:28 pm
content: For the amplifiers I would consider the OPA205.U110 should be effective with a noise gain of 2.25. Here the current noise is also relative important.U165 should be effective with a noise gain of 1.25.U160 should be effective like the reference.U151 (for the +5 V ref. level) should be non critical and hardly worth a change.In the integrator (U110) one may want to increase R112 because of the higher bandwidth.The slope amplifier is a bit noisy, but still good enough. The quantization noise should still be a little higher. It would mainly effect the short integration times, like < 1 ms and hardly noticable at 1 PLC.A logical position for a low pass filter is at the input of U160.

author: MiDi
author_rank: Frequent Contributor
timestamp: January 21, 2025, 11:21:40 am
content: The KiCad project files and documentation for A9 ADR1000 are released:https://github.com/EleDes/3458A_A9_REF_PCB_KICADSpecs of realized A9 (trimmed R415/R2 for low unheated TC for oven setpoint):Tset59Iz10.51E-3Vz6.693419R415/R212600VQ2be0.5147VR4140.5256Enpp 0.1-10Hz330E-9STD 28E-9 (DIY LFLNA-80 1054Z 20MHz BWL, 2MSPS, 24Mpts, mean of 13 Samples)Enpp 0.1-10Hz258E-9STD 23E-9 (DIY LFLNA-80 1054Z 20MHz BWL, 1kSPS, 12kpts, mean of 14 Samples)En 1Hz17E-9(DIY LFLNA-80 3458A 1V, 1NPLC, AZ off, fast)For comparison: typical LTZ1000A noise @3.6mA is~840nVppand ~60nV @1Hz (from DS)Big thanks to xdevs, reps discord, the metrology meetings and the other voltnuts that shared their experience, published their designs and contributed to development.

author: MiDi
author_rank: Frequent Contributor
timestamp: March 12, 2025, 09:35:04 pm
content: 3458A ADR1000 vs LTZ#3 drift, two short off times had very little effect on ADR1000 (March 2nd and 3rd):The TC of A9 ADR1000 inside 3458A is around -80ppb/K vs. interpolated CAL175 (from hourly ACAL):

author: MiDi
author_rank: Frequent Contributor
timestamp: April 01, 2025, 06:09:58 pm
content: Evaluation of drift after ACAL ALL:

author: Kleinstein
author_rank: Super Contributor
timestamp: April 03, 2025, 10:41:25 am
content: That is quite some drift after ACAL. It also seem to be 2 separate parts for the offset and gain.For the offset I can somewhat understand some drift from thermal EMF from heat in the front end, especially the reed realy at the input and maybe resistors near by.The gain part (larger effect with external voltage) it is a bit unclear, where this could come from. My guess would be thermal effects at the ADC. Another possibility could be some disturbance of the reference during the ACAL measurment of the reference.A related test could be checking what happens after just a pause (e.g. switch to current measurement with zero current) for some 10 minutes. There I would expect a similat thermal effect, but of cause no loading of the reference.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 03, 2025, 06:17:52 pm
content: Good point, need to verify if external voltage reference is effected by ACAL (AFE switching).Thermal effects in ADC leading to gain error of around 0.07ppm (10V) would be more than stated INL of 0.05ppm.Quote

author: Dr. Frank
author_rank: Super Contributor
timestamp: April 03, 2025, 06:53:14 pm
content: Quote from: MiDi on April 03, 2025, 06:17:52 pmHello MiDi,I was wondering, why you made an ACAL ALL, when you obviously wanted to check the ACAL DCV - 10V range only?Within 20 min, if I interpret your graph correctly, this probable heating effect decays from about +0.04 ppm to zero.. that's a very small effect, and quite good, I guess.I made similar stability measurements on my pimped 34465A, after ACAL you see several ppm of drift, and you can't distinguish, whether this is an effect of the A/D, the input amplifier circuit, or the LTZ1000 reference, which is in doubt to be influenced by an ACAL.Therefore, another such stability measurement after a simple ACAL DCV would be helpful.Thank youFrank

author: MiDi
author_rank: Frequent Contributor
timestamp: April 03, 2025, 08:04:21 pm
content: It was just a by-product of the ongoing evaluation of A9 ADR1000 & subsequent mods, my standard logging simply does hourly ACAL ALL.Good point, A9 ADR1000 could be influenced by ACAL, but no clue how to check that - at least could compare to stock A9.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 03, 2025, 08:43:54 pm
content: Investigation of the mysterious ADC Zero Glitch Jump Circuit: summarized it forces input currents to the integrator to <-4µA & >4µA (±200mV offset) and switches between the currents at around 0V (if circuit enabled).At the input of rusn1 (U180 28) R185 3.01Meg connected to -12ref gives -4µA offset current, corresponding to -200mV.ZJUMP switches between 0V and 5V, 5V on R184 619k gives 8µA current into rusn1, in sum with R185 current gives 4µA (200mV).ZGJC is enabled & latched by XLEN (U181 6) and controlled by U212A (D-Flip-Flop bottom left on IN-GRD CTL) with the main input PC at 1D.PC is controlled by µC 8051 U220 and additionally connects as PC_F to Sentry Input Signal Conditioning U11D 11 (top right) - wondering what magic it is doing there.At least for DCV 1NPLC AZ the ZGJC is active all the time - XLEN switches always between AZ and input cycle transition.But it is only effecting 10V and 1000V range, for 100mV ZJUMP is always high, for 1V & 100V always low.To correct the offset, the state of ZJUMP needs to be evaluated and ±200mV subtracted from measurement.How the state of ZJUMP is determined is still a mystery, as there is no connection to anything else.It would have been easy to feed ZJUMP or comparator output (U181 7) into µC or GAL as there are a couple unused inputs, so there might have been reasons not doing that.Likely it is evaluated indirectly by a measurement at some point, e.g. first runup slope direction.The transition of DCBUF from AZ to input looks somehow weird, especially for the 100mV, 1V & 100V ranges.Something going on in Input Signal Conditioning, PC_F signal?10V 0V (Cyan is XLEN):Setup:Additional screenshots of the other ranges attached

author: Kleinstein
author_rank: Super Contributor
timestamp: April 03, 2025, 10:02:32 pm
content: So it looks like the XEN signal is there only for a short time during the transition from the zero signal to the actual signal. This would be before the actual conversion starts. Chances are that both readings in the AZ cycle use the same value of the ZJUMP signal. This way one essentially avoids having an actual zero signal at the ADC. I don't see a big difference between the ranges. It is only a few cases that one actually sees a change in the ZJUMP signal - this seems to happen when just at the edge with the oscillation between the 2 states and thus a more random ZJUMP signal.This way the ZJUMP part makes some sense: the area around 0 V shows the largest DNL error. Avoiding this range helps with the linearit. Adding the + or - 200 mV to both of the AZ steps gives zero net effect. It looks like a clever technique.The DCBUF signal looks odd at first. Just keep in mind that this is from a slow LM358 OP-amp. The signal to the ADC will be faster and we see the slew rate of the LM358 to slow down the transition. It is still a bit odd to see the signal to go down and only later up in some cases. So there could be some input current spike from switching.

author: Kleinstein
author_rank: Super Contributor
timestamp: April 04, 2025, 03:51:02 pm
content: The 1 V range seem to have a problem with the settling speed of the amplifier. The DCBuff signal does not get the correct sign in some / many cases. The critical point would be if this also happens near + 20 mV and thus near 0 V getting to the ADC when including the ZJUMP part. If the Zjump part is wrong for the larger voltages, this would not cause an issue as one is still away from 50 % PWM at the ADC.The settling time for the DCBUF signal in some cases seems to be a bit over 60 µs - this could be extending to the start of the actual conversion, at least for some higher speeds. The DCBUF signal does not have a large effect on the ADC, but there is still some coupling, capacitive and likely mixing a little of the voltage at pins 28/29/30 of U180 to the switch gate voltage. So Ideally DCBUF should be settled before the actual conversion begins.There could be an issue with the main amplifier settling, the charge spike compensation (can cause overshoot to start with) for the pre-charges switching or just a rather slow LM358 for U170.It could be interesting to also see the DC_AD signal and maybe the integrator output.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 04, 2025, 11:35:30 pm
content: Next time when I am in there, will make additional measurements.Would be nice if other 3458A owners could check that behaviour.As there is limit of 10 attachments, now all screenshots:100mV -FS / 0V / +FS:1V -FS / 0V / +FS:10V -FS / 0V / +FS:100V -11V / 0V / +11V:1000V -11V / 0V / +11V:10V 0V Video:

author: MiDi
author_rank: Frequent Contributor
timestamp: April 04, 2025, 11:44:50 pm
content: Added additional data for drift after ACAL ALL:

author: Kleinstein
author_rank: Super Contributor
timestamp: April 05, 2025, 07:12:48 am
content: I was wondering about the rather low noise level before. With averaging (boxcar integrator like) over many cycles this makes sense.It looks like the external reference is causing much of the "gain" drift after ACAL. The different reference seem to behave differently. So the settling effect could well come from the external reference and not the meter. There is a chance to have some charge peak when reconnecting the input after ACAL.With the scope screen shots, the 100 mV range test is a bit odd. The DCBUF signal goes initially up really fast (some 14 V in some 6 µs) normally the LM358 should not have such a high slew rate. The other curves show more a slope limit that would be typical for a LM358 slew rate.Maybe the LM358 can have a high slew rate when really driven hard (maybe even exceeding it's supply).The features seen at postive times in the DCBUF curve are likely ringing of the main amplifier. This would be quite strong ringing, all the way to drive the LM358 to the slew rate limit.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 06, 2025, 06:34:16 pm
content: Follow-up on adventure for improving noise.Replacing +12Vref amp U160 with ADA4522 was disappointing, no significant change.There is little chance that replacing -12Vref amp U165 with ADA4522 will change something, let alone 5Vref amp U151.Keep in mind that there is a scaling factor of 1.06 from ADR1000 to LTZ1000.In comparison to earlier plots, all measurements are linear drift corrected to accomodate for self-discharge in the LiIon cells for 10.6V, that gives the characteristic down slope at the end of the ADEV plots.

author: chuckb
author_rank: Frequent Contributor
timestamp: April 07, 2025, 05:20:46 am
content: Thank you for the great documentation of your investigations.You should have seen a 2-3x reduction in noise in the 100-1000 second range with the ADA4522 chopper opamp.I use one of my Z10 prototype Voltage Standards when I do the 10V stability test. It has shown 3nV stability over a day when Air pressure and Linear drift affects are removed.I could only get good Zero stability results by using a simple copper wire short or a gold-plated PCB shorting the input terminals. One shorting plug with gold plated banana jacks had noticeably higher thermal emf and Zero instability.I have modified 3 units now with good results. There are a few other subtle things I do when modifying the units. I have not quantified these improvements. We are dealing with nanovolt stability over hours.To minimize noise from thermal EMF, I minimize the A1 shielded enclosure airflow. I close off any openings at the aft end, near the fan, with tape. There are a few holes back there and there are gaps where wiring leaves the plastic shield around the power supply area. I have not noticed a change in compartment temperature by doing this.On the A3 module I use small cotton balls around the +-12v Opamp and the first comparator. This minimizes any random airflow in this area especially with the DIP to SOIC adapters needed for the newer opamp. On one unit I put cotton balls on the back side of the pcb to also cover the pcb pins and the U180 pins. I pull the cotton balls apart to fluff them up a little.Do not block the cooling of the EL2018 comparators. They already run hot as it is.All the pcb mounting screws on A1 and A3 modules need to be tight. Do not break anything but they need to be snug with no missing screws. I expect HP to have a torque spec for these screws somewhere. These screws supply critical grounding for the HP3458A pcbs. Screws made from different metal are not allowed.With chopper Opamps I add a C0G capacitor between the non-inverting input to chip power ground. I do this on the SOIC adapter pcb. This will minimize current spikes getting into the circuitry.The parts list for the A3 module specifies 10nF AVX X7R capacitors (AVX PN SA101C…) for the opamp feedback. An X7R capacitor can have 10x the current noise of a good C0G cap. These are C160, C165, C151 and C152. I have removed some of these capacitors by clipping them off the pcb and testing them. Based on leakage current noise they appear to be C0G caps. HP made several different A3 versions over the years. I cannot guarantee what type of capacitor is on your PCB. I replaced the critical 10nf feedback caps with TDK 10nf 100V C0G parts so I know I have the best.NOTE: If you want to test an X7R capacitor do not unsolder it from the pcb, clip it out. The Heat from unsoldering may change the X7R capacitor characteristics like aging and leakage current.As I am sure you know, there are several better chopper Opamp than the ADA4522. Below 0.1 Hz the ADA4522 voltage noise density starts to rise like a normal opamp. It still should have 10x less noise than a Bipolar LT1001 opamp at the longer time scales (100-1000 seconds).The ADA4523, OPA182 and the OPA189 have flat noise spectrums out to 1000 seconds.On the A3 module I have successfully tested the -OPA210 Super Beta 2nV Bipolar Opamp, 5x less noise than the LT1001 and lower bias current.OPA182 5nV chopper (low power OPA189), OPA189 5nV chopper, ADA4523 4nV chopper.I not have noticed any strange operation over the last year from chopper clock noise interacting with the A3 sampling frequency.I have also tested the choppers and the Super Beta Opamp in the U110 First comparator location with no noticeable issues.I changed the U170 opamp (DCBUF) from an LM358 to a OPA2140 for much better bias current stability (1000x), faster operation (faster settling, lower output Z), and better DC specifications.Good luck!

author: Kleinstein
author_rank: Super Contributor
timestamp: April 07, 2025, 06:51:03 am
content: Changing the OP-amps for the ref. amplification may have more effect with slower conversion like 10 PLC. The effective frequency where the noise matters is roughly 1/ (2 * T_integration). For 1 PLC -> 25 Hz the LT1001 is not yet that bad. It is more with 10 PLC that the LT1001 shows 1/f noise that the chopper amplifier can avoid.I would be careful with the ADA4523: it needs quite some power and has high input current noise. So for a source impedance of some 5 K it would be higher noise than the ADA4522 or OPA189.AZ amplifier should also have good local decoupling - e.g. an extra capacitor on the SO8 to DIP adapter.For replacing U170 a OPA2140 is overkill speed wise. The lower power OPA2145 would be well fast enough.The amplifiers are the ref. amplification contribute a little, but the effect is limited.The issue is smaller with the ADR1000 based reference, but it could still make sense to have at least a little higher frequency filtering for the reference voltage. Some of the noise in the 100 kHz range can effect the ADC via mixing with the run-up modulation.

author: Dr. Frank
author_rank: Super Contributor
timestamp: April 07, 2025, 07:21:18 am
content: Hello Chuck,many thanks for details about your 3458A modifications!I made bad experience with cotton pads on my KEITHLEY 182.I wanted to thermally isolate the input connector / plug, as well from drafts and stuffed cotton inside.That led to greatly increased bias currents of the instrument, maybe due to humidity absorption.It was completely un-usable afterwards for zero alignments in bridge applications, like with the FLUKE 720A or FLUKE 752A.So I had to remove the cotton again.Air drafts in the 3458A and in other instruments (34465A / 470A, 34970A) are really a severe design error.I isolated the LM 399 / LTZ1000A reference inside my 34465A with a small plastic box around the whole reference circuit area, which clearly reduced noise from air draft, which directly blows from the fan in direction of this circuit.Maybe I overlooked that detail of your description, but why haven't you as well shielded the A9 circuit area from air drafts?Another aspect concerning the ADR1000 reference possible recovering drift:How do your modified 3458As behave, when you switch them off your days, or weeks?How long takes their ADR1000s to recover?Is it instantly (like with the LTZ1000A reference board), or do you see several days or up to 2 weeks of enhanced drift, on the order of several ppm?Thank you!Frank

author: MiDi
author_rank: Frequent Contributor
timestamp: April 07, 2025, 05:40:19 pm
content: Thank you Chuck for the deep insightsWould be nice if you could share some pictures of your mods.You are right, ADA4522 was a consciously decision for my A9 ADR1000 (low Iq - low heat, low enough noise).For your QVR with around half the noise, ADA4522 would spoil noise significantly (~50%), for my A9 it is <10%.Did you compare noise U110 1st integrator stage before/after swap?Quote from: Kleinstein on April 07, 2025, 06:51:03 am10NPLC no relevant change either:Be careful on interpreting the 10.6V ADEV charts, as the setup was not the best - a Z10 would be handy...The U160 measurements should be reasonable, but far from insignificant for longer integration times - NSD plot is mostly unaffected.It might be due to just checking positive range, the run-up should mostly use the -12ref, which is still stock LT1001 right now.On the other hand I would expect lower noise at 0V input, as pos & neg ref should be used nearly equally for the run-up.Maybe the ADC core is just limiting noise now? How to estimate the noise contributions of the components from integrator/slope amp/comparator?

author: Kleinstein
author_rank: Super Contributor
timestamp: April 07, 2025, 06:35:27 pm
content: The possibly changes to the 3458 ADC are somewhat limited, as the core U180 and logic is fixed.So the possible improvements are really limited. I did some math on the noise source for the 1 PLC AZ case. There are a few parts with estimated paramters, but the rough size should be about right, maybe a bit more jitter.Form this the largest noise source with there contribution (need to add up as squares - so the large ine really matter and the small one less)1) the 50K+40 K resistors at the integrator: 306 nV2) 150 kHz band ref. noise ~190 nV , unclear how noisy the ref. actually is at that high frequncy, The ADR1000 can already help here3) U110 (integrator) 184 nV4) jitter in U180 and U131 ~ 150 nV assumes 1 ps RMS jitter5) U165 and the 10 K resistors there 144 nV6) reset noise from switch capacitance ~ 120 nV assume 10 pF7) front end protection 90 nV8 ) quantization noise 59 nVEven when measuring -11 V and thus mainly using the positive reference the zero reading in the AZ cycle still has both signs about half the time.When changing U110 one may also have to adjust R112/ R114 for a likely higher BW of the replacement.To a large part I would consider the ADC noise to be at it's limits.

author: chuckb
author_rank: Frequent Contributor
timestamp: April 07, 2025, 10:00:51 pm
content: Attached are some photos from my mods. I got a little carried away with the cotton in the one picture. I usually have about half of that.My 1st gen A9 QVR has a combination of 3D printer cover, cotton and Kapton to minimize air drafts. The 4 ADR1000s have 50 ohm current setting resistors and a 12.5k temperature setting resistor (66 deg C).This one has stopped drifting after 18 months. The other two QVRs are still drifting several ppm / year. I recalibrate them to my Wavetek 4911s or Z10s when needed.My machines run 24/7 doing various testing so I have not seen a voltage shift with extended power off. I may be able to test that this month.The new Opamps for the A3 mod are on SMT adapter pcbs plugged into gold plated machined pin sockets.I'm building a dual ADR1000 A9 board now from TiN. This design does not require any modifications to the A1 PCB.With a high current QVR and choppers in A3 I may have reached a flicker noise floor for the A3 ADC.Better 20MHz oscillators did not help.The performance limit may be Excess Noise in the U180 resistors. Some of the main resistors have 7V across them. An excess noise index of -50dB (very very good) would yield the 40nV noise floor that I am seeing.Next areas -1. Reduce the noise of the Internal +-10V reference with a better Opamp (U400). I believe these voltages are used as internal transfer standards during ACAL and for resistance measurements. Replacing the LT1013 with an OPA2182 chopper will reduce the internal reference voltage noise 4-5x.2. A small heater to hold U180 at a constant temperature. U180 should be able to be controller to 0.01 deg C. See photo. A small heater pcb is attached to a chunk of aluminum. U180 temperature sensing is from a thermistor in the hole in the middle of the aluminum heat spreader.Concept -A very small processor would control the heater. The heater is sized to provide a maximum of 10 deg C temperature rise. At startup the heater goes to 50% power for a 5 deg C temp rise of U180. After 2-3 hours the processor notes the temperature and starts controlling to that. Then the temperature of U180 will be held steady as ambient changes +-5 deg C. If the heater control reaches an edge, change the setpoint 2C up or down as needed and keep controlling.3. Take a very low noise 7.14V from the Z10 Voltage standard (2-3nV noise level) and use that in place of the A9 module. Find the ultimate limits of the A3 ADC in the HP3458A.The white noise limit of the A3 is pretty much fixed by design but I think there may be room to improve the flicker noise floor and the temperature stability.Should be fun.

author: IanJ
author_rank: Unknown
timestamp: April 08, 2025, 05:09:56 pm
content: Not sure about the DIP to SMD adaptors towering up from the Pcb like that, and I had the same thoughts when I decided to do something similar on my 3245A.What I did was create a custom 8-pin DIP to SMD board that's single sided and had castellated holes so that they could be soldered directly onto the main board.No need for pins/legs, the castellated holes mean you can solder in place over the original 8-pin footprint.UPDATE: If you get them made, then choose 1.0mm thick PCB as I found that preferable to the normal 1.6mm FR4.Gerbers attached if you want them plus some pics.Ian.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 08, 2025, 10:04:59 pm
content: Comparison of noise of ADC (Jumper P100 near A9 set to GND/+7)AZ on:1NPLC has significant lower noise than 10NPLC (n x 10NPLC), it needs 3-4 times longer integration times to reach the same noise level (ADev plot).For 1NPLC the noise with external short, internal short & Ref (ADC only) is essentially the same, at 10NPLC the Ref noise is higher compared to the shorts.The noise for LTZ#3 (longer integration times) and 10.6V (shorter integration times) is mostly limited by instrument - the noises can not be compared directly (7.1V vs. 10.6V).

author: srb1954
author_rank: Super Contributor
timestamp: April 10, 2025, 01:27:02 pm
content: Quote from: Dr. Frank on April 07, 2025, 07:21:18 amHave you identified areas in the 3458A that are susceptible to air drafts?I note with my 3458A that there seems to be a hot spot around the input terminals area when scanning the case exterior with a thermal camera. The hot spots are more severe around the openings for the terminations and guard switch buttons indicating that there is quite a bit of heat escaping from behind this area of the front panel.The thermal camera also seems to show a slight 0.5℃ difference between the temperatures and the HI and LO terminals but I will have to put some thermocouples on those terminals to get a more accurate determination.

author: Dr. Frank
author_rank: Super Contributor
timestamp: April 10, 2025, 05:11:44 pm
content: Quote from: srb1954 on April 10, 2025, 01:27:02 pmWell, the 3458A works much more stable if you have a constant room temperature. Varying temperature makes precise / stable measurements and transfers impossible.This fact alone demonstrates, that it is susceptible to such effects.Directly I observed this behaviour with my KS34465A, where you can clearly see that the fan blows over the reference area and applying a shield (with the LM399 mounted), explicitly reduces the usual reading noise. Same effect on the 34465A but with the LTZ1000A board assembled.As others already wrote, the 3458A like all other DMM is slightly sensitive to air draft on its input jacks. I simply close the door of my basement lab and I don't move when I'm doing the measurements, otherwise I directly see an increase in the StD value.I think, the main effect is creation of e.m.f., but to a much lesser degree any heating from its interior.If you watch some videos from TiN, he always puts a shielding box around the input and output jacks of his calibrators and his 3458As.When you look on the analogue board of the 3458A from above , you'll see some holes in the shield, where air from the fan might enter, and as well might blow partly over the reference.I didn't test what happens if I would shut off this air flow, because the continuos temperature increase will definitely shift the reference value by its T.C., replacing a noise instability by a drift instability. Latter might be the higher contribution.Maybe Chuck could give a more detailed description (with pictures), how he has isloated his 3458A from internal air drafts on the analogue board.Again, I avoid cotton pads as these definitely create leakage currents.Frank

author: chuckb
author_rank: Frequent Contributor
timestamp: April 11, 2025, 03:31:32 am
content: I have used Cotton to baffle the airflow. I have also used Dacron to slow the air movement. Dacron (Terylene) is a polyester batting used in upholstery and clothing.I will see about getting some better pictures the next time the cover is off.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 12, 2025, 11:25:53 pm
content: Comparison of noise with turn over (-12V ref amp U165 is still stock LT1001):Quite some noise difference between positive and negative input voltage to the higher frequencies, at lower frequencies the difference vanishes.

author: MiDi
author_rank: Frequent Contributor
timestamp: April 18, 2025, 09:42:49 pm
content: Drift of A9 ADR1000 over around 2 months:A9 ADR1000 drift is very close to drift of LTZ#3, couple of short downtimes and couple of hours upside down operation have negligible effect on this ADR1000.Initial drift has settled to -2.6ppm in less than a month, drift since 24th of Feb should be <1ppm/a.The residual TC of 3458A in 10V range is around -0.06ppm/K (combined TC of A9, LTZ#3 (<+0.01ppm/K) & signal path outside of ACAL coverage).Premises:- linear interpolation of temperatures from hourly ACAL (CAL175)- ACAL noise correction of readings (around ±0.1ppm) - no further corrections applied- datapoints are rolling 5min means of readings (100NPLC, 4.2s)- filtered temperature range 31.9 - 32.8°C (best coverage of readings)- Feb: A9 ADR1000- Mar: A9 ADR1000 & U160 ADA4522 (+12V ref amp)- Apr: A9 ADR1000 & U160/U165 ADA4522 (±12V ref amps)- LTZ#3 drift is around -0.6ppm/year, 2 month: around -0.1ppm

author: MiDi
author_rank: Frequent Contributor
timestamp: June 01, 2025, 09:34:59 pm
content: Update of noise comparison between mods.4W Short:Only small improvement with upgrade to A9 ADR1000, otherwise no significant difference for upgrading the Ref amps U160&U165.ADC short (Jumper P100 near A9 set to GND) shows only little difference on long integration times / low frequencies - this means there is insignificant contribution from AFE (23nV flat, rising to 130nV @1mHz - see last figure).The red line is a bit off on long integration times / low frequencies, 10NPLC is similar to the others, so this should be just a fluke (no abnormalities in the timeseries visible, only a small dent at the beginning).FS (10.6V 3xLiIon):Similar picture as for short, only small improvement with upgrade to A9 ADR1000.ADC FS (Jumper P100 near A9 open & jumper from U160 out to ADC input DC_AD) shows the noisefloor of the ADC at 12V input and is similar to ADC short (AZ to +12ref) - it is mostly gaussian noise ~130nV/Hz^0.5 (as claimed in HP journal p.14).Noise of +12ref should be ~25nV flat / ~80nV @0.1Hz, -12ref ~35nV flat / ~85nV @0.1Hz (ADR1000 + Ref amp noise).This is insignificant contribution to ADC noise, which is in accordance with the measurements.Noise of AFE (100mV range):