# Applied Scientific Instrumentation

### Products

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

commands:ttl

+

# Command:TTL

TTL functionality differs based on whether the controller is a Tiger (TG-1000) or MS2000/RM2000 controller, due to hardware differences. Some TTL modes are only available with certain firmware modules.

The Tiger (TG-1000) and MS2000 controller electronics have a buffered TTL input (IN0) and output (OUT0) port that are usually connected to the IN and OUT BNC connectors on the back of the controller. These ports allow voltages in the range of 0v to 5v as an input, where any voltage below 0.95v(+-0.3v) is a LOGIC LOW signal. Any signal above 1.6v(+-0.3v) is considered a LOGIC HIGH state. Any signals in between 0.95 to 1.6v will maintain the same logic state that was registered from the last known state (Schmitt Triggered inputs). The TTL input has a 10K Ohm resistor to ground, and connecting to the input of a Schmitt Trigger 5v TTL gate. The output is CMOS-compatible 5v TTL directly from a single CMOS gate. The behavior of these connectors are determined by the IN0_mode and OUT0_mode parameters set by the TTL X and TTL Y commands respectively. There are also has several unbuffered I/O ports on the motherboard that are occasionally exposed for special purposes.

Absolute maximum voltage: -0.5v to 5.5v. Any voltage applied that is greater than 5.5v or less than -0.5v will void the warranty and likely cause damage to the controller!

On Tiger TG-1000 controllers, some cards have buffered TTL input (IN0) and output (OUT0) ports exposed, in which case the behavior is determined by the IN0_mode and OUT0_mode parameters set by the TTL X and TTL Y commands respectively. The TTL command is Card-Addressed, meaning that on Tiger it applies to each card separately. A few Tiger cards have extended functionality using the TTL_AUXILIARY firmware module affected by the TTL R and TTL T commands.

MS2000 or RM2000 syntax
Format TTL [X=IN0_mode] [Y=OUT0_mode] [Z=aux_IO_mode] [F=OUT0_polarity] TTL (firmware v9.2k+) Using SS Z 8.5+

Unless otherwise specified, the TTL commands used for Tiger apply to all WK2000-based systems as well.

Tiger syntax

IN0_mode

0 - Turns off TTL IN0 controlled functions; TTL interrupt DISABLED.

1 - TTL IN0 initiates a Move-to-Next-Position of the stored positions in the ring buffer pointed to by the buffer_pointer. When the buffer_pointer reaches a value equal to the number of saved positions, it resets to the first position, allowing cyclic repetitions to the saved locations. See RBMODE and LOAD commands.

2 - TTL IN0 repeats most recent relative move (see MOVREL). For example, begin a session by issuing the command MOVREL X=0 Y=0 Z=10, and each subsequent TTL trigger will cause the Z axis to move 1 micron1). This function can be used for repetitive relative moves of any axis or combination of axes on the controller (for MS-2000) or on the card (for Tiger). For the “focus axis” only you may directly set the dZ value with the ZS command’s X parameter.

As of MS2000 9.2o and Tiger v3.38 only the axes that are enabled with RB Y=# will be moved. Also, the BACKLASH setting is ignored during TTL-triggered relative moves, on earlier versions of the firmware you will see incorrect results with fast TTL pulses if the backlash is not set to 0.

3 - TTL IN0 initiates an autofocus operation on systems with autofocus installed.

4 - Enables TTL IN0 controlled Z-stacks. (See ZS command).

5 - Enables TTL IN0-started position reporting via the serial interface. Information is asynchronously sent out the serial interface every report_time interval, where report_time is set with the RT command. Data returned in the serial stream are the elapsed time in milliseconds since the TTL trigger, followed by the position of each axis enable by the axis_byte (set by the RM command). On TRACKING systems, the PMT sum signal is also reported. Reporting is toggled on and off by the TTL input pulse.

6 - TTL interrupt ENABLED; use with TTL triggered position reporting.

7 - TTL commanded ARRAY move to next position.

9 - Used with CRISP focus lock. TTL IN0 HIGH engages lock if the system is in the READY state. TTL IN0 LOW will cause the system to UNLOCK is locked already.

10 - Toggle TTL OUT0. If TTL OUT0 is set either LOW or HIGH, an input pulse on the TTL IN0 will cause the output to toggle to the other state.

11 - SERVOLOCK_TTL mode. Requires firmware support; as of early 2020 it is only implemented in Tiger but could be ported to MS2000/RM2000. To engage the SERVOLOCK_TTL mode use the LK command which will then automatically change the TTL IN0 mode and normally will restore it afterwards. When the SERVOLOCK_TTL mode is engaged do not change the TTL X setting. For further documentation see the SERVOLOCK_TTL documentation.

12 - Behavior is exactly the same as mode 1 above except the moves are relative rather than absolute. As of early 2020 it is only implemented in Tiger but could be ported to MS2000/RM2000.

CAUTION: If you are using TTL X mode 12, the values entered into the ring buffer using the LOAD command represent RELATIVE coordinates, not ABSOLUTE coordinates. You must drive the stage to the appropriate starting position before triggering a ring buffer sequence.

20 - The TTL IN0 pulse turns on the TTL OUT0 for a fixed duration set by the ''RT Y'' command.

Can be used with a LED illumination to act as a flash of defined duration. For the TGLED card and MS2000/RM2000 with a Dual LED card (DLED), all LED channels remain off until a TTL pulse is received, and the TTL rising edge turns all LED channels ON and they remain ON for the duration set by the RT Y command. 2) LED intensity is set by the LED command.

Added in v3.14 for Tiger and version 9.2l for MS2000/RM2000.

21 - Similar to mode 20 except TTL pulses cycle through the channels of the TGLED card or Dual LED card. On each TTL pulse, only ONE LED channel turns ON for a fixed time. The next TTL pulse turns on the next LED channel for a fixed time, and so on.

For Tiger v3.24 and later, when RB F=3 the TGLED card cycles thru all channels without waiting for TTL pulses. If an intensity is set to 0 using the LED command then that channel is automatically skipped.

Added in v3.14 for Tiger and version 9.2l for MS2000/RM2000.

22 - Similar as mode 20 except waits for TTL pulse to go low before turning off the LED. Setting RT Y isn't required.

Added in v3.30 for Tiger and version 9.2n for MS2000/RM2000.

23 - Same as mode 21 except waits for TTL pulse to go low before turning off the LED. Setting RT Y isn't required.

Added in v3.30 for Tiger and version 9.2n for MS2000/RM2000.

30 - Used with Single Axis function  SAM [Axis]=2. On rising edge of TTL pulse, the routine is performed once.

Available in firmware 3.30 and above; not yet implemented for MS2000/RM2000.

103 - Repeating Autofocus. This mode does not use TTL IN. When set, the controller will automatically attempt an autofocus routine every K milliseconds indefinitely until TTL X is changed. The repetition time, K, is set using  RTIME X=. Example: RT X=5000 will set the repetition rate to 5 seconds. This is effectively the same as using TTL X=3 with an oscillator connected to TTL IN. Note: MS2000 Only

OUT0_mode

0 - TTL OUT0 unconditionally set LOW.

1 - TTL OUT0 unconditionally set HIGH.

2 - generates TTL pulse at end of a commanded move (MOVE, MOVREL, move via ring buffer, or via array module). The pulse duration is set with command RT Y.

3 - output TTL OUT0 gated HIGH during axis index 0 (X) constant speed move not implemented but hardware-level TTL signal is available.

4 - output TTL OUT0 gated HIGH during axis index 1 (Y) constant speed movenot implemented but hardware-level TTL signal is available.

5 - output TTL OUT0 gated HIGH during axis index 2 (Z) constant speed movenot implemented but hardware-level TTL signal is available.

8 - TTL OUT0 timed arrival pre-pulse output. See RT command. Requires PREPULSE firmware module.

9 - TTL OUT0 PWM and MicroServo or Solenoid output. See the LED or the SECURE command. Requires LED_DIMMER or USERVO or SOL_LK firmware module. On WK, with LED_DIMMER, the PWM frequency is 1KHz.

10 - Output TTL OUT0 gated HIGH upon completion of video AUTOFOCUS function. AUTOFOCUS hardware and firmware required.

11 - Generates TTL OUT0 pulse at end of commanded move providing CRISP is in ‘F’ state (active and within tolerance). Waits for CRISP ‘F’ state after move completion to send a pulse. Generally not useful with TG-1000 controllers because the XY and focus axes are on different cards. ON MS-2000 the behavior of the STATUS command is modified when this TTL mode is set: 'N' is returned when CRISP is in the In-Focus 'F' state and otherwise 'B' is returned.

12 - TTL OUT0 high when CRISP is ‘F’ state, low otherwise.

20 - TTL OUT0 set during SPIM state machine operation. Requires MM_SPIM firmware module (TG-1000 only). Was code 10 until v3.12.

21 - TTL OUT0 set at the end of a ring buffer move or AIJ-initiated move (for laser trigger). Requires MM_TARGET firmware module (TG-1000 only). Was code 11 until v3.12. As of firmware v3.36 outputs to the TTL1 backplane signal instead of to the usual TTL output.

22 - In this mode, TTL OUT0 is controlled by Single-axis function module. With the SAP command the user can generate a TTL pulse that is synchronized with Single-axis function actuator motion. TG-1000 only, available in firmware version 3.17 and above.

30 - TTL OUT1 high when the position of first axis is more than the PC setting away from its target position. Tiger v3.38 and above (not yet in MS2000 but could be.)

31 - TTL OUT1 high when the position of second axis is more than the PC setting away from its target position. Tiger v3.38 and above (not yet in MS2000 but could be.)

32 - TTL OUT1 high when the position of third axis is more than the PC setting away from its target position. Tiger v3.38 and above (not yet in MS2000 but could be.)

33 - TTL OUT1 high when the position of fourth axis is more than the PC setting away from its target position. Tiger v3.38 and above (not yet in MS2000 but could be.)

OUT0_polarity

1 - default polarity

-1 - inverts the polarity of TTL OUT0.

aux_IO_state

Tiger only. Requires TTL_AUXILIARY firmware module; behavior depends on the firmware build and hardware present. Sets the state of the auxiliary TTL output according to the aux_IO_mask. Input and output as a decimal number representing the binary pattern desired. The following uses have been defined so far:

For MM_SPIM firmware with SPIM TTL card: Bit0 = Side0/Laser0 output, Bit1 = Side1/Laser1 output

Requires TTL_AUXILIARY firmware module; behavior depends on the firmware build and hardware present. Controls how the aux_IO_state bits are used, or how the backplane is used when aux_IO_mode is set to 2. Input and output as a decimal number representing a binary mask. If the corresponding mask bit is set to 1 then the state bit will be reflected at the output, but if the mask bit is 0 then the state bit has no effect. The following uses have been defined so far:

For MM_SPIM firmware: Defaults to 3 = 0b00000011.

aux_IO_mode

Requires TTL_AUXILIARY firmware module; behavior depends on the firmware build and hardware present. The SPIM state machine overrides these setting during its operation.

0 - TTL outputs determined by aux_IO_state/mask.

1 - TTL outputs determined by the LED command (requires MM_LASER_TTL module). The default setting for MM_SPIM firmware.

2 - Simulates a TTL input from the backplane. The backplane value is masked by aux_IO_mask and the binary value is considered. If a 0-1 transition occurs then a TTL input pulse is simulated and action will be taken depending on the setting of IN0_mode. The default setting for TTL_AUXILIARY on piezo firmware.

Without any Argument

In firmware version 3.16 and above on TG-1000 and version 9.2k and above on MS2000/RM2000, when the TTL command is issued without any arguments, like [Card Addr#]TTL , the controller reports the state of TTL IN.

For Tiger/TG-1000, the controller replies with :A 0 when signal is low. and :A 1 when TTL IN sees a high signal.

For MS2000/RM2000, the controller replies with the inverse polarity, :A 1 when the signal is low and :A 0 when the signal is high. This is a logical bug in the firmware, but because it was in the field so long before being noticed we made the intentional decision to keep the behavior unchanged.

1)
strictly speaking, it will be the closest multiple of the specified distance in encoder units because that is how the move distance is stored internally
2)
Old text, unknown meaning: TTL Y must be in 0 mode (TTL Y=0) or it might cause an issue.
Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181