• RE: KITE program displays "KITE has stopped working"

    Your reference to KITE tells us you have the older 4200-SCS running on Win7 or earlier.
    Evidently some file corruption has occurred.
    You could try a reinstall of the KITE environment.

    More drastic would be to catch the Acronis restore during boot up.  Most of the older 4200 will have an as-shipped image in the Acronis software.   Check the manuals on use.

    Are you recently using the tool in a new way and encountering this error?

     
  • RE: Keithley DMM6500 - random jump touch issue

    Thanks for the videos.
    It behaves like the touch panel is receiving touch to change measure function.
    Something is wrong in your display.

    What happens if you place the instrument on different screen?  Swipe to graph or stats screen?  Does it stay there?

     
  • RE: Direct current overflow issue in Keithley DMM 6500 digital multimeter

    Seems you are saying that the DCI measure function returns overflow for the 3A and lower ranges.
    Both front and rear.  No connections and still get overflow.
    However, the 10A range available on rear only, is somewhat functional.

    To me, it sounds like a malfunctioning meter.
    Firmware unlikely to help such a symptom.

    Separate from DCI is the digitize current measure function.  Does that still work for the 3A and lower ranges?
  • RE: Voltage compliance issue in picoammeter 6487

    If you are seeing the OCOMP indicator when you turn the voltage source on, this means the maximum current (current limit) has been encountered.
    If this occurs even for open circuit, I suspect some malfunction in the instrument, or your cabling is not what you think it is.

    From front panel, you can adjust the amount of current limit.

    Both the reference and user manuals detail the procedure.
     

    From Reference Manual:

  • RE: Unable to set Source Current for SMU (Four Point Probe Experiment)

    See if this application note helps:
    Four Point Probe Resistivity with 2450
  • RE: communicate with two keithley via two gpib cables using python

    You have two keithleys and two gpib cables.
    But how many GPIB interface boards does the computer have?
    If only one gpib card in the PC, then only one program can take charge of it at a time.
    A single program that sends commands to two different gpib address would be needed for simultaneous use of both keithleys.
  • RE: DMM 2701 - Ethernet conection - The web page open but not able to connect to 2701

    The model 2701 uses port 1394 for the LAN communication.
  • RE: Cannot get 2500 readings per second with Keithley 2700

    You can try turning off the display:   :DISPLAY:ENABLE:STAT OFF

    I found an FAQ on tek.com for this topic.  It is indicating that the TRACE buffer is not the fastest one.

    Max Reading Rate from 2700, 2701 or 2750

    Alternate commands:
    *RST
    
    :SENSE:FUNC 'VOLT:DC'
    
    :SENSE:VOLT:NPLC 0.01
    
    :SENSE:VOLT:RANGE 10
    
    :SENSE:VOLT:AVER:STAT OFF
    
    :SAMPLE:COUNT 1000
    
    :TRIG:DELAY 0.0
    
    :SYSTEM:AZERO:STAT OFF
    
    :DISPLAY:ENABLE:STAT OFF
    
    :READ?
    
    Now read the data...
    
    To check for maximum speed apply a 1V RMS at 2Hz to the input. Run the above command sequence.
    
    The 1000 readings should show one complete cycle or less. This shows the meter is taking data at least at a rate of 2000 readings per second.
    
  • RE: Using Keithley 3706A with a python script

    Here is some Python sample code for scanning some channels with model 3706A:
    import pyvisa                                              
    import time                                                
    import matplotlib.pyplot as plt                
    import pandas as pd
    
    
    def check_error():
        status = my3706A.read_stb()
        if int(status) & 4 == 4 :    #test if the EAV (error available) bit is set
            error_response = my3706A.query("print(errorqueue.next())")
            print(error_response)
        else:
            print("No Errors")
    
    def get_scanState():
        my3706A.write("scanState, scanCount, stepCount, lastReading = scan.state()")
        return int(float(my3706A.query("print(tonumber(scanState))")))
       
    
    DEBUG = 0
    my3706A = pyvisa.ResourceManager().open_resource('TCPIP0::192.168.1.214::INSTR')
    #my3706A = pyvisa.ResourceManager().open_resource('USB0::0x05E6::0x3706::04428124::INSTR') # Connect to the keithley and set it to a variable named multimeter.
    my3706A.timeout = 10000  #number of msec to wait for VISA command completions
    #my3706A.write("")
    #put instrument into known state
    my3706A.write('reset()')
    my3706A.write('status.reset()')
    my3706A.write('errorqueue.clear()')
    #allocate a buffer for the measurements
    my3706A.write('buf=dmm.makebuffer(1000)')
    my3706A.write('buf.clear()')
    my3706A.write('buf.appendmode=1')
    my3706A.write('buf.collectchannels=1')
    
    if DEBUG: check_error()
    #configure the DMM settings
    my3706A.write("dmm.func= dmm.DC_VOLTS")  #   TWO_WIRE_OHMS   DC_VOLTS
    my3706A.write("dmm.range=1")
    my3706A.write("dmm.autorange=1")
    my3706A.write("dmm.nplc= 1")   #0.0005 to 15 for 60Hz power
    my3706A.write("dmm.autozero= dmm.ON")
    my3706A.write("dmm.autodelay= dmm.ON")
    
    if DEBUG: check_error()
    #associate these dmm settings with a configuration name
    # do not use a factory preset name, e.g., 'dcvolts'
    # custom settings = requires custom name
    my3706A.write('dmm.configure.set("my_dcvolts")')
    
    if DEBUG: check_error()
    #associate the dmm config with channels
    my3706A.write('dmm.setconfig("1001:1008", "my_dcvolts")')
    
    
    #define a scan
    my3706A.write('scan.measurecount=1')  # one reading per scan
    my3706A.write("scan.create('1001:1008')")
    my3706A.write("scan.scancount = 10")     # 10 scans
    # now that scan is setup, run the scan
    my3706A.write("buf.clear()")   # just in case, clear the buffer of any content
    #my3706A.write("scan.execute(buf)")  # this one does not return until scan completes
    my3706A.write("scan.background(buf)")  # this one returns;  Python needs to coordinate with done.
    
    # setup a while loop to exit when scan state goes to 6 = scan.SUCCESS = done
    script_running = True
    DEBUG_LOOP = 0
    while script_running:
        present_state = get_scanState()
        if DEBUG_LOOP: print("Scan State: " + str(present_state))
        if present_state == 6:
            script_running = False
        time.sleep(0.5) #delay before asking again
    
    #ask for the data
    my3706A.write("printbuffer(1, buf.n, buf.relativetimestamps, buf.readings)")
    raw_data = my3706A.read()
    # raw data will be comman delimited string:
    # time, ch1, time, ch2, time, ch3, time, ch4, time, ch5, time...
    # parse the data
    raw_data_array = raw_data.split(",")
    timestamps = []
    chan1001 = []
    chan1002 = []
    chan1003 = []
    chan1008 = []
    num_channels = 8
    num_elements = num_channels * 2  #time, ch1, time, ch2, time, ch3, time, ch4, time, ch5, time....
    for element in range(0, len(raw_data_array), num_elements):
        timestamps.append(float(raw_data_array[element]))
        chan1001.append(float(raw_data_array[element+1]))
        chan1002.append(float(raw_data_array[element+3]))
        chan1003.append(float(raw_data_array[element+5]))
        chan1008.append(float(raw_data_array[element+15]))
    #create dataframe
    data = {'Timestamp': timestamps, 'Channel 1': chan1001, 'Channel 2': chan1002, 'Channel 3': chan1003, 'Channel 8': chan1008}
    df = pd.DataFrame(data)
    
    # Set 'Timestamp' as the index
    df.set_index('Timestamp', inplace=True)
    # Print the DataFrame
    print(df)
    # ********************  Simple Graph ******************
    plt.figure()
    plt.subplot(3, 1, 1) # nrows=3, ncols=1, index=1
    plt.plot(timestamps, chan1001, 'o-b')
    plt.subplot(312)
    plt.plot(timestamps, chan1002, 'x-r')
    plt.subplot(313)
    plt.plot(timestamps, chan1003, '.-g')
    plt.show()
    
    
    my3706A.clear()
    my3706A.close()
  • RE: 2450 Cyclic Voltametry

    The electrochemistry scripts for use with 2450, 2460 or 2461 are not open source.

    The scripts can be obtained on model number EC-UPGRADE

    EC-UPGRADE Kit Quick Start Guide