Warning: Version 2.3.3 is the last release that supports Python 2.7. All newer releases only support Python 3.6 and higher.
A Python instrument controller and GUI for Bruker E500 EPR spectrometers, MercuryiTC temperature controllers and Keithley 2600 series source measurement units. CustomXepr relies on the python drivers keithley2600 and mercuryitc and the respective user interfaces keithleygui and mercurygui for functionality regarding the Keithley 2600 and MercuryiTC instruments.
CustomXepr for Linux and macOS enables the interaction with all instruments involved in field induced electron spin resonance (FI-EPR) measurements: the Bruker E500 spectrometer, through Bruker's Xepr Python API, the Oxford Instruments MercuryiTC temperature controller, and the Keithley 2600 series of source measurement units (SMUs). The program suite is structured into drivers and user interfaces for individual instruments (external packages), CustomXepr's main class which provides higher level functions that often combine functionality from multiple instruments, and a manager which handles the scheduling of experiments.
The aim of CustomXepr is twofold: First and foremost, it enables the user to automate and schedule full measurement plans which may run for weeks without user input. Second, it complements the functionality of Bruker's Xepr control software. This includes for instance powerful logging capabilities, a more accurate determination of the cavity's Q-value from its frequency response, more reliable tuning of the cavity, the ability to re-tune the cavity during long-running measurements, logging of the cryostat temperature during measurements, and many more. Low level functionality and communication with the spectrometer remains with Xepr.
Finally, CustomXepr fully supports Bruker BES3T data files (DSC, DTA, etc). The
customxepr.experiment.XeprData
class enables loading, plotting, modifying and saving such
data files from regular, 2D or pulsed experiements. It also supports reading and plotting
the pulse sequences used to acquire the data, as saved in the DSC file. More information
is provided in the API documentation for the
XeprData
class.
Make sure that you have PyQt or PySide installed on your system (all other dependencies will be installed automatically). Then install CustomXepr by running in a terminal:
$ pip install git+https://github.com/OE-FET/customxepr
CustomXepr communicates with with the Keithley and MercuryiTC through NI-VISA or pyvisa-py and is therefore independent of the actual interface, e.g., Ethernet, USB, or GPIB. Connections to the EPR spectrometer are handled through Bruker's Xepr Python API.
CustomXepr can be run interactively from a Jupyter console, or as a standalone program. In the latter case, it will create its own internal Jupyter console for the user to run commands.
You can start CustomXepr from a Python command prompt as follows:
>>> from customxepr import run_gui
>>> run_gui()
To start the CustomXepr GUI from a console / terminal, run customxepr
.
CustomXepr has a user interface which displays all jobs waiting in the queue, all results returned from previous jobs, and all logging messages. Common tasks such as pausing, aborting and clearing jobs, plotting and saving returned data, and setting temperature stability tolerances can be performed through the interface itself. However, apart from tuning the cavity and reading a Q-factor, all jobs must be scheduled programmatically through the provided Jupyter console.
CustomXepr's core consists of functions for preconfigured tasks, such as changing the
cryostat temperature, recording a transfer curve, performing a preconfigured EPR
measurement. For instance, customXepr.setTemperature(110)
tells the MercuryiTC to ch