INTRODUCTION

The fORP -- Fiber Optic Response Pad -- is a light based subject response device. All response pads and fiber optic bundles are completely non-metallic and non-electronic. The intended use is in MRI, MEG or other environments where metal or electronics could hinder data acquisition, degrade image quality, or pose safety risks.

Each system has the following components:

Electronic Interface

  • Front panel has 5 connectors and a switch
  • Rear panel has a single optical connector
  • Side has four indicator LEDs


  • Removable Fiber Optic Bundle

  • 8 fiber bundle for 4 button handhelds
  • 12 fiber bundle for 8 button and continuous handhelds


  • Response Pad (with 10 foot long bundle)



    Includes one or more of the following:
  • Single rectangular box with an inline button pattern
  • Two rectangular boxes (8 buttons) with 36-inch span
  • Single ergonomic box with diamond button pattern
  • Two ergonomic boxes bimanual (4 buttons) with 36-inch span
  • Joystick with 2 buttons
  • Trackball with 2 buttons
  • 5 button stick handheld button box


  • Power supply

    Includes one of the following:

  • Standard 9 volt unregulated supply for 120 volts
  • European 9 volt unregulated supply for 240 volts


  • Cables

    Includes one or more of the following:

  • Custom Serial cable
  • USB cable
  • Custom Parallel cable

    SET UP

    To test the optical part of the system without a computer:

  • Attach removable fiber optic bundle to the rear panel of the interface. Note the circular connector is keyed for proper alignment.
  • Connect the handheld to the other end of the removable bundle. Note: Do not use the fORP without the long fiber bundle in place-- although the connectors will mate without the long bundle, the light signals will be too strong and the results will be unreliable.
  • Turn the switch on the front panel to position 0 (use the position 3 for the Trackball, position 5 for the Joystick, and position 6 for the 8-button handheld).
  • Plug in the power supply and attach to interface.

    The side LEDs should light when the corresponding button is pressed (only the right handheld of the 8-button bimanuals). This means the optical part of the system is working properly.


  • To make the connection to a computer:
  • Attach the removable bundle and handheld to the interface.
  • Set the program switch for your specific application and handheld.
  • Plug in the power supply.
  • Attach the interface to the computer. interface front panel (from left to right).


  • Interface front panel Interface rear panel
    Connectors from left to right:
  • BNC: TTL (trigger) Input
  • Mini DIN8: Serial Output
  • USB Type B: USB Output
  • 10/10 Mod: TTL Outputs
  • 8 Position Switch: Program Selector
  • Power: 5V Regulated Supply (ALT: 9V for 220/240)
  • Optical Connector

  •  

    HANDHELDS

    This table shows the modes of the interface unit that correspond to the variety of handheld devices.

    Handheld type Program
    switch
    Serial
    output
    USB
    output
    2- and 4-button handheld devices
    2 and 4 button handhelds
    0

    1

    2

    4
    Standard

    E-Prime

    Bitwise

    Superlab
    Standard

    Mac

    Non Auto-release

    Numeric
    5- and 8-button handheld devices
    5 and 8 button handhelds


    6


    Standard


    Standard
    Trackball
    trackball


    3


    Serial mouse


    HID gamepad
    Joystick
    joystick


    5

    7


    Serial mouse

    Programmer's joystick


    HID gamepad
     



    Joystick notes:

    This handheld enumerates as a USB HID gamepad with x, y control and two buttons. The red and green side LEDs on the interface do light when the buttons are pushed. It also works as a three button serial mouse with the trigger appearing as a third button.See Appendix A for more information on Joystick setup and use.

    Set Up: The joystick handheld has an initialization period of 5 seconds when the interface is plugged in. During this time the joystick should be on a level surface with one of the center pads in place. It should not be moved. The firmware reads the light levels in the position and uses it as the center. If its movement appears to be erratic or off center, reset the joystick by unplugging the power for a few seconds and reinitialize it more carefully. The joystick (HH-Joy-4) handheld has both a finger stick and hand grip. To use the hand grip slide into place over the finger stick. There two different centering pads: the gray pad is for use with the finger stick. The black pad provides more resistance and is for use with the hand grip. Use the o-ring to keep the pads in place.

    Trackball notes:

    The Trackball handheld enumerates as a USB HID gamepad with x, y control and two buttons. The red and green side LEDs on the interface do light when the buttons are pushed. The trackball works best with a light touch. The ball can be removed for cleaning. Try to keep the trackball as clean as possible, because any build up of dirt and dust on the ball and internal parts will impede its movement.
     

    COMPUTER CONNECTION

    Use the following sequence in setting up:
        1. Choose which output to use.
        2. Turn program switch to the correct position.
        3. Attach power supply to interface.
        4. Attach interface to computer and fORP.

    Interface Outputs

    The fORP has been designed to work with most software packages. The table below gives the matrix on connections to the computer.

    forp Interface Port Mini DIN8 USB Type B 10/10 Modular
    Computer Port Serial USB Type A Parallel or I/O Port
    Needs to be configured? Yes Usually No Yes
    Cable Mini DIN8 to DB9 Type A to Type B 10 Pin Jack to DB25
    Computer Type PC PC, Macintosh PC


  • Use the Mini DIN8 to connect to the serial port on a PC computer.
  • Use the USB to connect to a Macintosh or PC computer.
  • Use the 10/10 Modular to connect the TTL outputs to a parallel port on a PC computer.


  • Detailed technical information about each output type can be found below.

    For each output there are 8 possible switch positions.

    fORP Interface Switch Positions

    Switch Position Serial USB TTL
    0 Standard Standard Standard
    1 E-Prime Mac Inverted
    2 Bitwise Non Auto-release  
    3 Trackball Trackball  
    4 Superlab Numeric  
    5 Joystick Joystick  
    6 8 Button 8 Button 8 Button
    7 Special Special  


    The switch has a small arrow which points to a number as is shown below.
    Interface Switch
    Use a small flat headed screw driver to turn the switch to other positions. The interface must be reset each time the switch is changed which is done by unplugging the interface for a few seconds.

     

    SERIAL PORT fORP USE

    To connect the fORP to the serial port on your computer use the cable which has a small round connector on one end (a Mini DIN-8) and a D-shaped connector on the other end (a DB-9P). Contact us for a replacement or make your own (the wiring pinout of the cable is described in Appendix C).

    Configuring the Serial Port

    There are 3 different baud rates - 19.2k , 57.6k, or 1200 - depending on the switch position.

    Serial Port Settings by Program Number

    Switch Setting Baud Bits/word Parity Stop bits
    0 19200 8 N 1
    1 19200 8 N 1
    2 57600 8 N 1
    3 1200 8 N 1
    4 19200 8 N 1
    5 1200 8 N 1
    6 19200 8 N 1
    7 57600 8 N 1


     

    Serial Port Program 0: Standard

    Port settings: 19200,8,N,1

    In this mode, the fORP sends an ASCII code each time a button is pushed, and once for each TTL trigger that is received.

    Serial Data by Button Press

    Button ACSCII Hex
    Blue 1 31
    Yellow 2 32
    Green 3 33
    Red 4 34
    Trigger 5 35


     

    Serial Port Program 1: E-Prime

    Port settings: 19200,8,N,1

    E-Prime is a program sold by Psychology Software Tools, and the name is a registered trademark. The fORP works well as a serial response device with E-Prime. Many users also use the fORP through the USB Port. If you are having trouble getting started, please see the E-Prime user notes in Appendix B.

    In this mode, the fORP sends a constant stream of bytes, 800 times per second. If no buttons are pressed, null bytes (all bits low) are sent. The fORP uses the bits in the following way.

    Serial Data for Eprime

    Bit Use
    0 Blue
    1 Yellow
    2 Green
    3 Red
    4 Trigger
    5  
    6  
    7  


     

    Serial Port Program 2: Bitwise

    Port settings: 57600, 8, N, 1

    The same bit assignment is used as in the E-Prime case above, but bytes are only sent when there is a change in button or trigger status.

    Serial Data Examples for Bitwise

    Bite Meaning
    0000 0010 Yellow
    0000 0110 Green, yellow
    0000 0000 Nothing
    0001 0000 Trigger
    0000 0000 Nothing
    0000 1000 Red
    0000 1101 Red, green, blue
    0000 1111 Red, green, yellow, blue
    0001 1111 Trigger, red, green, yellow, blue
    0000 0010 Yellow
    0000 0000 Nothing


     

    Serial Port Program 3: Trackball as a Serial Mouse

    Port settings: 1200,8,N,1

    The trackball mimics a standard serial mouse and is able to act as the pointing device under Windows. Windows checks for a mouse connected on the serial port on power up and when asked to looked for new hardware. The first time the trackball is used it will need to be added as new hardware and you may need to tell the program to add the serial mouse driver. Once the trackball has been connected and installed you will be able to move the cursor using the trackball. The speed and sensitivity of the trackball can then be adjusted in the control panel menu (Mouse-Pointer Options-Motion).
     

    Serial Port Program 4: Superlab

    Baud rate: 19200

    Superlab is a registered trademark of Cedrus Corporation. A number of Superlab customers use the forp as they would the RB-6XX series of response pads. The fORP sends an ASCII code each time a button is pushed, and once for each TTL trigger that is received. In a similar fashion to the E-Prime case, individual bits within the transmitted bytes are assigned for each button although the bits were assigned differently: To use this output with Superlab be sure to select the RB-610 (it will not work properly with the RB-410 module). (This information is valid for Superlab versions up to at least 2.0.4).

    Serial Port Settings by Program Number

    Bit 0 1 2 3 4 5 6 7
    Use Red Blue Green Yellow Trigger      


     

    Serial Port Program 5: Joystick as Three-Button Serial Mouse

    Baud rate: 1200

    The joystick mimics a 3 button serial mouse and is able to act as the pointing device under Windows. Windows checks for a mouse connected on the serial port on power up and when asked to look for new hardware. The first time the joystick is used it will need to be added as new hardware and the user may need to tell the program to add the serial mouse driver:

      Control Panel --> Add Hardware


    Once the joystick has been connected and installed you will be able to move the cursor using the joystick. The speed and sensitivity of the joystick can then be adjusted in the control panel menu:

      Control Panel --> Mouse --> Pointer Options --> Motion



    The trigger pulse from the scanner will look like the third button is being pushed.

    See Appendix A for more information on Set Up and Use.
     

    Serial Port Program 6: 8 Button Handhelds

    Baud rate: 19200

    The program is similar to position 0, where the fORP sends an ASCII code each time a button is pushed, and once for each TTL trigger that is received, except that there are 4 additional buttons .

    The side LEDs will only light for right handed button pushes (1 to 4). This is a good way to distinguish between the right and left handheld.

    Serial Data by Button Press

    Left ASCIIl Right ASCII
    Blue 6 Blue 1
    Yellow 7 Yellow 2
    Green 7 Green 3
    Red 8 Red 4
        Trigger 5


     

    Serial Port Program 7: Programmers Joystick

    Baud rate: 57600

    With the rotary switch set to position 7, the serial output from the fORP interface is: higher baud (57600) higher resolution (11 bits in x and y) not compatible with standard built-in drivers (such as MOUSE.SYS). These qualities give it higher possible performance than is available using the position 5 output, but put some burden on the user to read and interpret the data.

    In this mode 4 bytes are sent continuously. The packet structure is as follows:

    Byte d7 d6 d5 d4 d3 d2 d1 d0
    1 1 lb mb rb y10 y9 y8 y7
    2 0 x6 x5 x4 x3 x2 x1 x0
    3 0 y6 y5 y4 y3 y2 y1 y0
    4 0 0 0 0 x10 x9 x8 x7

     

    lb left button
    mb middle button
    x10...x0 11 bit word for X position
    y10...y0 11 bit word for Y position



    C Code Sample Here is one way to unscramble the x,y portion of the received bytes:

    int main_higher_res_4byte(int *sPort) {   
      int bytes_expected;   
      int result;   
      unsigned char c[10];   
      short int x,y;   
    
      printf(\n - This expects fast serial data similar to mouse packets -\n);   
      setBaud(*sPort, B57600);   
      printf(Baud set to 57600 for this mode\n);   
      
      bytes_expected = 4;   
      while(1) {     
        result = sPortRead(*sPort, c, bytes_expected);     
        if(result!=-1) {       
          x = (c[1] & 0x7f) | ((c[3] & 0xf) << 7);       
          if(x>0x3ff) x = x - 0x7ff;       
          y = (c[2] & 0x7f) | ((c[0] & 0xf) << 7);       
          if(y>0x3ff) y = y - 0x7ff;       
          printf( %02x %02x %02x %02x [%d] [%d]\n, c[0],c[1],c[2],c[3], x, y);     
        }   
      }   
      return 1; 
    }
    


     

    USB PORT fORP USE

    To connect the fORP to the USB port on your computer use the cable which has a USB type B connector on one end and a USB type A connector on the other end. Contact us for a replacement or buy one at any computer store.

    Configuring the USB Port

    If you have a USB port on your computer, using the fORP button pads should be as simple as connecting the USB cable between the fORP and your computer. Once connected, the fORP will appear to the computer as another keyboard, so button presses will be echoed in the active window on the display. For instance with the switch in position 0, if you are using a word processing program, you should see characters appear (r for red, b for blue, etc.) when the buttons are pressed. (In programs 3 and 5, the device will enumerate as a game pad. )
     

    USB Program 0: Standard PC

    In this mode the fORP is enumerated automatically as a USB HID (Human Interface Device) keyboard by the computers operating system. HID keyboards behave in well-defined ways and are widely recognized by all modern operating systems. Button presses will generate keyboard keycodes:

    USB Data by Button Press

    Button Keycode
    Blue b
    Yellow y
    Green g
    Red r
    Trigger t


     

    USB Program 1: Standard Mac

    The fORP enumerates as a USB HID keyboard, with the following keycodes. The "apple + \" is needed in some Macintosh programs for the trigger.

    USB Data by Button Press

    Button Keycode
    Blue b
    Yellow y
    Green g
    Red r
    Trigger apple + \


     

    USB Program 2: Non-Auto-Release

    The keycodes are the same as program 0, but the release code is not sent until the key is released. This output can be used to give the duration of the button press. This output is useful if both press and release is of value in the experiment.
     

    USB Program 3: Trackball

    In this position the trackball enumerates as a USB HID gamepad with x, y control and two buttons. The red and green side LEDs on the interface light when the buttons are pushed. There is no initialization period with the trackball. Use:

      Control Panel --> Game Controllers 


    to check the trackball function under Windows.
     

    USB Program 4: Standard PC Numerical

    USB Data by Button Press

    Button Keycode
    Blue 1
    Yellow 2
    Green 3
    Red 4
    Trigger 5


     

    USB Program 5: Joystick

    In this position the joystick enumerates as a USB HID gamepad with x, y control and two buttons. The red and green side LEDs on the interface light when the buttons are pushed. To test under windows, use:

      Control Panel --> Game Controllers.



    See Appendix A for more information about the Joystick Set Up and Use.
     

    USB Program 6: 8 Button Handhelds

    The side LEDs will only light for right handed button pushes (1 to 4). This is a good way to distinguish between the right and left handheld.

    USB Data by Button Press

    Left Keycode Right Keycode
    Blue 6 Blue 1
    Yellow 7 Yellow 2
    Green 8 Green 3
    Red 9 Red 4
        Trigger 5


     

    PARALLEL PORT (or TTL) fORP USE

    To connect the forp to the Parallel port on your computer use a specially made cable which connects to the forp's 10/10 Modular connector. This connector has 10 pins. Pins 1 - 4 correspond to the response pads buttons (pins 7-10 to the extra 4 buttons on 8 button bimanual). Pin 5 is for the trigger. This output gives very accurate responses and it can be used with systems like Neuroscan. It can also be used with a standard I/O computer board. The following table describes the pins of the 10/10 Mod connector (the pins are numbered from left to right):
     

    TTL Program 0: Standard

    They are normally low, and are driven high (+5) for the duration of the button press. The pin is high whenever the button is depressed. It returns to 0 when the button is released. More than one button can be pushed at a time and they are independent of the trigger.
     

    TTL Program 1: Inverted

    They are normally high, and are driven low (0) during a button press. The pin is low whenever the button is depressed. More than one button can be pushed at a time and they are independent of the trigger.
     

    TTL Program 6: 8 Button Handhelds

    This is the 8 button handheld position. They are normally low, unless driven high (+5) during a button press. The pin is high whenever the button is depressed. More than one button can be pushed at a time and they are independent of the trigger.

    TROUBLESHOOTING

    Things to try when your system doesn't seem to be working:

        1. Make sure the 8-position switch on the front panel is in the position needed for the output desired. For example, if you used position 2 for the serial output, you will need to set it to a valid USB setting. Reset the interface each time the position is changed by disconnecting the power.
        2. The removable bundle should be installed. The system will not work properly if it is not used.
        3. To check the optical part of the system, detach the interface from the computer. The side LEDs should light when the corresponding button is pushed. If this is not the case, reset the interface by detaching from the power supply for a few seconds. After resetting the system should function correctly.
        4. To check the computer connection, first use the Position 0 program for the output you are using. See the appropriate section above for testing instructions.
        5. If your system is still having a problem please let us know and we will work with you to fix it as quickly as possible. Your system is under warranty for 1 year from date of purchase. During that time we will fix any malfunction free of charge. We will fix any damage you cause at a reduced charge. After one year we will charge parts and labor for the repair.
     

    APPENDIX A / Joystick Set Up and Use

    Getting Started

    With the the program switch on position 5, the joystick can be connected as either a USB device or as a serial device. In either case, these are the first steps to set it up:

        1. Very important: make sure the (long) removable fiber optic bundle is connected between the interface unit and the joystick.
        2. Also very important: make sure the long bundle is the correct one for use with this joystick and interface unit.
        3. Place the joystick on a level surface and let the shaft rest at its normal vertical position.
        4. Power up the interface by connecting the power supply.
        5. Watch the side panels lights-- after a few seconds the red LED should blink, indicating the centered joystick position has been recorded.
        6. Connect either the USB cable or the serial cable to the computer.


    Now, assuming a Windows OS, there are two ways you can go:

    USB

    When used as a USB device, the joystick enumerates as a USB HID gamepad with x, y control and two buttons.
    The game controllers control panel is a convenient way of confirming that the operating system is able to properly communicate with the joystick
        1. Open Game Controllers control panel
        2. You should see a device listed as "Sb" (where the "S" is actually an integral symbol)
        3. Click on the Properties button (this opens a small window with a cross hair display
        4. Now, you should be able to see the X,Y cursor control when you move the joystick shaft
        5. You should also be able to confirm that the two buttons function
    Further use of the joystick under USB depends on the support of game controller devices in the program you are using.

    Serial

    When used through a serial port connection, the joystick mimics a 3 button serial mouse.

    The first time you use the joystick through the serial port with windows, you need to tell windows to look for it.

    With the serial cable connected:
        1. Open the Add Hardware control panel. This will start a search, and should end within a few seconds.
        2. When the searching icon stops circling, you should find that the joystick can now be used to control the main system cursor.
    The cursor control may be too sensitive to the joystick position. This can be controlled to some extent by adjusting the parameters in

      Control Panel -->  Mouse --> Pointer Options --> Motion 

     

    Other Joystick Notes

    Grip

    The joystick (HH-Joy-4) handheld has both a finger stick and hand grip. To use the hand grip slide into place over the finger stick. There are two different centering pads: the gray pad is for use with the finger stick. The black pad provides more resistance and is for use with the hand grip. Use the o-ring to keep the pads in place. To change the pads, remove the hand grip (if it is installed) and roll the o-ring up over the stick. It works best if you do this on two sides. Replace the pad and then the o-ring. The joystick can be used without any pad in place for force-free movement. Replace the pad for storage and to initialize the joystick. When changing pads try to minimize torque on the joystick components.

    Switch Positions

    The main switch position for the joystick is position 5. This gives both serial and USB output. There is an additional serial output on position 7 which is called Programmers Joystick. See the description of this output in the section on Serial Port outputs. The switch should be set to position 5 (or 7) before plugging in the power and initializing the joystick.

    Initialization

    The joystick handheld has an initialization period of 5 seconds when the interface is plugged in. During this time the joystick should be on a level surface with one of the center pads in place. It should not be moved. The firmware reads the light levels in the position and uses it as the center. If its movement appears to be erratic or off center, reset the joystick by unplugging the power for a few seconds and reinitialize it more carefully. This happens every time the interface is plugged in, so if the interface loses power, the joystick will automatically re-initialize when the power returns.

    Be gentle

    This joystick has been designed to be robust and give years of dependable use, but there are occasions where some care should be taken to avoid damage:

        1. During changes of the centering pads, removal of the O-ring can strain the internal plastic parts if not done carefully.
        2. During dramatic tasks, especially involving children subjects, there may be a tendency for the joystick to be slammed from one extreme to another. As an all-plastic device, the joystick cannot tolerate an endless amount of this type of use. It may make sense to window the data from the joystick, or the behavior of the feedback, in such a way that subjects learn there is no advantage to extreme motions. If you think this will be a problem in your lab, please contact us and we will try to help find a solution.
     

    APPENDIX B / E-Prime User Notes



    Our customers report to us that they are able to use E-Prime (from Psychology Software Tools). This is an attempt to pass along the tips that they have shared with us.

    General

    The E-Prime program 1 on the forp transmits serial data continuously, even if no buttons are pressed, in order to mimic the output from PSTs own serial response box. This makes it different from the standard (position 0) ASCII-output fORP which only sends bytes when there is a change in any of the buttons, or when a TTL trigger is received. The E-Prime version is also different from the standard one in that the buttons are mapped to individual bits in the transmitted byte, so it is possible to detect combinations of simultaneous button presses. This is more informative than the ASCII output, but can be harder to test initially because the resulting data are binary and cannot, for instance, be looked at easily with a terminal emulator program connected to the serial port.

    Set-up Steps

        1. Be sure you are using the full 1.0 version of E-Prime. Users have had difficulty with both the demo version and with the utility program that is available from the PST web site.
        2. With the fORP powered on and working correctly, connect a serial cable from the Mini DIN8 connector of the fORP to the serial port you will use on the computer.
        3. Add the port device in the experiment. (Double clicking the root of the experiment will show you the properties of the experiment where you can add devices.) If you are using the first serial port (COM1), the following settings should be used: Address=&H3F8 Size=8 Invert=0 Mask=-1.
        4. If the address above does not work, check your computers hardware device setting for COM1 (or whichever COM port you are connected to). On the Resources tab you can find the correct address.
        5. Check the values read from the 4 buttons and the trigger. They should be: Blue (1), Yellow (2), Green (3), Red (4). Trigger pulse has the value of 5.
        6. A user noted that the FI/FO buffers should be turned off.


    Please contact us if you are still have trouble getting your forp to work with E-Prime. We would also be grateful for any pointers you have that might help other fORP users.
     

    APPENDIX C / Cable Details

    Serial Cable Details

    Here are the wiring details for the serial cable we provide:

    Serial Cable Pin Out

    DB-9 Pin Min DIN8 Pin Function
    2 3 Data from fORP to host
    3 8 Data from host to fORP (not used)
    5 4 Signal ground
    7 1 RTS
    1,4,6,8,9 2,5,6,7 No Connection


    Note: the connector cases are tied together through shield wire.

    Testing the Serial Connection

    A good way to test that the serial connection is working correctly is to use a terminal emulator program (such as Hyperterminal) to check the fORP output with the program switch at position 0. Make sure the port is set to the one the cable is connected to, and that the port settings are: 19200,8,N,1 (57600, 8, N, 1 for Position 2). You should see a single character for each button press.
     

    USB Cable Details

    The USB cable is a standard cable available at any computer store. It is USB type B (forp connector) to USB type A (computer connector).

    To test that the USB connection is working correctly use a note pad or word processing program to check the fORP output with the program switch at position 0. Button presses on the handheld should be shown on the screen as b, y, g, or r.

    10/10 Mod Cable Details

    We supply the cable upon request. It can be built according to the users specifications for use with a parallel port. We normally supply it with the connections to a 25 pin D-connector shown in the table below.

    Testing the 10/10 Mod connection requires a cable from the connector on the forp. Avoid directly touching the pins inside the connector because they are easily shorted to one another. With the program switch at position zero (pointing towards the 9 oclock position). button presses on the handheld should drive the corresponding pin go high (+5).

    Looking into the connector the pins correspond to the following output from left to right:

    Serial Cable Pin Out

    Pin 1 2 3 4 5 6 7 8 9 10
    Button Red1 Green1 Yellow1 Blue1 Trigger GND Red2 Green2 Yellow2 Blue2



    When a button is depressed the corresponding pin should be driven high in position 0 (position 6 for the 8 button handhelds). The pin will remain high until the button is released.