User Tools

Site Tools


commands:bcustom

Command:BCUSTOM (BCA)

MS2000 or RM2000 syntax
Shortcut BCA
Format BCA [X=@ Normal Press] [Y = @ Long Press] [ Z= @ Extra Long Press] [F= Home Long Press] [T= Home Extra Long Press] [R=JS Normal Press] [M = JS Long Press]
Units Integer code (see table below)
Firmware Version Required 9.2g+
Remembered Using SS Z
Tiger syntax
Shortcut BCA
Format [addr#]BCA [X=@ Normal Press] [Y = @ Long Press] [ Z= @ Extra Long Press] [F= Home Long Press] [T= Home Extra Long Press] [R=JS Normal Press] [M = JS Long Press]
Units Integer code (see table below)
Type Card-Addressed
Firmware Version Required 3+
Remembered Using [addr#]SS Z

In Tiger version 3.0+ and MS2000 version 9.2g+ the Button Function assignment has been rewritten to be more flexible. Every possible button function is now assigned a number. This function can be assigned to any button (@,Home and Joystick Button) and any press duration (Normal, Long and Extra Long press) thru the BCA commands X,Y,Z,F,T,R and M arguments.

The settings of BCUSTOM are automatically saved in non-volatile memory when changed, they will be available even on controller restart.

As of Tiger version 3.18 and MS2000 version 9.2l a button function can be initiated over serial using the BE F command (BENABLE). The function doesn't need to be assigned to a particular button for this to work.

Note: Behavior of this command is very different pre Tiger version 3.0 and MS2000 version 9.2g

Press Dur:
* When button is held down for an instant to 1 sec, it's a Normal Press	
* When button is held down for 1sec to 3sec, it's a Long Press
* When button is held down for 3sec and more, it's an Extra Long Press
Table below lists and describes all possible button functions
No Function
0 No function performed
1 Smart Move related,
2 Toggles Knob between two axis, like Z and F
3 TRACKING,CRISP,LSRTRK related, short press functions. Steps from IDLE to Calibration states to lock and unlock state.
4 CLOCKED DEVICE related, moves clocked devices like Turret and slider to next position
5 ARRAY MODULE related,same as Command:ARRAY (AR). When TTL X=7 does move to next array position.
6 RING BUFFER related, move to next ring buffer position; On TGLED card, button press mimics TTL pulse verion 3.24+.
7 SCAN MODULE related, halts scan move
8 AUTOFOCUS related, performs autofocus routine.
9 CRIFF related, toggle CRIFF lock
10 AT_XYZ_KNOB related, changes xyz knob state. Cycles knob control between x,y,z axis.
11 AT_XYZF_KNOB related, changes xyzf knob state. Cycles knob control between x,y,z and f axis.
12 ZLOADER related, Moves Z to its lower limit and back.
13 CRISP and TRACKING related, performs CRISP very long press functions
14 ADEPT related, toggles between piezo external and internal input mode
15 CRISP and TRACKING related, performs CRISP long press functions. Stops current CRISP operation like stop dither, unlock etc.
16 ARRAY MODULE related, puts ARRAY Module in start state
17 CRIFF related, change CRIFF state.
18 RING BUFFER related, loads current stage position into ring buffer
19 AT RAMM LOAD related, moves Y and F axis to their upper and lower limits.
20 SCAN MODULE related, puts SCAN MODULE is start state
21 AUTOFOCUS related, performs autofocus calibration
22 ZOOM related, sets up zoom profile
23 PLANAR CORRECTION related, sets planar correction points
24 RING BUFFER related, clears ring buffer
25 TOGGLE ALL AXES related, swaps knob control between two axes.
26 TRACKING related, short press function
27 JS PULSE related, sets TTL in ready state
28 JS_FASTSLOW related, toggles joystick speed between fast and slow
29 PLANAR CORRECTION related, resets planar correction
30 CLOCKED DEVICE related, moves clocked devices like Turret and slider to previous position
31 JS_FASTSLOW related, sets joystick speed to fast
32 JS_FASTSLOW related, sets joystick speed to slow
33 LED related, increase LED intensity
34 LED related, decrease LED intensity
35 LED related, toggle LED ON and OFF
Example:

Take a firmware build like STD_XY . This firmware is packed with modules like,

  • Ring Buffer module
  • JS_FASTSLOW, joystick button press toggles joystick speed between fast slow.

In a built like this there are a lot of modules fighting for control of the buttons. There is a priority list that sets up the defaults button function . Lets Query the controller on what the default assignments ended up being.

Tiger Example
1BCA X? Y? Z? F? T? R? M?
X=0 Y=0 Z=0 F=0 T=0 R=28 M=18 
X: @ Normal 
Y: @ Long 
Z: @ Ext Long 
F: Home Long 
T: Home Ext Long 
R: Js btn Normal 
M: Js btn Long 
<LF>
MS2000 Example
BCA X? Y? Z? F? T? R? M?
X=0 Y=0 Z=0 F=0 T=0 R=28 M=18 
X: @ Normal 
Y: @ Long 
Z: @ Ext Long 
F: Home Long 
T: Home Ext Long 
R: Js btn Normal 
M: Js btn Long 
<LF>

So @ normal press, does nothing @ long press, does nothing @ extra long press, does nothing Home long press, does nothing Home extra long press, does nothing Joystick button normal press, toggles joystick speed Joystick button long press, loads current position into ring buffer.

If user wants the Ring Buffer to be more prominent, then following command can be issued.

Tiger Example
1BCA X=6 F=24 R=18 M=28
:A
<LF>
MS2000 Example
BCA X=6 F=24 R=18 M=28
:A
<LF>

Now, @ normal press, moves to next ring buffer position Home long press, clear the ring buffer Joystick button normal press, loads current stage position into ring buffer Joystick button long press, toggles joystick speed

Tiger example scenario

30: Comm v3.26 TIGER_COMM Apr 09 2019:15:52:41 
31: X:XYMotor,Y:XYMotor v3.25 STD_XY_LED Mar 18 2019:15:56:27 
32: Z:ZMotor,S:Slider v3.26 STDZ_SLDR8 Apr 30 2019:08:40:35 
33: O:Tur v3.26 TURRET_SINGLE Apr 30 2019:08:41:10

A user with a Tiger system in the above configuration has two clocked position devices. A filter slider on card #2 and turret on card#3. They would like to move these devices with button presses. Lets set it up so that on short '@' button press (less than 1-sec press) Filter slider moves, then on long'@' button press (1 to 3-sec press) the turret moves. The button function that does this is '# 4' (see the table above). '@' short press assigned with 'X' variable, and '@' long press is assigned with 'Y' variable.

2BCA X=4 Y=0 , this tells card#2 which drives the filter slider to respond to short @ press with slider move, and ignore any long @ button presses.

3BCA X=0 Y=4 , this tells card#3 which drives the turret to respond to long @press with turret move and ignore any short @ button presses.

1BCA X=0 Y=0 , this tells card#1 which drives XY stage to ignore any short or long @ button presses.

Try it out. If you like the behavior, commit it to systems onboard memory with serial commands

1SS Z 
2SS Z
3SS Z

More info on SS Z command is here, http://www.asiimaging.com/docs/commands/saveset

Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181
commands/bcustom.txt · Last modified: 2019/05/13 22:36 by vik