Skip to content

PatrickADz/lakeshore350-python

Repository files navigation

lakeshore350-python

Python driver for the Lake Shore Model 350 Temperature Controller, communicating over TCP/IP.

Developed for laboratory cryogenic instrumentation work (heterodyne receiver testing, cryostat monitoring), where reliable remote control and data acquisition from Python is needed for integration into larger acquisition/control systems.

Features

  • Read temperature (K or C) from any input channel (A-D)
  • Read/write full input channel configuration (sensor type, curve, filter, name, temperature limit)
  • Copy configuration between channels
  • Sensor status checking (OK / Open / Short)
  • No external dependencies for the driver itself (stdlib only)
  • Example scripts: live monitor with CSV logging + plotting, channel config copy

Installation

git clone https://github.com/PatrickADz/lakeshore350-python.git
cd lakeshore350-python
pip install -e .

# optional, only needed for the plotting example
pip install -e ".[plot]"

Quick start

from lakeshore350 import LakeShore350

with LakeShore350("192.168.1.100") as ls:
    print(ls.get_idn())
    print(ls.read_temperature_K("A"))
    print(ls.get_input_config("A"))

Example scripts

The examples/ folder contains ready-to-run scripts. Configuration for all of them is resolved as: CLI argument > config.ini > built-in default — set config.ini up once for your routine lab setup, then override anything ad hoc from the command line.

cd examples
cp ../config.example.ini config.ini
# edit config.ini: set your instrument's real IP, preferred unit, channel names, etc.

Live monitor (CSV log + optional live plot):

python live_monitor.py                              # uses config.ini
python live_monitor.py --ip 192.168.1.50 --no-plot   # override IP, headless
python live_monitor.py --channels A,B --unit C        # override channels/unit
python live_monitor.py --help                         # see all options

Copy channel configuration:

python copy_channel_config.py A D
python copy_channel_config.py A D --ip 192.168.1.50

Interactively view/edit a channel configuration:

python configure_channel.py A
python configure_channel.py            # prompts for the channel

Shows the current sensor type, range, curve, filter, name and temperature limit, lets you pick which fields to change and shows valid options for each, then asks for confirmation before applying.

Running tests

Tests use a mocked socket, so no physical instrument is required:

pip install -e .
python tests/test_driver.py

Repository structure

lakeshore350-python/
├── src/lakeshore350/       # the driver (importable package)
│   ├── driver.py
│   └── exceptions.py
├── examples/               # runnable example scripts
│   ├── labconfig.py        # config.ini + argparse merging helper
│   ├── live_monitor.py
│   ├── copy_channel_config.py
│   └── configure_channel.py
├── tests/
│   └── test_driver.py
├── config.example.ini
└── pyproject.toml

Notes

  • Tested against firmware used at CePIA (Universidad de Concepción) for cryostat and receiver temperature monitoring.
  • Not affiliated with or endorsed by Lake Shore Cryotronics, Inc. "Lake Shore" and "Model 350" are used here only to describe compatibility.

License

MIT — see LICENSE.

About

Python driver and CLI for Lake Shore Model 350 temperature controllers, used for cryogenic instrumentation in radio astronomy receiver systems.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages