User Tools

Site Tools


Command:RBMODE (RM)

MS2000 or RM2000 syntax
Shortcut RM
Format RBMODE [X=control] [Y=axis_byte] [Z=buffer_pointer] [F=mode_byte]
Remembered Using SS Z
Firmware Module Required RING BUFFER
Tiger syntax
Shortcut RM
Format [addr#]RBMODE [X=control] [Y=axis_byte] [Z=buffer_pointer] [F=mode_byte]
Type Card-Addressed
Remembered Using [addr#]SS Z
Firmware Module Required RING BUFFER

Provides control of movement and save operations involving the controller’s internal 50-position ring-buffer (optionally to 250 positions, contact ASI). The LOAD command is used to fill the ring buffer.

Many firmware builds have axis_byte set to 3 as a default, so only the X and Y axes enabled for ring-buffer moves, check the axis_byte parameter if you are having trouble moving an axis.

The command, without any arguments, sets the TTL input interrupt flag and performs the same operation that a TTL IN0 input pulse would control as determined by the current IN0_mode. See TTL command.

A move to the Next Position may be initiated by:

  • a TTL pulse when the appropriate IN0_mode is selected (See TTL command, IN0_INT Firmware Module Required).
  • a short press and release of the @ button (as long as other special functions are not utilizing the @ button).
  • by the RM command without arguments.

The argument variables are defined as follows:

X: control

0 – Clears the ring buffer (RING_BUFFER firmware required)
1 – Starts array scan (ARRAY_MODULE firmware required)

RM X? returns the number of used positions in the ring buffer (Tiger v2.89+ or MS2000 v9.2g+).

Consume mode:
RM X? returns the number of open positions in the ring buffer. (MS2000 9.2o+)

Y: axis_byte

1-31: The axis_byte is a decimal value that represents the underlying binary bit pattern of a byte. This value determines which axes are commanded to move, the same axis positions are reported using TTL IN0_mode=5. The ordering of axes is the order on the card/controller, with the first axis getting the LSB. The axis_byte setting also applies to the SERVOLOCK_TTL module and TTL-triggered moves.

You can determine the axis order by looking at the BU X command, which will respond with axis information below the build name. This will be something like: “Motor Axes: X Y Z F” in a 4-axis build, which would mean X=0, Y=1, Z=2, F=3. You can verify the axis index with the Z2B <axis>? command.

For example to enable all 4 axes you would send the command RM Y=15.

::::fzyx → which axes are in each bit position
00001111 → the bit pattern needed to enable all axes (15 in decimal)
MSB::LSB → most significant bit - least significant bit

If you wanted to disable only the Z axis in a 4-axis build like this you would send the command RM Y=11 to the controller (11 is 00001011 in binary).

Z: read_index

Sets or reads the read index for the next move. The read index is zero-indexed, so its maximum value is the one less than the number of positions in the ring buffer.

Consume mode:
The read index is read-only. (MS2000 9.2o+)

F: mode_byte

When entering and exiting consume mode the ring buffer is cleared and the read/write indices are reset to 0.

  1. Consume mode → Any other mode.
  2. Any other mode → Consume mode.

The lowest two bits are used to specify the mode:

0 – Consume Mode: A TTL pulse or RM command moves to the next position and consumes that position if a position exists in the ring buffer. New positions can be loaded on the fly. This mode reduces the capacity of the ring buffer by 1. Available on MS2000 9.2o+ and Tiger 3.41 firmware.
1 – TTL Triggered Mode: (default) A TTL pulse or RM command without arguments moves to the next position.
2 – One-shot Autoplay Mode: A TTL pulse or RM command without arguments plays the ring buffer from the current position to end with a delay between points set by RT Z (make sure delay is set appropriately; e.g. setting 1ms won’t work with motorized stage).
3 – Repeat Autoplay Mode: Upon a TTL pulse or RM command without arguments, plays from current position continuously in a loop with delay set by RT Z (make sure delay is set appropriately; e.g. setting 1ms won’t work with motorized stage). While running, another trigger causes autoplay to stop. Also enables repeat mode for ARRAY module. Starting v3.24, this mode works on TGLED card too. When TTL X=21, TGLED cycles through all LED channels without waiting for a TTL trigger.

Bits 3-7 are reserved.
MSB – read-only, set to 1 if ring buffer is auto playing and 0 otherwise

On Tiger v2.81-2.88 these were on X pseudoaxis instead of F

CAUTION: If you are using TTL mode 12 (see the TTL command), 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.
Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181
commands/rbmode.txt · Last modified: 2023/03/14 15:26 by brandon