Skip to content

Conversation

AdvancedImagingUTSW
Copy link
Collaborator

Now retrieve current settings before by default changing them. Goal is to modify settings as little as is possible.

And importantly, greatly reduce the maximum speed...

@EvoleneP - Please test this on your system before we meet.

Now retrieve current settings before by default changing them. Goal is to modify settings as little as is possible.

And importantly, greatly reduce the maximum speed...
@EvoleneP
Copy link
Collaborator

After testing, now both the X and Y stages are jumping. Previously, it was only the Y stage (the X-stage was okay). The log files now state the following:

2025-07-16 09:34:27,683 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for X is 85.0
2025-07-16 09:34:27,690 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for Y is 85.0
2025-07-16 09:34:27,697 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for Z is 85.0
2025-07-16 09:34:27,712 - model - DEBUG - asi: ASI Stage - Accuracy for X is 0.0002
2025-07-16 09:34:27,712 - model - DEBUG - asi: ASI Stage - Setting Finishing Accuracy for X to 5.9e-05
2025-07-16 09:34:27,731 - model - DEBUG - asi: ASI Stage - Error for X is 4000.0
2025-07-16 09:34:27,731 - model - DEBUG - asi: ASI Stage - Setting Error for X to 7.08e-05
2025-07-16 09:34:27,749 - model - DEBUG - asi: ASI Stage - Accuracy for Y is 0.0002
2025-07-16 09:34:27,749 - model - DEBUG - asi: ASI Stage - Setting Finishing Accuracy for Y to 5.9e-05
2025-07-16 09:34:27,767 - model - DEBUG - asi: ASI Stage - Error for Y is 4000.0
2025-07-16 09:34:27,768 - model - DEBUG - asi: ASI Stage - Setting Error for Y to 7.08e-05
2025-07-16 09:34:27,786 - model - DEBUG - asi: ASI Stage - Accuracy for Z is 1.2e-05
2025-07-16 09:34:27,795 - model - DEBUG - asi: ASI Stage - Error for Z is 0.0002
2025-07-16 09:34:27,795 - model - DEBUG - asi: ASI Stage - Setting Error for Z to 7.08e-05
2025-07-16 09:34:27,811 - model - DEBUG - asi: ASI Stage - Backlash for X is 0.0
2025-07-16 09:34:27,819 - model - DEBUG - asi: ASI Stage - Backlash for Y is 0.0
2025-07-16 09:34:27,827 - model - DEBUG - asi: ASI Stage - Backlash for Z is 0.01
2025-07-16 09:34:27,827 - model - DEBUG - asi: ASI Stage - Setting Backlash for Z to 0.0

@AdvancedImagingUTSW
Copy link
Collaborator Author

Reviewing old notes. Currently, our software does the following:

  • Sets the feedback alignment if the values differ.
  • Estimates the finishing accuracy as 0.5 pixel units. Thus, if we have a 65 nm lateral sampling, the finishing accuracy would be 32.5 nm.
  • Sets the finishing accuracy if the values differ. PC command.
  • Sets the error if the values differ.
  • Sets the error as 1.2 x the finishing accuracy.

Previous e-mails...

- For AA the factory default is 85 but I have seen improved performance at what seems to be zero downside at 90.  This can be a one-time event.
- The AZ zero balance also only needs to happen once after changing AA.
- Factory default error E is significantly more than the finishing accuracy PC, but E = 1.2 * PC is a reasonable lower bound for E.
- ```

We are seeing some aggressive flyback and poor settling, and I was trying to rule out what was causing it. I think some of the stage parameters can be optimized. However, the one hint I am thing to out is why we don’t see the oscillation in the virtual joystick, but do see when we send the MOVE command either via navigate or via the tiger controller software.


Thoughts...
- It seems as if the MOVE command could be causing us problems. Could consider MOVREL. 
- The finishing accuracy is probably too tight. 
- 

@AdvancedImagingUTSW
Copy link
Collaborator Author

AdvancedImagingUTSW commented Jul 18, 2025

Checking on the Expansion microscope. The horizontal stage movement for the FTP-2000 is good. For this microscope, that is defined as Z and Y. It is the focus stage that has a problem, which for the FTP-2000, would be the equivalent of their Z stage.

INFO Z:

Axis Name ChZ:         Z         Limits Status: W
Input Device :   Z WHEEL [J]     Axis Profile :STD_FP_ROT
Max Lim      :   500.000 [SU] mm Min Lim      :  -500.000 [SL] mm
Ramp Time    :     74.00 [AC] ms Ramp Length  :      5099 enc
Run Speed    :   0.38393 [S]mm/s vmax_enc*64  :      2231
Servo Lp Time:      0.50      ms Enc Polarity :         1 [EP]
dv_enc       :        15         LL Axis ID   :        26
Drift Error  :  0.000636 [E]  mm enc_drift_err:       115
Finish Error :  0.000530 [PC] mm enc_finsh_err:        96
Backlash     :  0.000000 [B]  mm enc_backlash :         0   
Overshoot    :  0.000000 [OS] mm enc_overshoot:         0
Kp           :       125 [KP]    Ki(*16)      :       100 [KI]
Kv           :        94 [KV]    Kd           :         0 [KD]
Ka           :         0 [KA]    Kadc         :         1 
Axis Enable  :         1 [MC]    Motor Enable :         0
CMD_stat     :   NO_MOVE         Move_stat    :      IDLE
Current pos  :  -10.6714      mm enc position :  -1937815
Target pos   :  -10.6714      mm enc target   :  -1937815
enc pos error:         0         EEsum        :         0
Lst Stle Time:         3      ms Av Settle Tim:         0 ms
Home position:   1000.00      mm Motor Signal :         0
mm/sec/DAC_ct:   0.01500 [D]     Enc Cnts/mm  : 181590.40 [C]
Wait Time    :         0 [WT] ms Maintain code:         0 [MA]
AAlign value :        80 [AA]    AZero value  :       119 [AZ]

INFO X

Axis Name ChX:         X         Limits Status: f
Input Device :      JS_X [J]     Axis Profile :   UFP_LIN
Max Lim      :   500.000 [SU] mm Min Lim      :  -500.000 [SL] mm
Ramp Time    :    109.50 [AC] ms Ramp Length  :      7459 enc
Run Speed    :   0.17148 [S]mm/s vmax_enc*64  :      2195
Servo Lp Time:      0.50      ms Enc Polarity :         1 [EP]
dv_enc       :        10         LL Axis ID   :        24
Drift Error  :  0.000636 [E]  mm enc_drift_err:       254
Finish Error :  0.000530 [PC] mm enc_finsh_err:       212
Backlash     :  0.000000 [B]  mm enc_backlash :         0   
Overshoot    :  0.000000 [OS] mm enc_overshoot:         0
Kp           :        75 [KP]    Ki(*16)      :        20 [KI]
Kv           :        96 [KV]    Kd           :         0 [KD]
Ka           :         0 [KA]    Kadc         :         1 
Axis Enable  :         1 [MC]    Motor Enable :         0
CMD_stat     :   NO_MOVE         Move_stat    :      IDLE
Current pos  :   -0.0254      mm enc position :    -10140
Target pos   :   -0.0253      mm enc target   :    -10122
enc pos error:         0         EEsum        :         0
Lst Stle Time:         9      ms Av Settle Tim:         0 ms
Home position:   1000.00      mm Motor Signal :         0
mm/sec/DAC_ct:   0.00670 [D]     Enc Cnts/mm  : 400000.00 [C]
Wait Time    :         0 [WT] ms Maintain code:         0 [MA]
AAlign value :        90 [AA]    AZero value  :       141 [AZ]
Axis Name ChY:         Y         Limits Status: f
Input Device :      JS_Y [J]     Axis Profile :   UFP_LIN
Max Lim      :   500.000 [SU] mm Min Lim      :  -500.000 [SL] mm
Ramp Time    :    109.50 [AC] ms Ramp Length  :      7459 enc
Run Speed    :   0.17148 [S]mm/s vmax_enc*64  :      2195
Servo Lp Time:      0.50      ms Enc Polarity :         1 [EP]
dv_enc       :        10         LL Axis ID   :        25
Drift Error  :  0.000636 [E]  mm enc_drift_err:       254
Finish Error :  0.000530 [PC] mm enc_finsh_err:       212
Backlash     :  0.000000 [B]  mm enc_backlash :         0   
Overshoot    :  0.000000 [OS] mm enc_overshoot:         0
Kp           :        75 [KP]    Ki(*16)      :        20 [KI]
Kv           :        96 [KV]    Kd           :         0 [KD]
Ka           :         0 [KA]    Kadc         :         1 
Axis Enable  :         1 [MC]    Motor Enable :         0
CMD_stat     :   NO_MOVE         Move_stat    :      IDLE
Current pos  :   -7.5808      mm enc position :  -3032338
Target pos   :   -7.5808      mm enc target   :  -3032324
enc pos error:         0         EEsum        :         0
Lst Stle Time:        11      ms Av Settle Tim:         0 ms
Home position:   1000.00      mm Motor Signal :         0
mm/sec/DAC_ct:   0.00670 [D]     Enc Cnts/mm  : 400000.00 [C]
Wait Time    :         0 [WT] ms Maintain code:         0 [MA]
AAlign value :        90 [AA]    AZero value  :       139 [AZ]

Our current parameters on the microscope, after booting our software (shown in logs):

2025-07-18 12:37:48,496 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for M is 90.0
2025-07-18 12:37:48,504 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for Y is 90.0
2025-07-18 12:37:48,511 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for X is 90.0
2025-07-18 12:37:48,518 - model - DEBUG - asi: ASI Stage - Current Feedback Alignment for Z is 80.0
2025-07-18 12:37:48,539 - model - DEBUG - asi: ASI Stage - Accuracy for M is 0.00053
2025-07-18 12:37:48,539 - model - DEBUG - asi: ASI Stage - Setting Finishing Accuracy for M to 8.400000000000001e-05
2025-07-18 12:37:48,558 - model - DEBUG - asi: ASI Stage - Error for M is 0.000636
2025-07-18 12:37:48,558 - model - DEBUG - asi: ASI Stage - Setting Error for M to 0.00010080000000000001
2025-07-18 12:37:48,578 - model - DEBUG - asi: ASI Stage - Accuracy for Y is 0.00053
2025-07-18 12:37:48,578 - model - DEBUG - asi: ASI Stage - Setting Finishing Accuracy for Y to 8.400000000000001e-05
2025-07-18 12:37:48,597 - model - DEBUG - asi: ASI Stage - Error for Y is 0.000636
2025-07-18 12:37:48,597 - model - DEBUG - asi: ASI Stage - Setting Error for Y to 0.00010080000000000001
2025-07-18 12:37:48,616 - model - DEBUG - asi: ASI Stage - Accuracy for X is 0.00053
2025-07-18 12:37:48,616 - model - DEBUG - asi: ASI Stage - Setting Finishing Accuracy for X to 8.400000000000001e-05
2025-07-18 12:37:48,636 - model - DEBUG - asi: ASI Stage - Error for X is 0.000636
2025-07-18 12:37:48,636 - model - DEBUG - asi: ASI Stage - Setting Error for X to 0.00010080000000000001
2025-07-18 12:37:48,655 - model - DEBUG - asi: ASI Stage - Accuracy for Z is 0.00053
2025-07-18 12:37:48,655 - model - DEBUG - asi: ASI Stage - Setting Finishing Accuracy for Z to 8.400000000000001e-05
2025-07-18 12:37:48,674 - model - DEBUG - asi: ASI Stage - Error for Z is 0.000636
2025-07-18 12:37:48,674 - model - DEBUG - asi: ASI Stage - Setting Error for Z to 0.00010080000000000001
2025-07-18 12:37:48,692 - model - DEBUG - asi: ASI Stage - Backlash for M is 0.0
2025-07-18 12:37:48,701 - model - DEBUG - asi: ASI Stage - Backlash for Y is 0.0
2025-07-18 12:37:48,710 - model - DEBUG - asi: ASI Stage - Backlash for X is 0.0
2025-07-18 12:37:48,718 - model - DEBUG - asi: ASI Stage - Backlash for Z is 0.0

@AdvancedImagingUTSW
Copy link
Collaborator Author

Yesterday, we learned that with the FTP-2000 stages, that some tuning parameters are automatically passed to the F axis if they are changed on the Z axis, but not all. We had set the backlash for the Z stage to 0, which is what we want, but the F axis was still operating with a backlash, causing the two stages to fight against one another a bit. I'm thinking maybe we need to create yet another class that is specific for the FTP-2000 stages. Or, we need to find a way to query the stages and see if they are linked or not, and then handle that behavior appropriately.

@AdvancedImagingUTSW
Copy link
Collaborator Author

Proposed fix. Rather than creating an FTP-2000 class, which just adds to the configuration uncertainty, we will ping the stage with bu x, which will return the names of the axes and firmware modules. For FTP-2000 stages, we should search the list and see z_slav_f in the modules, at which point we can send the same series of command to the secondary stage.

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