Skip to content

a gui for controlling a keithley 2400 sourcemeter, useful for investigating transient events in I-V sweeps of solar cells

License

Notifications You must be signed in to change notification settings

greysAcademicCode/i-v-vs-time-taker

Repository files navigation

i-v-vs-time-taker

This project contains a graphical user interface for controlling a keithley 2400 sourcemeter, useful for investigating transient events in I-V sweeps of solar cells. This tool can produce data files that contain current and voltage measurements as a function of time sampled at ~200Hz (as fast as I can currently get the Keithley to go) during an I-V sweep measaurement. Such 'high speed' data sampling can be used to intelligently advance the sweep once a steady state has been reached at each point in the sweep. This prevents over-estimation of the current in solar cells with large RC constants such as certian perovskite cell architectures.

Two other projects accompany this project:

  • batch-i-v-analysis
  • a GUI that can plot the current and voltage verses time data files generated here. Also does fully automated curve fitting and analysis on regular i vs v data sets
  • hystAnalysis
  • a MATLAB script that does much more in depth analysis of the current and voltage verses time data files generated here

The interface

interface

If you find this code useful...


Please cite our work:
DOI: 10.3390/photonics2041101
and shoot me an email. grey [AT] christoforo [DOT] net
I'd be super happy to accept pull requests/bug fixes (because I know tere are a bunch) or ideas you have for improving this!

Files here


  • i-v-vs-time-taker.py
  • Main python script. Run this to use the tool. You can edit the code in this file directly using your favorite python editor.
  • ivSweeper.ui
  • Contains user interface design for main window, edit with Qt Designer (I used version 4.8.5)
  • ivSweeperUI.py
  • Do not edit this file directly. Instead generate it from ivSweeper.ui by issuing:
    pyuic4 -o ivSweeperUI.py ivSweeper.ui
  • gpib.py
  • Contains thread-safe gpib interface for communication with the sourcemeter

Setup & Initial run


Firstly, the firmware on your 2400 sourcemeter must be up-to-date. This project expects and requires version C33. Here is a link to that firmware in case your 2400 is out of date. You might also need the firmware flashing utility for your sourcemeter.

Before you begin, you should verify communication with your sourcementer: install National Intstruments' MAX and software and use the "Communicate with Instrument" button it to send an *idn? query to your sourcementer. It should return something like KEITHLEY INSTRUMENTS INC.,MODEL 2400,1120648,C33 Mar 31 2015 09:32:39/A02 /K/J before you try to use this software. It must contain C33 indicating you have the correct firmware revision.

For Windows:

NOTE: It may be possible to skip steps 1-3 below by downloading and extracting the latest release exe .zip from here and double clicking on the .exe in there. If any of this fails with the pre-packaged exe then it's probably best to start again from step 1 here and do things the "native" python way.

  1. Download the latest WinPython 2.7 and run that unpacker execuitable. You should end up with a folder named something like WinPython-64bit-2.7.10.3 in your location of choice.
  2. Download a snapshot of this project and save it in the WinPython folder from the previous step and extract it there. You should now have a folder called i-v-vs-time-taker-master inside your WinPython folder
  3. Run WinPython Command Prompt.exe found in your WinPython folder and in the terminal that pops up execute the following commands:
pip install pyvisa==1.4
cd ..
cd i-v-vs-time-taker-master
pyuic4 -o ivSweeperUI.py ivSweeper.ui
python i-v-vs-time-taker.py

You should now be presented with the graphical user interface

  1. Under the "Instrument Selection" section, choose "(Re)Scan for Instruments". The dropdown list should now be populated with all the instruments connected to your machine.
  2. Choose your Keithley 2400 from the Instrument Selection dropdown list
  • You should immediately see the message "Connected to KIETHLEY..." flash up briefly in the bottom of the window and your sourcemeter will be reset to its factory default settings.
  1. Click the "Browse" button in the "Output Directory" section and choose a folder where your data files will be created.
  2. Type in an output file name in the box there. This will be used as a prefix for the file name to be created.
  3. Change "Speed:" to "Fast"
  • The Keithley defaults to High Accuracy mode when it's reset. This can cause the default 100 point I-V scan to take a while.
  1. Uncheck the "Auto Zero" tickbox
  2. Now click the "Start Sweep" button
  • The I-V sweep should take about 2 seconds to complete (if not, wait for it to finish before you do anything because the "Abort Sweep" button doesn't work too well in "I vs V" mode)
  • A two column (current, voltage) data file (in .csv format) should now be in your output directory, with each of the 100 rows corresponding to one point in the 100 point I-V sweep
  1. Change Mode: to I,V vs t
  2. Now click the "Start Sweep" button
  • The keithley will now perform the exact same I-V sweep, except it will atempt to collect as many data points as possible during the sweep
  • The resulting output file contains one row for each data point collected, although there will be many more rows this time. There will be four columns: voltage, current, a time stamp and a status number.

The maximum powerpoint tracker "Dwell @ Max Power" is very experimental and lightly tested

About

a gui for controlling a keithley 2400 sourcemeter, useful for investigating transient events in I-V sweeps of solar cells

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages