3458A's comparison - From Jan 1 (REDUCED)

Realtime datalog test from Raspberry Pi. Fluke 732B 10V measured with multiple HP 3458A's (MM)

Please wait for all data to get loaded. It may take 10-30 seconds in worst case.
If some graphs (should be 5) are missing, try to reload page.

Tempco calculation
04188 unit, +0.0622 ppm/day [Jan 3 to Feb 17]


Data is reduced 16 times, using this python app


Warning, CAVEAT! Some data points in CSV's are missing, but are interpolated on graphs. These interpolated segments do not have REAL DATA! You can see them as very smooth sections on graph. Beware.

Download CSV files for full datalog details
CSV-data from HP 3458A 04188 #1
CSV-data from HP 3458A 08451 OPT002 #2
CSV-data from HP 3458A 02157 (with bad A3) #3
CSV-data from HP 3458A 02157 (with good A3) #3
CSV-data from HP 3458A 01527 #4

TiN's data
CSV-data from HP 3458A TiN Good ADC

Workflow:

* RPI accesses DMMs via GPIB and reads data.
* Data is formatted by python script into DSV string and written/append to file on FTP
* DSV-file is visible publicly on https://xdevs.com/datashort/
* Page http://xdevs.com/datalog_mm/ runs D3.js javascript library to read DSV file test.log to input data
* D3.js plots SVG graph online :)


# # xDevs.com Python 10V test for 3458A
# https://xdevs.com/guide/ni_gpib_rpi/
# https://xdevs.com/article/hp3458a_gpib/
# https://xdevs.com/fix/hp3458a/
import sys
import Gpib
import time
import ftplib

port = 21
ip = "ftp.xdevs.com"
password = "datashort"
user = "datashort"

inst = Gpib.Gpib(0,3, timeout=60) # 3458A GPIB Address = 3
inst.clear()

#Setup HP 3458A
#inst.write("*CLR")
inst.write("PRESET NORM")
inst.write("OFORMAT ASCII")
inst.write("DCV 10")
inst.write("TARM HOLD")
inst.write("TRIG AUTO")
inst.write("NPLC 200")
inst.write("AZERO ON")
inst.write("LFILTER ON")
inst.write("NRDGS 1,AUTO")
inst.write("MEM OFF")
inst.write("END ALWAYS")
inst.write("NDIG 9")

cnt = 0
tread = 2
temp = 38.5
inst.write("TEMP?")
temp = float(inst.read())
reflevel = 10.0000000
ppm = 0

with open('10v_3458_nplc200_mm.csv', 'a') as o:
    o.write("date;hp3458a;level;temp;ppm_level;\r\n")
    o.close()

ftp = ftplib.FTP(ip)               
ftp.login(user,password)           # connect to xDevs FTP
    
while cnt <= 10000000:
    cnt+=1
    with open('10v_3458_nplc200_mm.csv', 'a') as o:
        tread = tread - 1
        if (tread == 0):
            tread = 20
            inst.write("TARM SGL,1")
            inst.write("TEMP?")
            temp = inst.read()
        print ("Uploaded to FTP\r\n")
        file = open('10v_3458_nplc200_mm.csv','rb')
        ftp.storbinary('STOR 10v_3458_nplc200_mm.csv', file) #upload file
        file.close()
        inst.write("TARM SGL,1")
        data = inst.read()
        ppm = ((float(data) / reflevel)-1)*1E6
        inst.write("DISP OFF, \"%3.3f ppm\"" % float(ppm))
        time.sleep(1)
        print time.strftime("%d/%m/%Y-%H:%M:%S;") + ("[%8d]: %2.8f , dev %4.4f ppm, T:%3.1f" % (cnt, float(data),float(ppm),float(temp) ) )
        o.write (time.strftime("%d/%m/%Y-%H:%M:%S;") + ("%16.8f;%16.8f;%3.1f;%4.3f;\r\n" % (float(data),float(reflevel),float(temp),float(ppm) ) ))
        o.close()