Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix to kinesis.py when using ThorLabs HDR50/M rotation stage with BSC201 controller #46

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

mnirkko
Copy link

@mnirkko mnirkko commented Jul 7, 2023

Problem

  • Connecting to a ThorLabs HDR50/M rotation stage with BSC201 motor controller causes a bunch of warnings of type UserWarning to be printed: model number SCC201 doesn't match the device ID prefix 40((BSC101|SSC20.)).
  • A second UserWarning is printed: can't recognize motor model SCC201; setting all scales to internal units. This causes all scales to be set to internal units (1,1,1), so the stage cannot be rotated in units of deg as intended.

Debugging

  • The hardware model query return SCC201 (note the double C), which does not match anything in kinesis.py.
  • The printed label on the back of the device hardware says BSC201, which is also not listed as an available match.
  • The serial number starts with 40 which means the model number is compared with (BSC101|SSC20.) as a regex expression by the function _model_match(). This function returns False, causing get_device_info() to print a warning.

Solution

  • Edit the regex expression to include BSC201 and SCC201 as search patterns, and include the SCC20 pattern when attempting to set the scale correctly.
  • Now, no more warnings appear when connecting to the stage.
  • The resulting KinesisMotor._scale values are (75093.25279758392, 4031005.8101743045, 826.1143307371219). This matches the values from the APT User Manual (search for "HDR50") (75091, 4030885, 826) divided by 0.99997 deg (normalisation).

AlexShkarin and others added 3 commits November 15, 2022 21:55
Fix to avoid warnings and calculate scale correctly when connecting to a HDR50/M rotational stage with BSC201 controller.
Sets the scale correctly when using a HDR50 rotation stage and a BSC201 motor controller, which gets recognised by the model query as SCC201.
@mnirkko mnirkko changed the base branch from main to dev July 14, 2023 08:59
@mnirkko
Copy link
Author

mnirkko commented Jul 14, 2023

The PR now points to the development branch rather than the base branch.

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