• RE: 2636B: V pulse and transient current measurement

    You second task can be implemented with the asynchronous trigger model.

    Old forum showing the feature:
    asynchronous sampling from the source timing - capture transients

    I will upload a simple LabVIEW sample for loading scripts/functions and then making use of the functions from VIs.
  • RE: picoammeter 6485 firmware update problem

    I asked the factory AE to take a look at this.
    We suspect you have a serial number that has C01 firmware.
    If that is true, the unit cannot be down rev to Bxx firmware.

    Please provide screen shot of the *idn? response.
  • RE: IV measurements using arb waveform

    For PMU, there are three modes:
    two level pulsing (base and amplitude)

    The FullArb has no measurements;  it is sourcing only.
    The KPULSE utility is accessing the FullArb to play sine waves, etc.

    If you want IV measurements AND doing sine wave, you'd have to build it up from a piece wise segments in a SegArb sequence/waveform.

    Check out the pmu-dut-examples project and the pmu-segarb-complete test.
    It is using the PMU_SegArb_ExampleFull user module of PMU_examples_ulib.
    So long as you observe the rules for sequence defining, you can enter any SegArb that you desire on this.

    I suggest you contact your sales office/local applications engineer to get some detail on PMU.

  • RE: Simultaneous sine waves on SMU 2602 channels A & B

    Hello Fabrizio,

    Yes, this is very much possible with the 2600B SourceMeter.

    Sounds like you have our application note on ARB features of the 2600B SMUs
    Github code
    ARB Features for testing Ford EMC

    Either approach could work for generating sine wave from the SMUs.

    Suppose you use a list of 100 points to describe one cycle of the waveform.
    If you source those values at 10KHz rate, you’ll have the 100 Hz waveform.

    The max source rate is about 12K, so you’re approaching the limits of the speed.

    Keeping with the idea of 100 point list sweep:
    if trigger count is 100, then one cycle is sourced.
    if more than 100, the list is recycled.
    If trigger count is 0, then plays until you send abort command.

    If you don’t already, download the Test Script Builder application for running TSP code with the instrument.
    Then port it out to C# or Python, etc.

    Test Script Builder
  • RE: License File Not Working for KickStart

    Try this:
    - if open, close KickStart application.
    - use file explorer to navigate to the C:\ProgramData\Keithley directory
    - delete the Keithley directory
    - restart KickStart and again navigate to the manage license.
    Any host id info now?

    If still not, please contact your local sales/support office for assistance.
  • RE: Python VISA control of DAQ6510 with 7700 MUX card

    There are many, but I typically use the status byte and opc() for operation complete.

    Here I setup for 10 scans of 4 thermocouple channels:
    my_instr.write("status.request_enable = 32")
    my_instr.write("status.standard.enable = 1")
    my_instr.write("myScanList = \"101,110, 115, 120\"")
    my_instr.write("channel.setdmm(myScanList, dmm.ATTR_MEAS_FUNCTION, dmm.FUNC_TEMPERATURE)")
    my_instr.write("channel.setdmm(myScanList, dmm.ATTR_MEAS_THERMOCOUPLE, dmm.THERMOCOUPLE_K)")
    my_instr.write("channel.setdmm(myScanList, dmm.ATTR_MEAS_REF_JUNCTION, dmm.REFJUNCT_INTERNAL)")
    my_instr.write("channel.setdmm(myScanList, dmm.ATTR_MEAS_OPEN_DETECTOR, dmm.ON)")
    my_instr.write("channel.setdmm(myScanList, dmm.ATTR_MEAS_NPLC, 1)")
    my_instr.write("display.watchchannels = myScanList")
    my_instr.write("scan.scancount = 10")
    my_instr.write("scan.scaninterval = 1")
    my_instr.write("scan.create(\"101,110, 115, 120\")")

    Then when ready to run the scan:
    #status poll for opc()
    #attach our session to read_stb channel
    print("First status byte value: " + str(my_instr.read_stb()))
    my_instr.write("opc()")  #this signals operation complete
    #repeat until the SRQ bit is set
    still_running = True
    status_byte = 0
    debug = 1
    while still_running:
            status_byte = int(my_instr.read_stb())
            #if debug: print(status_byte)
            if debug: print(str(status_byte) + ' - ' + str(bin(status_byte)) + ' - ' + str(hex(status_byte)))
            if (status_byte and 64) == 64:
                 still_running = False
            time.sleep(0.5)  #500msec pause before asking again
    print("Last status byte value: " + str(status_byte))
    print("Scan is done - go get the data")

    Typical output from the Python code:
    First status byte value: 0 0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    0 - 0b0 - 0x0 
    96 - 0b1100000 - 0x60 
    Last status byte value: 96 
    Scan is done - go get the data

    The attached PDF has a second example for when using TSP functions.
  • RE: DMM 2750 Auto recording & export of measured values

    Are you using any scan cards with the 2750?  Or using it as a DMM to measure Ohms of a single devices at a time.

    The 2750 can be controlled by sending the SCPI commands that it understands over GPIB or RS-232.
    The SCPI commands are documented in the 2750 manual.

    The KickStart software can interface with 2750 over GPIB interface.
    The Windows computer will need a GPIB interface from National Instruments or Keithley (KUSB-488B).

    If using scan cards, use the datalogger application of KickStart (KICKSTARTFL-DL).
    If not using scan cards, use the DMM application of KickStart (KICKSTARTFL-DMM)

    More info:KickStart
  • RE: Python VISA control of DAQ6510 with 7700 MUX card

    Assuming the scan is complete, then from Python you could send something like this:
    my_instr.write("printbuffer(1, defbuffer1.n, defbuffer1.readings)")
    raw_data = my_instr.read()
    raw_data_array = raw_data.split(",")
    my_instr.write("printbuffer(1, defbuffer1.n, defbuffer1.relativetimestamps)")
    raw_time = my_instr.read()
    scaled_time = raw_time.split(",")

    The data from the readings will be from the various channels.
    So here is simple code for putting that into arrays for each channel
    #for the number of channels in the scan, need to decimate the data
    number_channels_in_scan = 4
    number_data_elements_per_chan = 1
    ch101_time = []
    ch101 = []
    ch102 = []
    ch103 = []
    ch104 = []
    for i in range(0, len(raw_data_array), number_data_elements_per_chan*number_channels_in_scan):
        if len(raw_data_array[i]) > 0:
  • RE: how to get EXIT key file in kickstart for checking it in AMS

    Step 1:  In the KickStart, generate an exit key (and have the LIC file).
    Seems you already did that as the screen shot of KickStart shows no license.  I assume you already exported it to have this state.

    Step 2:  in the AMS license site, navigate into your in use license inventory and use the Upload to receive the LIC file.

    See attached file/screen shots.
  • RE: Problem when Measure I-V curve with 4200, triax-cable

    To have more insight, under the Advanced settings of the Terminal Settings, place a check box on the Status Reporting for each SMU.
    This will put a new column in the sheet.  When you hover or dwell the mouse cursor on that column of data, the tool tip window will decode the status info.
    In particular, knowing which current measure range is in use could be helpful.

    What settings for current measure range do you use?  Limited auto?

    The level of current is quite small, so more settling time might help too.  Try adding some Sweep Delay.
    Or try using smaller dV/dt step sizes on the gate voltage sweep (more points).

    If you have the 8101-PIV and the 1GΩ sample resistor, you could compare the current measure of the two SMU.
    Use two terminal device and force a small voltage with one SMU while other forces 0V and measures the arriving current.

    In Clarius, under the Tools icon in the ribbon, run the SMU Auto Calibration to see if this helps.

    When was last time system went to calibration lab/service center?