Mercury iPS with fewer than three axes
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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