APS-4ID-POLAR / APS-4ID-POLAR/ipython-polar

Extra diffractometer motors get set as `Kind.config`

Open
#103 8 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
1
Forks
3
PR merge metrics
No merged PRs in 30d

Description

The diffractometer device is setting every motor that is not `_real` or `_pseudo` as `Kind.config`. This is a problem because the position of these motors end up not being saved in the baseline. It looks like this is something that is done by `ophyd.PseudoPositioner`, but I couldn't understand how. Note that adding `kind="normal"` to the instance does not fix it. The only workaround that seems to work is to change the `Kind` after the diffractometer is initialized:
https://github.com/APS-4ID-POLAR/ipython-polar/blob/43839e7a1d369b8155aa028cfa7f561e1314d75d/profile_bluesky/startup/instrument/devices/huber.py#L124

This seems to load fine, but I haven't tested running a scan.

@prjemian : Could you check this in a simulated diffractometer?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the diffractometer definition in profile_bluesky/startup/instrument/devices/huber.py around line 124 and trace how ophyd.PseudoPositioner assigns motor kinds. Reproduce the behavior with a simulated diffractometer, then run a scan to verify that extra motor positions are included in the baseline and that the final Kind handling works without the post-initialization workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
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.