Coder Social home page Coder Social logo

greysacademiccode / i-v-vs-time-taker Goto Github PK

View Code? Open in Web Editor NEW
18.0 7.0 1.0 287 KB

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

License: MIT License

Python 100.00%

i-v-vs-time-taker's Introduction

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

i-v-vs-time-taker's People

Contributors

greyltc avatar greysacademiccode avatar josaine avatar l3iggs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

adharsh27r

i-v-vs-time-taker's Issues

Using this script with RS-232 connection?

Hello.

I'm new to python and I'd like to know if there's a simple way to modify this script to work with Keithley 2400 but via RS-232, or whole app shall be rebuilt to achieve this? It basically covers everything I need to measure with my device and I'd be sad if it's not possible use finished script..

Could not detect instrument with MODEL 2400

After following the instructions in readme file, when the code is executed followed by instrument selection, an error "Could not detect instrument with MODEL 2400" is received in the "IV Sweep Dynamics Investigator" dialog (even though Keithley 2400 is connected). What would be the potential issue?

Thanks,
Adharsh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.