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
Removable Fiber Optic Bundle
Response Pad (with 10 foot long bundle)
Includes one or more of the following:
Power supply
Includes one of the following:
Cables
Includes one or more of the following:
SET UP
To test the optical part of the system without a computer: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:
![]() |
![]() |
| Interface front panel | Interface rear panel |
| Connectors from left to right: | |
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
| 0 1 2 4 | Standard E-Prime Bitwise Superlab | Standard Mac Non Auto-release Numeric |
5- and 8-button handheld devices
| 6 | Standard | Standard |
Trackball
| 3 | Serial mouse | HID gamepad |
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 |
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.
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.


