Hybrid TUI/Web application, written in python developed by Ovchinnikov Resarch Group at the University of Kansas for easy, interactive transport measurements. Peppermint integrates Microsoft's QCoDeS driver repository into an interactive interface driven by the Textual and Bokeh libraries.
Peppermint exposes two primary duties: monitoring and measuring. Instruments which must be closely watched for long durations (temperature controllers) may be configured to log data indefinitely (and in the future, important system events may be sent as notifications to team members). On the other hand, measurements may be configured as a sequence of primitive actions, such as setting a parameter, starting a sweep, or simply waiting for a duration.
Clone this repository and install dependencies with poetry. Then start the application using poetry run Peppermint.py (or equivalent commands, depending on your installation method). poetry lock and poetry install should be used to initialize your virtual environment and ensure that all packages are downloaded, once the repository is cloned.
For developers, it is recommended to also install textual-dev (included in pyproject.toml) which provides a debug console via textual console. To log the application to the console, run Peppermint with textual run --dev Peppermint.py. This allows debugging of the application at runtime.
Additionally, if you want to work on the project remotely (i.e., you can't plug into an instrument) you can run the program using the --simulated-instruments lakeshore or --simulated-instruments keithley flags to load simulated Lakeshore 336 or Keithley 2450 drivers. Another way to do this is to add an instrument manually by pressing m on the instruments screen. At the time of writing, this does not properly refresh the instruments when adding a simulated instrument, so it may seem that it does not exist. Confirm this in the parameters screen (p).
Instruments can be added automatically by a user or (in the future) routinely when the application starts. Parameter tracking is handled automatically when preforming any kind of measurement, so all data is always saved.
Our environment implements a Lakeshore 336 temperature controller, for which we expose many important controls and collect data from in real-time.
Peppermint implements a versatile environment to configure a sequence of actions to be preformed by the instruments. Any measurement can be constructed from a sequence of building blocks: sets and sweeps.
|  |  |
|  |  |
|  |  |