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

Switch to absolute, not relative move commands #25

Open
Poofjunior opened this issue Jan 4, 2023 · 0 comments
Open

Switch to absolute, not relative move commands #25

Poofjunior opened this issue Jan 4, 2023 · 0 comments

Comments

@Poofjunior
Copy link
Collaborator

Poofjunior commented Jan 4, 2023

The ASI stages store relative movements as an integer in units of encoder ticks. Therefore, if we request repeated relative movements of a non-integer encoder tick value, we will accumulate error. Since we move ~20K steps in units of 1[um], it is possible to introduce about 20[um] of error at the end of this movement. This phenomenon is documented in the MOVEREL command.

The fix is to communicate with the box using absolute movements. Since we don't know when the NI card is outputting triggers, it would be prudent to setup a transaction where we fill up the Tigerbox buffer with as many moves as possible, and then regularly query the buffer size and refill it such that it never goes empty while being externally triggered.

Since the current refactor need not be any more accurate than the existing code, this feature can wait for a while.

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

No branches or pull requests

1 participant