microsoft / microsoft/Qcodes

Mercury iPS with fewer than three axes

Open
#6,681 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
459
Forks
359
Avg merge
3d 6h
Merged PRs (30d)
73

Description

The Oxford Mercury iPS driver currently assumes a three-axis vector magnet:
https://github.com/microsoft/Qcodes/blob/1280f4a1730a0f70659aec835ce3935a1894de05/src/qcodes/instrument_drivers/oxford/MercuryiPS_VISA.py#L330-L334

For systems with fewer axes than this, the instrument-level parameters like z_ramp do not work / run indefinitely because _ramp_safely() (same for _ramp_simultaneously_blocking()) waits for each axis to return from state "TO SET", which axes that do not exist never do.
https://github.com/microsoft/Qcodes/blob/1280f4a1730a0f70659aec835ce3935a1894de05/src/qcodes/instrument_drivers/oxford/MercuryiPS_VISA.py#L539-L547

The old driver (removed in https://github.com/microsoft/Qcodes/pull/4936/) allowed users to either specify which axes are present or queried the device itself for this information. I'm not sure how readily the current driver admits this due to the use of FieldVector. Can its components of axes that do not exist simply be set to zero always?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/qcodes/instrument_drivers/oxford/MercuryiPS_VISA.py at the FieldVector setup and the _ramp_safely() and _ramp_simultaneously_blocking() methods referenced in the issue. Compare the current behavior with the old driver removed in PR #4936, including how present axes were specified or queried. Done means instrument-level ramp parameters work for Mercury iPS systems with fewer than three axes without waiting on nonexistent axes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.