# Applied Scientific Instrumentation

### Products

 Custom Optics diSPIM FTP FW1000: Filter Wheel MPPI MS2000, MFC2000 and RM2000 Controller Piezo Systems RAMM, MIM and VTS Portal Serial Command Software TG-1000/Tiger Controller Tracking & Stabilization XY Stage Z-Drive and Focus Stage

stage_cycler

# Stage Cycler

Fig 1

Stage cycler is a .net framework based app developed inhouse by ASI for Stage QC and testing. The program lets user send two serial commands Pos1 [3] and Pos2[3] repeatedly with a set delay in seconds using Delay(sec) [4] or poll the controller for a not busy state with the Busy Poll [7] check box, or both. The app can do this indefinitely or for a set number of cycles specified with the Max Cycles [6] field.

This program works with MS2000, RM2000 and TG-1000 controllers.

## Example

With the settings in Fig 1 , the app will move the XY axis by 123.45mm in positive direction. Usually the stage will encounter the upper limit. As the stage is travelling the App will do a busy poll ie query the controller with Command:STATUS until the controller return a N which indicates not busy and stage has finished the Pos1 command. Because the Delay(sec) field is set to 1 , the app waits 1 second before it issues command in Pos2 field. Which makes the controller move the XY axis opposite direction to -123.45mm position. And begins the Busy Poll check again. Then repeats the cycle.

Because the Max Cycles field is set to 50000 , the app does this 50,000 times before stopping.

## Controls Explained

1. WK Com Port , pick the serial comm port the ASI controller is assigned to.
2. WK baud Rate, pick the controllers baud rate. MS2000 and RM2000 default baud rate is 9600. TG1000 has a fixed baud rate of 115200
3. Pos1 , first serial command that will get sent.
4. Delay(sec) , delay in seconds before the Pos2 command is sent. if Busy Poll is checked , the does a busy poll first.
5. Pos2 , the second command that will get sent.
6. Max Cycles, total number of times the command Pos1 and Pos2 will get sent. To have the app run indefinitely , set this field to 0.
7. Busy Poll , when check the app polls the controller with Command:STATUS until the controller return a N which indicates not busy.
8. The two numbers, indicate the time the app has been cycling, and total number of cycles performed so far.
9. START and STOP , self explanatory , they start or stop the cycling app.

## For Cycling a lot of Axis

On systems where we are cycling a lot of axis, with commands like M X=1234567 Y=1234567…..=1234567 , the controller chokes on the huge string. Use Command:Unit Multiplier to change the units to mm instead of 1/10 microns. Then shorter commands like M X=999 Y=999….=999 can be used, to get around the max command length issue.