Logitech Extreme 3D Pro joystick

This joystick has a twist action that makes it good for controlling the robot arm.

joystick image

Logitech Extreme 3D Pro joystick

Button Map

The substitutions file describes the mapping of the buttons to EPICS actions:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
file "$(USB)/usbApp/Db/AnalogAxis.template"
{
pattern
{P     R               PARAM               PORT          FLNK}
{xxx:  PRO:Vertical     VERTICAL_STATE      LOGITECH_3DPRO      xxx:PRO:shoulder}
{xxx:  PRO:Rotation     ROTATION_STATE      LOGITECH_3DPRO      xxx:PRO:base}
{xxx:  PRO:Switch       SWITCH_STATE        LOGITECH_3DPRO      xxx:PRO:move_lock} 
{xxx:  PRO:Hat          HAT_STATE           LOGITECH_3DPRO      xxx:PRO:wrist}
}

file "$(USB)/usbApp/Db/DigitalButton.template"
{
pattern
{P     R               PARAM               PORT          FLNK}
{xxx:  PRO:Trigger      TRIGGER_PRESSED     LOGITECH_3DPRO      xxx:PRO:grip}
{xxx:  PRO:LButton      LBUTTON_PRESSED     LOGITECH_3DPRO      xxx:PRO:grip}
{xxx:  PRO:Button3      BUTTON3_PRESSED     LOGITECH_3DPRO      xxx:PRO:elbow}
{xxx:  PRO:Button5      BUTTON5_PRESSED     LOGITECH_3DPRO      xxx:PRO:elbow}
{xxx:  PRO:Button11     BUTTON11_PRESSED    LOGITECH_3DPRO      xxx:PRO:led}
}

file "$(TOP)/iocBoot/$(IOC)/substitutions/AxisMove.template"
{
pattern
{P     R               LOCK               AXIS             DEAD_LOW   DEAD_HIGH   OUT}
{xxx:  PRO:move_lock    0                  xxx:PRO:Switch    0          126         ""}        
{xxx:  PRO:base         xxx:PRO:move_lock   xxx:PRO:Rotation  50         200         xxx:A1:base_move}
{xxx:  PRO:shoulder     xxx:PRO:move_lock   xxx:PRO:Vertical  50         600         xxx:A1:shoulder_move}
}

file "$(TOP)/iocBoot/$(IOC)/substitutions/ButtonMove.template"
{
pattern
{P     R                LOCK              BUTTONA            BUTTONB           OUT}
{xxx:  PRO:led           0                 0                  xxx:PRO:Button11   xxx:A1:led_onoff}
{xxx:  PRO:elbow         xxx:PRO:move_lock  xxx:PRO:Button3     xxx:PRO:Button5    xxx:A1:elbow_move}
{xxx:  PRO:grip          xxx:PRO:move_lock  xxx:PRO:LButton     xxx:PRO:Trigger    xxx:A1:grip_move}
}

file "$(TOP)/iocBoot/$(IOC)/substitutions/DiscreteMove.template"
{
pattern
{P     R                LOCK               AXIS            VALA    VALB     OUT}
{xxx:  PRO:wrist         xxx:PRO:move_lock   xxx:PRO:Hat      4       0        xxx:A1:wrist_move}
}