Skip to content

Connecting ASI

Nikita Vladimirov edited this page Jul 4, 2024 · 10 revisions

Connecting ASI Tiger controller to the stages

The ASI controller has its own stage notation, which maps to Benchtop via the following table

ASI stage ASI joystick Benchtop stage
V/W Up/Down Y (vertical sample motion)
X Left/Right X (horizontal sample motion)
Y Left wheel F (focus)
Z Right wheel Z (motion along detection axis, slicing)
T (or R) No control Theta (rotation)

Connecting stages to ASI Tiger controller

ASI Tiger front panel

Setting the mesoSPIM system config file

The axis dictionaries stage_assignment, encoder_conversion, speed in the configuration file must have the same order as cards:

asi_parameters = {'COMport' : 'COM23',
                  'baudrate' : 115200,
                  'stage_assignment': {'x':'X', 'f':'Y', 'z':'Z', 'theta':'T', 'y':'V'}, # The dictionary order is important here! Must match the ASI cards 1,2,3, left to right. This is a standard ASI cards order: XYZTV
                  'encoder_conversion': {'X': 10., 'Y': 10., 'Z': 10., 'T': 1000., 'V': 10.}, # Num of encoder counts per um or degree, depending on stage type. The order match the 'stage_assignment' dictionary order.
                  'speed': {'X': 3., 'Y': 3., 'Z': 3., 'T': 30., 'V': 3.}, # mm/s or deg/s.
                  'stage_trigger_source': '/PXI1Slot4/PFI0',
                  'stage_trigger_out_line': '/PXI1Slot4/ctr1',
                  'stage_trigger_delay_%' : 92.5, # Set to 92.5 for stage triggering exactly after the ETL sweep
                  'stage_trigger_pulse_%' : 1,
                  'ttl_motion_enabled': True,
                  'ttl_cards':(1,2),
                  }

If the stages order is unclear, connect to ASI Tiger controller via ASITigerConsole software and run BU X command. The response for axis order shown above must be:

TIGER_COMM
Motor Axes: X Y Z T V W
Axis Types: x x z t z v
Axis Addr: 1 1 2 2 3 3
...

Configuring the ASI joystick

  1. Open the ASI Tiger Console and connect to your Tiger controller via serial port: image

  2. The following commands configure the joystick to operate with mesoSPIM stage assignment:

J V=103 W=0
J X=102
J Y=123
J Z=122
J T=100
1 SS Z
2 SS Z
3 SS Z
SAVESET
RESET

image

Troubleshooting

The mesoSPIM_Y (vertical) stage moves up when the joystick is pushed down

Solution: you can invert the joystick polarity for this VW axis on Card #3 (ASI CCA Z command):

3 CCA Z=22
3 SS Z
SAVESET
RESET

The mesoSPIM_Y (vertical) stage moves up when mesoSPIM_control button is pushed "Down"

Solution 1 (ASI hardware): invert the VW stage polarity on Card #3 (ASI CCA Z command):

3 CCA Z=6
3 CCA Z=8
3 SS Z
SAVESET
RESET

Solution 2 (mesoSPIM_control>=1.9.0): change the config.py file of your system:

ui_options = {...
              'flip_XYZFT_button_polarity': (True, True, False, False, False), # flip the polarity of the stage buttons (X, Y, Z, F, Theta)
              }

The stages move less than you command them

For example, you command the stage to move 1000 µm in the mesoSPIM_control, but the stage moves only 125 µm in reality (but reports in the software as if it moved 1000). This can happen because of incorrect ASI controller factory settings (e.g. incorrect lead screw pitch), and can be corrected with cca command. When in doubt, reach out to ASI team for support at info@asiimaging.com.

💡 A quick reality check of the actual stage movement vs commanded is to attach a sticky label or known size to the stage, and cut it in half, so one half moves with the stage slide, while the other half remains attached to the base. On the image below, the label diameter is 8 mm. When you command 8x steps of 1000 µm each in mesoSPIM_control, the half should be offset exactly by their diameter.

image

Clone this wiki locally