DMM Noise comparison testing project - Page 1
Forum section: electronics / general

author: TiN
author_rank: Super Contributor
timestamp: April 10, 2015, 07:58:10 pm
content: RAWR, voltnuts,How about idea of testing ADC/front-end noise performance on various DMMs and making a common chart for reference?To start, only two variables to check, NPLC settings and VDC range.All testing to be done with short on inputs.Offsets irrelevant and can be nulled by math on captured data.As a starting point, here's some data from Agilent 34970A (34901A mux card, channel 118 shorted) and Keithley 2001, 2002.Data is live, on thisD3.js generated chart page.Current data statusAny meter can be added. For fair comparison I'd suggest to pick 1 hour of sampling time.Guide:1. Have to use interface to log data from meter, such as RS232 or GPIB/LAN. If there is USB port to transfer data from meter , that will work too.2. Disable all filtering / math functions on meter. We want get clean data from ADC subsystem. Processing can be done later on PC, in case if needed.3. Set fixed range, for example 100mV or 2V. Enable synchronous autozero if there is such in meter.4. Set NLPC aligned to power cycles (for example 1.00 NPLC, not 1.01 or 0.95)5. Enable high-impedance mode, if meter allows selection between 10Meg/Hi-Z (for example 34970A, 344xxA).6. Capture data. Suggest to capture at least 30 minutes, or leave overnight for example. I can cut stable part, when drift due to thermal changes is minimal from overall capture.7. Add meter information, mains parameters (60Hz or 50Hz, etc).8. Add special notes, if meter modified/non-standard (e.g. after repair with different parts, or changed parts, etc)9. Post CSV here, or send toftp://xdevs.com/with login and passworddatashortIf you have limited time, just run single setting set:* 10 NPLC (or maximum NPLC if it's less than 10 for your meter) + base range (10V or 20V, it's the one which have most accuracy per DMM spec), Autozero on, line sync on, filtering OFF.If want run more , use settings from table. Number meaning order to run (for example run only tests 2,3,4, if you not interested in fast NPLCs settings and ranges over 20V)0.01 NPLC0.1 NPLC1 NPLC10 NPLC50 NPLC100 NPLC1000 NPLC200mV+11+10+7+3+4+5+92V+11+10+7+2+4+5+920V+11+10+1Primary+4+5+5200V+11+10+8+6+8+9+91000V+11+10+8+6+8+9+9Autozero should be on, it will reduce time to get stready repeatable. With autozero off I saw little drift on 2001, which can be confused with more noise.I will add simple application in few days, to do GPIB capture and send data automatically.CSV-data for every measurement setup runRAW CSV data location for downloadExample GPIB command query to capture sample from Keithley 2001 isCode::SYST:AZER:TYPE SYNC; // Here we enable autozero sync:SYST:LSYN:STAT ON; // Here enable line sync:SENS:FUNC 'VOLT:DC'; // Measure voltage DCV:SENS:VOLT:DC:NPLC 10; // Set NPLC to 10:SENS:VOLT:DC:RANGE 2; // Set range manual to 2V:SENS:VOLT:DC:DIG 8.5; // Set resolution to 8.5 digits:SENS:VOLT:DC:AVER:STAT OFF; // Filter off:TRIG:SEQ:SOUR TIM; // Set trigger source from timer:TRIG:SEQ:DEL 1; // Set timer to 1 second:READ? // Read dataFor Keithley 2182 nanovolt meter it would be something like this:Code::SYST:AZER:STAT ON; // Here enable autozero:SYST:FAZ:STAT ON; // Here we enable front end autozero:SYST:LSYN:STAT ON; // Here enable line sync:SENS:FUNC 'VOLT:DC'; // Measure voltage DCV:SENS:VOLT:CHAN1:LPAS:STAT OFF; // Analog filter off:SENS:VOLT:CHAN1:DFIL:STAT OFF; // Digital filter off:SENS:VOLT:CHAN1:NPLC 5; // Set NPLC to 5:SENS:VOLT:CHAN1:RANG 10; // Set range manual to 10V:SENS:VOLT:CHAN1:DIG 8.5; // Set resolution to 8.5 digits:TRIG:SEQ:SOUR TIM; // Set trigger source from timer:TRIG:SEQ:DEL 1; // Set timer to 1 second:READ? // Read dataI am not sure if it work without modify 100%, since I never had 21828.5 digit mode probably will work, similar to 2001, but official value max is 7.5 digits.

author: opa627bm
author_rank: Regular Contributor
timestamp: April 10, 2015, 09:20:28 pm
content: RAWR,I have one 7/1/2 keithely nanovolt meter.How to collect it's noise?

author: dom0
author_rank: Super Contributor
timestamp: April 10, 2015, 09:35:26 pm
content: 1. Set up automated meas data retrieval (GPIB, RS-232, Ethernet)2. Collect data3. Apply high pass (<-- should have a common stepness and cutoff for all tests by everyone!) to remove offset and drift4. Calculate peak peak, RMS

author: Marco
author_rank: Super Contributor
timestamp: April 10, 2015, 10:26:24 pm
content: Do all meters throw moving average filters on top of the NPLC based samples by default ... or only Keithley?Ideally you'd have some stimulus near 1/NPLC frequency to make sure the meter isn't cheating.

author: TiN
author_rank: Super Contributor
timestamp: April 11, 2015, 04:02:25 am
content: 1. Have to use interface to log data from meter, such as RS232 or GPIB/LAN.2. Disable all filtering / math functions on meter. We want get clean data from ADC subsystem. Processing can be done later on PC, in case if needed.3. Set fixed range, for example 100mV or 2V. Enable synchronous autozero if there is such in meter.4. Set NLPC aligned to power cycles (for example 1.00 NPLC, not 1.01 or 0.95)5. Capture data. Can capture few hours, or leave overnight for example. I can cut stable part, when drift minimal from overall capture.6. Post CSV here, or send toftp://xdevs.com/with login and passworddatashortI will add simple application in few days, to do GPIB capture and send data automatically.Example GPIB command query to capture sample from Keithley 2001 isCode::SYST:AZER:TYPE SYNC; // Here we enable autozero sync:SYST:LSYN:STAT ON; // Here enable line sync:SENS:FUNC 'VOLT:DC'; // Measure voltage DCV:SENS:VOLT:DC:NPLC 10; // Set NPLC to 10:SENS:VOLT:DC:RANGE 2; // Set range manual to 2V:SENS:VOLT:DC:DIG 8.5; // Set resolution to 8.5 digits:SENS:VOLT:DC:AVER:STAT OFF; // Filter off:TRIG:SEQ:SOUR TIM; // Set trigger source from timer:TRIG:SEQ:DEL 1; // Set timer to 1 second:READ? // Read dataFor Keithley 2182 nanovolt meter it would be something like this:Code::SYST:AZER:STAT ON; // Here enable autozero:SYST:FAZ:STAT ON; // Here we enable front end autozero:SYST:LSYN:STAT ON; // Here enable line sync:SENS:FUNC 'VOLT:DC'; // Measure voltage DCV:SENS:VOLT:CHAN1:LPAS:STAT OFF; // Analog filter off:SENS:VOLT:CHAN1:DFIL:STAT OFF; // Digital filter off:SENS:VOLT:CHAN1:NPLC 5; // Set NPLC to 5:SENS:VOLT:CHAN1:RANG 10; // Set range manual to 10V:SENS:VOLT:CHAN1:DIG 8.5; // Set resolution to 8.5 digits:TRIG:SEQ:SOUR TIM; // Set trigger source from timer:TRIG:SEQ:DEL 1; // Set timer to 1 second:READ? // Read dataI am not sure if it work without modify 100%, since I never had 21828.5 digit mode probably will work, similar to 2001, but official value max is 7.5 digits.Marco,Filter on any Keithley is optional, and can be disabled by press of one button "FILTER"

author: ManateeMafia
author_rank: Frequent Contributor
timestamp: April 11, 2015, 04:56:56 am
content: TiN,I have been using EZGPIB to access the 2K1 today. I will try and tweak it add the extra commands. Are you writing your own programs or are you using some open-source utilities?

author: TiN
author_rank: Super Contributor
timestamp: April 11, 2015, 05:01:44 am
content: I am doing it all wrong, LabView.Hardware guy here...My software skills are not good enough to write something to take data from GPIB, plot a graph, toss into CSV file, send over to FTP at same time.On LV side it took few days to figure everything out to get this spaghetti producing my data.

author: Dr. Frank
author_rank: Super Contributor
timestamp: April 11, 2015, 06:42:07 am
content: To really measure the noise of the ADC, you need to do the measurement on one fixed DCV range, where only the ADC is in the signal path, but no amplifier or divider.Otherwise, you'd measure additionally the noise of these components.Therefore, you have to measure on the 10V range on most bench DMM.Then, it would be a good idea to use Ulrich Bangerts program PLOTTER to crunch the data fir modified Allan variation, which gives the noise / stability over sampling period. A single sampling interval does not tell so much about the noise performance.. See noise figure diagram of the 3458A in its DCV specifications.Proper setting of aperture and sampling time , i.e. the correct normalization of data would be required for that, maybe Autozero to turn off for seamless sampling..Then I wonder, if simply sampling Zero will give an adequate measure of the noise. Maybe it's necessary to measure at Full Scale (10V), with an appropriate, very quiet source.I think it's better to make a proper definition of such a measurement setup and to put a little bit of investigation in that beforehand, otherwise people measure wildly 'something', and you only get useless, contradicting data.These measurements can be checked against the instruments specifications, if latter one is done well.Frank.

author: TiN
author_rank: Super Contributor
timestamp: April 11, 2015, 06:59:03 am
content: That's exactly a reason, why suggested measuring zero and nothing else for now. Already changed topic name to avoid confusion of "ADC noise term" and "DMM noise".Expecting people (who may have time to have DMM run overnight to collect data) to have quiet and stable 10V reference source (which as we know can be a challenge itself for hiend 6.5/7.5+digit meters) is a lot to ask. But copper wire and short is available everywhere.As of range, yes, most accurate range will have less frontend switching/components on A/D signal path, but does not avoid problem altogether.Adding extra ranges and different NPLC settings to comparison have simple purpose - to get more data between instruments. Also this will be rather indicative to overall performance people can see using meter, rather than purely scientific ADC-only noise, which is far less easy to measure properly. It would also have less meaning for most of us, since it's important to see what noise levels can be expected from instrument as a whole.I bring this topic from a question of few members in 2001 repair thread, that their meters showing excessive noise after repair, and wondering if that was normal, or there is actually hidden issue.Having raw data available will also let to do all different analysis, to anyone's liking. I think bell frequency occurrence histogram would be better and easier to represent noise performance as well. Will try to make some later.Another thought is having multiple members run collect same data setup will work as guard band against measuring "something". As per simple statistics, multiple meter of same model doing same stuff should get pretty close in results. If members A, B and C get 100nV median figure, and only member D got 200nV then it's likely later one have some issues with setup. Checking against specs is another guard band too.

author: quarks
author_rank: Frequent Contributor
timestamp: April 11, 2015, 05:04:59 pm
content: bookmark

author: lukaq
author_rank: Regular Contributor
timestamp: April 11, 2015, 05:46:57 pm
content: is it worth adding 34401a here?

author: TiN
author_rank: Super Contributor
timestamp: April 11, 2015, 05:50:22 pm
content: Yes, why not. We can add any bench DMM to overall list.

author: Galaxyrise
author_rank: Frequent Contributor
timestamp: April 11, 2015, 06:19:17 pm
content: One of my Keithley 2000s. "slow" speed, no filtering, 10V range, 1 hour and 4 days. Data was rounded to microvolts.

author: ManateeMafia
author_rank: Frequent Contributor
timestamp: April 11, 2015, 06:45:00 pm
content: TiN,Do you have a sample CSV file for reference?I think I have the 2K1 working in EZGPIB, I just need to save the results in a format that has all the needed fields.

author: TiN
author_rank: Super Contributor
timestamp: April 11, 2015, 08:53:26 pm
content: GalaxyriseYou have CSV or log data capture?ManateeMafiaAll CSV from my graphs are linked in first post.

author: tszaboo
author_rank: Super Contributor
timestamp: April 11, 2015, 09:05:06 pm
content: OK, I might add a few sample points, we have quite a few type of meter at work. In fact, I'm interested how well my designs are stacking up with some DMMs.

author: ManateeMafia
author_rank: Frequent Contributor
timestamp: April 11, 2015, 09:25:20 pm
content: Got it.

author: macboy
author_rank: Super Contributor
timestamp: April 11, 2015, 09:32:17 pm
content: Quote from: ManateeMafia on April 11, 2015, 06:45:00 pmPlease post your EZGPIB code here. I can help you to test and debug it, and provide output formatting if needed.Since the 2001 is a SCPI meter, the same code should work with little or no modification with other SCPI meters.

author: ManateeMafia
author_rank: Frequent Contributor
timestamp: April 11, 2015, 09:51:41 pm
content: Will do here in a little while. I have been trying to clean it up and not embarrass myself (too much). It has been 20+ years since I even thought about Pascal.

author: ManateeMafia
author_rank: Frequent Contributor
timestamp: April 11, 2015, 10:34:03 pm
content: macboy,Attached is what I have written so far.The list of improvements that probably should be made, besides cleaning up my horrible formatting is ...1. Change format of date (universal format, 24hr time preferred)2. I used 'SecondsBetween()' to speed up testing. Probably can be changed to 'MinutesBetween()'3. I wanted to extract the serial number of the meter using *idn? but the result contained spaces and the EZGPIB_StringNthArgument() would not work with a comma delimiter. This is probably not that important of a feature. I wanted to use it for the filename or 2nd column name.4. I have added lots of remarks, but it makes it a little difficult to read.Any help would be appreciated.

author: HighVoltage
author_rank: Super Contributor
timestamp: April 12, 2015, 09:03:32 am
content: I had my 34461A running over night and this is the result:- Manual 10V range- Shortage through wires (Not a block)- NULL set before data collection- 100 NPLI am not sure how meaningful the data is without the shortage block.But it is about 8h of data

author: KedasProbe
author_rank: Frequent Contributor
timestamp: April 12, 2015, 12:53:05 pm
content: Quote from: TiN on April 11, 2015, 04:02:25 amWhy? I don't see the problem using the internal memory and then save it to file. (assuming you have enough memory)edit: csv attached, DM3068, Short, 2V range,100PLC, 10MOhm, auto zero on. (2 hours, step 4 sec, 1800 measurements) stddev: 134nVedit2 (file fixed)

author: TiN
author_rank: Super Contributor
timestamp: April 12, 2015, 03:01:54 pm
content: QuoteThat's fine too, I was just assuming that not much meters have USB interface to copy data. Keithley 2001/2002 for example don't have even RS232, only GPIB, even tho it can store data in NVRAM.QuoteIf you used fresh clean copper wire with good contact, it should be no visible difference.After you get shorting PCBs you could try that as well, if there will be any difference.I will add new data to first post and page soon, was busy fixing another 2001Now I have three which can collect data for us.

author: ManateeMafia
author_rank: Frequent Contributor
timestamp: April 12, 2015, 03:31:57 pm
content: TiN,I feel like I should get that last 2K1 fixed now just to keep up with you.I am currently modifying the code for the non SCPI devices like the 3457A and 3458A. Hopefully macboy can do some tweaking on the original code and I can dump it into this one.I have several (older) meters that I would like to get added including the HP 3456A, Flukes 8502A & 8506A, Solartrons 7061 & 7081, and Keithley 181. At least that is my wish list.Any ideas about measurement settings would be helpful. There are a lot less settings on the older meters like filtering.

author: Smith
author_rank: Frequent Contributor
timestamp: April 12, 2015, 04:05:05 pm
content: I guess I'll give the 6517A a try if when I get the time. If I can get the software running I might also try the Keithley 2000's, 2700 and 2701.