Skip to content

Fix lakeshore336 snapshot bug - #8520

Open
Nikolaos Chatzaras (SnX59) wants to merge 3 commits into
microsoft:mainfrom
SnX59:fix_Lakeshore336_snapshot_bug
Open

Nikolaos Chatzaras (SnX59) wants to merge 3 commits into
microsoft:mainfrom
SnX59:fix_Lakeshore336_snapshot_bug

Conversation

@SnX59

Copy link
Copy Markdown

The 336's HTRSET has no output_type field, and its voltage outputs 3 & 4 don't support HTRSET at all. Group._separator_parser then mis-zipped parameter names against the shorter instrument response, producing one Snapshot: Could not update parameter warning per heater-setup parameter.

Model 335 and 372 behavior is unchanged. I scoped the fix to the reported 336 issue but perhaps it might be important to update those drivers too!

Updated the Lakeshore Model 336 driver to exclude output-type field for heater setup and disable heater setup for unpowered outputs.
Added parameters for heater output setup including output type, heater resistance, maximum current, and display settings. Enhanced functionality for heater output configuration.
@SnX59
Nikolaos Chatzaras (SnX59) requested a review from a team as a code owner September 21, 2026 12:03
):
super().__init__(parent, output_name, output_index, has_pid=False, **kwargs)
# Outputs 3 and 4 are unpowered analog voltage outputs that do not
# support the heater setup (HTRSET) command, so disable it entirely.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that we disable it for all 4 outputs (1,2,3,4) is that what we want?

@SnX59 Nikolaos Chatzaras (SnX59) Sep 21, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The has_heater_output_setup / heater_output_has_output_type flags are per‑output‑instance constructor arguments, not a global/class switch. The Model 336 builds its four outputs from two different subclasses:

output_1, output_2 → LakeshoreModel336CurrentSource -> Keep HTRSET without output_type
output_3, output_4 → LakeshoreModel336VoltageSource -> no HTRSET group at all

)
"""Heater Resistance Setting: 25/50ohm"""
self._has_heater_output_setup = has_heater_output_setup
if has_heater_output_setup:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to investigate it we can add this in a subclass. As it this would make these parameters not observable statically. I am happy to do this

@codecov

codecov Bot commented Sep 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.01%. Comparing base (2015406) to head (50c4d18).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8520   +/-   ##
=======================================
  Coverage   72.00%   72.01%           
=======================================
  Files         305      305           
  Lines       32019    32028    +9     
=======================================
+ Hits        23055    23064    +9     
  Misses       8964     8964           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@SnX59

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree company="Microsoft"

@SnX59

Copy link
Copy Markdown
Author

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants