User Tools

Site Tools


array

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
array [2016/09/07 15:29]
array [2019/04/18 23:33] (current)
Line 1: Line 1:
 +====== ARRAY MODULE for ARRAY Scanning ======
  
 +This manual section applies to the ''​ARRAY MODULE''​ firmware module. ​ With the ''​ARRAY MODULE''​ included in the firmware, the controller will support functions associated with moving to specific locations in a 2-dimensional XY array of positions. ​ The module includes support for commands to define the size and spacing of the array and the location of the first position in the array. ​ There are also commands to address particular positions and sequence through the array either automatically,​ or with external TTL or serial command control.  ​
 +
 +<WRAP center round important 60%>
 +Note: ARRAY module doesn'​t account for HOME button , ZERO button and[[commands:​zero| ZERO command]] properly. Avoid using them when relying on ARRAY module to move the stage. ​
 +</​WRAP>​
 +
 +
 +===== Setting up the Array =====
 +
 +The [[commands:​array|ARRAY command]] is used to define the number of array points and spacing between rows and columns. ​ The X and Y parameters specify the number of columns and rows respectively,​ and the Z and F parameters specify the signed move distance in millimeters between columns and rows.  The command to set up the array for a standard 96 well plate would be:
 +
 +<wrap cmd> ARRAY X=12 Y=8 Z=9.0 F=-9.0 </​wrap>​
 +
 +These happen to be the default settings. ​ The Y-axis distance between rows is set as a negative number because the direction of motion to go from row A to row B on the well plate is in the negative direction of motion of the stage.
 +
 +The location of the first position in the array, the 1,1 location, is specified by the [[commands:​ahome|AHOME command]]. ​ The default value for the coordinates of the 1,1 position are 0.0, 0.0 in the controller’s coordinate system. ​ You need not even use the ''​AHOME''​ command if the stage is manually moved to the location of the 1,1 array position and then the ZERO button is used to set the coordinate zero to that location. ​ The ''​AHOME''​ command, with out arguments, will establish the current stage position as the 1,1 array position. ​ Hence, if you move the stage manually to the 1,1 location and issue ''​AH'', ​ the stage will maintain its original coordinate system yet have the correct offsets for the fixed array moves.
 +
 +==== Controlling Moves to Array Positions ====
 +
 +There are three ways to control the movement to array positions. ​ They are random access serial moves with the [[commands:​aij|AIJ command]], automated self-scanning,​ and TTL or serial commanded moves to the next array position. ​ As with any commanded move, TTL output pulses can be programmed to indicate the completion of the move to the array location using the [[commands:​ttl|TTL command]].
 +
 +==== Random Access Using Serial Command ====
 +
 +The serial AIJ command will command the stage to the any row j and column i coordinate:
 +<wrap cmd> AIJ X=i Y=j </​wrap>​
 +
 +=== Self-Scanning ===
 +
 +The entire array can be visited sequentially in either a serpentine or raster pattern. ​ Scanning is initiated manually with a quick press and release of the @ button, or by issuing the ''​ARRAY''​ command without any arguments. ​  The sequence will start by moving to the 1,1 location. ​ When the stage arrives on target, it will delay for a period of time set by the command ''​RT Z=time_delay''​ before continuing on to the next position.
 +
 +<WRAP center round info 60%>
 +To Get @ button to do ARRAY moves , issue serial command [[commands:​bcustom|BCA X=7]]
 +</​WRAP>​
 +
 +
 +=== Commanded Next Position ===
 +
 +The array can be traversed in order with moves made “on command” using either a serial command or TTL trigger pulse. ​ Using the TTL command, set the TTL input function to the array trigger using ''​TTL X=7''​. ​ Either a TTL pulse on the IN0 input, or the [[commands:​rbmode|RM command]] without arguments, will send the stage to the next array position. ​ Move to the 1,1 array position and gracefully start this scanning mode is the command ''​RM X=0''​. ​ When started this way, the sequence will complete after the last position is processed and subsequent commands (TTL pulse of ''​RM''​) to move to the next position will be ignored. ​
 +
 +<WRAP center round info 60%>
 +Note: Until TTL X=7 is set , RM command without arguments won't work, and @ Button press will do a Self-Scanning move 
 +</​WRAP>​
 +
 +
 +=== LCD Display ===
 +
 +The bottom line of the LCD display will show the state of the ''​ARRAY MODULE''​ state machine as well as the coordinate location of the current array cell.  The LCD status line should look something like this:
 +
 +{{ array_lcd.png?​direct&​300 |}}
 +
 +For arrays with 4, 8, or 16 rows, the Y address is shown as the corresponding alphabet characters – as is the common practice for standard well plate formats. ​ The meanings of the various state indicators are described below.
 +
 +|I |IDLE|
 +|S  |START|
 +|M   ​ |MOVING|
 +|D |DELAY|
 +|A |ARRIVED|
 +|N |NEXT_POSITION|
 +|C |COMPLETE|
 +|E |ERROR|
 +
 +When the state characters are displayed in lower case on the LCD display, the TTL IN0 interrupt is disabled pending completion of the current move operation.
 + 
 +===== Stage Scanning Speed and Accuracy =====
 +
 +
 +The leadscrew pitch of the stage will largely determine where on the speed versus accuracy continuum the stage will operate. ​ The table below shows typical performance for various pitches of leadscrew for a rotary encoded stage when no backlash correction is used, and the Finish Error is set to the resolution shown in the last column.
 +
 +^Lead Screw Pitch ^Maximum Stage Speed (mm/​s) ^Rotary Encoder Resolution(nm) ^Typical Performance ^^^^
 +^::: ^::: ^::: ^Time to traverse 96 well-plate (s) ^Time /9 mm move (s) ^Time /0.2 mm move (ms) ^Fast Positioning Resolution (μm) ^
 +|A – 1.58mm |1.7 |5.5 |644 |6.7 |235 |0.08|
 +|B – 6.35mm |6.8 |22 |160 |1.67 |70  ​   |0.25|
 +|C – 12.7mm |13.5 |44 |79 |0.82 |49  ​   |0.5|
 +|D – 25.4mm |26 |88  ​   |47 |0.48 |40 |1.0|
 +
 +Opening up the Finish Error to about 10 rotary encoder counts allows the move to complete quickly rather than have to hunt for on-the-count precision.  ​
 +
 +===== Serial Commands =====
 +
 +Serial commands related to ARRAY MODULE
 +
 +{{topic>​array +commands}}
 +
 +
 +{{tag>​advanced_feature array ms2000 tiger}}
Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181