| The Happ Control Interface Board (CIB) is designed to provide an interface between any control that Happ manufactures and an IBM compatible PC running Windows '95 or higher with Direct X 5 or higher. The CIB is located at or near the controls and communicates to the computer via RS-232 at 57.6KB. The CIB can be located over 50 feet from the PC. It is powered by an optional power supply and draws no power from the computer. The interface is connected to the PC via a standard 9-pin DB9 COM port on the computer. The CIB can transmit updated information to the computer at a selectable rate of either no updates (polling), 16 or 32 updates/second, or continuously (>225 updates/second). The controls are added as a joystick in Control Panel/Game Controllers.
Operation
The Happ Controls Control Interface Board (CIB) allows for 16 digital I/O signals, six digital input signals and four filtered analog input signals. Commands allow the PC to configure and query the CIB. All commands and queries must be immediately preceded and terminated by a line feed character followed by a carriage return.
{Chr(10)+Chr(13)}
This board operates on 8-12 Volts DC or on 6-9 Volts AC, supplied on J4. DC supply is polarity sensitive. The ground side of the power connector is connected to the ground of the whole circuit. For an AC supply, it is recommended that the AC source be a floating transformer secondary winding. For DC sources, care must be taken to ensure that no ground loop paths are formed between the power supplys ground line and the ground line of the various devices attached to the board. For this purpose, all device connectors (J1,J2,J3 and J5) have been fitted with a set of ground and regulated 5Volt outputs to allow the board to serve as the central power supply ground connection point to all devices. For security reasons, a separate safety ground line should be used on all devices to assure user safety and to provide a static discharge path.
Table of Contents
Programming and Interconnection Model:
J1 is an analog input port. It contains four (4) analog inputs. These inputs are designed to receive signals in the range of 0 to 5 Volts DC. The onboard A/D converter translates this to a reading of 0 (~0 Volts) to 255 (~5 Volts).
J1 is a 9 pin connector. Pins 1 and 9 are designed to supply filtered analog power to 2 joysticks with ground returns on pins 8 and 3. Pin 4 corresponds to analog input 1, pin 5 to analog input 2, pin 6 to analog input 3 and pin 7 to analog input 4. Pin 2 is an absent key pin.
IMPORTANT: The CIB sends information to the host whenever an analog input changes. As the noise on floating inputs may represent a continuously changing input, unused analog inputs MUST be grounded. Analog inputs should never be left unconnected.
J2 is an 8 bit digital I/O port. Pin 12 is a +5 Volt DC supply line with pins 1 and 11 acting as ground returns. Pin 2 is I/O 0, pin 3 is I/O 1, pin 4 is I/O 2, pin 5 is I/O 3, pin 6 is I/O 4, pin 7 is I/O 5, pin 8 is I/O 6 and pin 10 is I/O 7. Pin 9 is an absent key pin.
J3 is an 8 bit digital I/O port. Pin 12 is a +5 Volt DC supply line with pins 1 and 11 acting as ground returns. Pin 2 is I/O 8, pin 4 is I/O 9, pin 5 is I/O 10, pin 6 is I/O 11, pin 7 is I/O 12, pin 8 is I/O 13, pin 9 is I/O 14 and pin 10 is I/O 15. Pin 3 is an absent key pin. Note: If a trackball is used, connect is outputs from one axis to I/O 12 and 13 and the other axis to I/O 14 and 15.
J5 is a 7 bit digital input port. Pin 12 is a +5 Volt DC supply line with pins 1, 10 and 11 acting as ground returns. Pin 2 is I/O 16, pin 3 is I/O 17, pin 4 is I/O 18, pin 6 is I/O 19, pin 7 is I/O 20, pin 8 is I/O 21 and pin 9 is I/O 22. Pin 5 is an absent key pin. I/O 7 does not exist on this port and is reported as asserted to the software.
J4 is the input power connector. Pin 1 is power, pin 3 is ground. Pin 2 is an absent key pin.
Table of Contents
Installing and Using WIN95 Driver
This driver must be installed first. See README file on CIB Driver Disk for installation and control connection information. The controls can be selected in Controls Panel/Game Controllers as Amerisys/Happ Com X Joystick. After installing the driver, select this joystick and calibrate in Game Controllers as you would any joystick.
The WIN95 DirectX drivers are loaded when the operating system is started. It uses DirectInput structures to support analog joysticks, digital I/O and a trackball as a mouse. Multiple CIBs can be connected to multiple COM ports provided that each COM port has its own IRQ. Shared IRQs between COM1 and COM3 and between COM2 and COM4 are not supported.
This driver maintains consistency with the DirectInput APIs as described in the WIN32 SDK. Applications over the API can be written in any API compatible language such as Visual C++ and Visual Basic.
You can design your application to use DirectInput functions to determine the capabilities of the joystick and drivers. The joystick driver can be queried to reveal joystick position and pushbutton status. You can use a standard mouse API to interface to the trackball.
Table of Contents
Installing and Using Parameters Editor
This utility gives you the ability to set the parameters for the CIB-1000 that will be used when the computer is started. This includes setting the I/O direction, defining the polling, etc. It can be used to familiarize yourself with the CIB and the joystick.
This is a separate program from the Win95 driver and does not have to be installed, but Happ Controls recommends using it. It is a good debug tool, too.
This information is transferred directly to the registry files on the PC, and will not have any effect until the system is shut down and rebooted.
Before installing Parameters Editor the Windows 95 drivers for the CIB-1000 must be installed. See the readme file on the drivers disk for installation instructions.
To install the Parameter Editor insert disk 1 of 2, click on the start button, and select run. Type in A:\setup.exe then click on OK. Follow the on screen instructions.
To use the software click the start button and select Parameters Editor.
This program must be closed when running your application.
Table of Contents
Installing and Using Control Performance
This utility gives you the capability to verify correct operation of all aspects of your joystick/trackball with visual feedback as to what the CIB-1000 is reporting back to the PC. It can be used to familiarize yourself with the CIB and the joystick and makes an excellent debug tool. It is a separate program from the Win95 driver and does not have to be installed, but Happ Controls recommends using it.
Before installing Control Performance the Windows 95 drivers for the CIB-1000 must be installed. See the readme file on the drivers disk for installation instructions.
To install Control Performance insert disk 1 of 2, click on the start button, and select run. Type in A:\setup.exe then click on OK. Follow the on screen instructions.
To use the software click the start button and select Project1.
This program must be closed when running your application.
Table of Contents
Using Hyper Terminal when not using the CIB driver
Windows Hyper Terminal may be used to communicate directly with the CIB-1000 when not using the CIB Driver. To open a session in Hyper Terminal click the Start button. Then select Programs. Then Accessories, and finally click on Hyper Terminal.
This information applies to Windows® 95 and above. The setup for Windows NT® is slightly different and is not shown here.
Due to different versions of Windows 95 and different system setups the steps described here may not be the same on your system.
If you are unsure how to proceed please consult your Windows Documentation or see your system administrator.
Double click the HyperTerm.exe icon.
If Hyper Terminal is not available off the Start Button it may not be installed on your system. Please Consult your Windows Documentation or see your system administrator to add this option.
Enter a name you wish to assign to this connection.
For our example we are naming the connection HAPPCIB1
After the name for the shortcut has been typed in a second window will appear which will ask which COM PORT to use.
Select the COM PORT to which the CIB-1000 is connected.
Click OK
Another window will now appear which is used to set up the COM PORT.
Set it as follows:
| Bits per second |
57600 |
| Data bits |
8 |
| Parity |
none |
| Stop bits |
1 |
| Flow control |
hardware |
When finished click OK.
At this point double click the Icon you have just created.
A Window will appear with a flashing cursor and a number of menu selections across the top.
Select File then Properties. Next click the Settings tab on the properties dialog box.
Next click on the ASCII Setup button.
Make sure that the Echo typed characters locally box is checked.
All commands must be entered in UpperCase.
Table of Contents
Auto-identify
The Host can request the board to identify itself. This can be used to assist driver software and to monitor continued operation/connection status of the board (heart beat function). To request the auto-identification response, the host transmits to the CIB:
A
and the CIB responds with:
AmeriSys Inc. HAPPGC - ver.1.4 S/N xxxxxxxx
where xxxxxxxx is the unique electronic serial number (00000000-FFFFFFFF) of the CIB. This can be used by the application to insure that only the particular CIB registered for that application is used, foiling cloning or bootlegging of the application.
Table of Contents
Communication speed
Only updates when polled:
P0
To instruct the CIB to communicate at 16 updates/second:
P1
To instruct the CIB to communicate at 32 updates/second:
P2
Updates Continuously (greater than 225 updates/second) (default):
P3
The CIB will echo the command: (Recommended; if you confirm the echo this will help you make sure the CIB has received your command)
Note: The PC may get bogged down when updating continuously if it is not a P200 or better.
Table of Contents
Querying on inputs
The PC can request the Control Interface Board to retransmit its input status via the following command:
I
The Control Interface Board will respond to this command or any change on its inputs with:
I A3 A2 A1 A0 TX TY I22-16 I15-8 I7-0
where A3, A2, A1, A0, TX, TY, I22-16, I15-8, I7-0 are pairs of hexadecimal ASCII characters (0 to F) that represent byte values.
| A0 represents analog input 0 value |
00-FF |
|
|
| A1 represents analog input 1 value |
00-FF |
| A2 represents analog input 2 value |
00-FF |
| A3 represents analog input 3 value |
00-FF |
| TX represents the trackballs 16 bit X count |
0000-FFFF |
| TY represents the trackballs 16 bit Y count |
0000-FFFF |
| I22-16 represents inputs 22 to 16 |
00-7F |
| I15-8 represents inputs 15 to 8 |
00-FF |
| I7-0 represents inputs 7-0 |
00-FF |
Table of Contents
Setting analog response time
The response time of the analog inputs can be set by sending the following characters:
| For 5 HZ |
D1 |
| For 10 HZ |
D2 |
| For 20 HZ |
D3 |
| For 40 HZ (default) |
D4 |
CIB will echo command.
Slightly faster analog response can be realized by using a greater response frequency. A lower response frequency will filter out more analog noise from the analog source.
Table of Contents
Configuring transmission on input transition mask
The host can mask any input from creating a transition related transmission via the following command:
M M22-16, M15-8, M7-0
where M22-16, M15-8, M7-0 are hexadecimal ASCII character pairs ranging from "00" to "FF". Each hexadecimal character represents one nibble of I/O signal direction. Asserting a bit causes the CIB to transmit when a the input changes state (0 to 1 or 1 to 0). De-asserting a bit masks or disables this automatic transmission upon transition feature.
The current mask may be read back from the CIB by sending an "S" command. The CIB responds with an "S S22-16 S15-8 S7-0" response.
Table of Contents
Configuring the digital signal lines as Inputs or Outputs
The PC can configure the I/O direction of any digital signal via the following command:
X X15-8, X7-0
where X15-8, X7-0 are hexadecimal ASCII character pairs ranging from "00" to "FF". Each hexadecimal character represents one nibble of I/O signal direction. Asserting a bit configures the corresponding line as an input. De-asserting a bit configures the corresponding line as an output. As lines 22 to 16 are always inputs, any value placed on these direction bits are ignored.
Table of Contents
Query the I/O direction status of the CIB lines
The PC can query (read back) the direction of the digital I/O signals via the following command:
T
the Control Interface Board responds with
T T22-16 T15-8, T7-0
where T22-16, T15-8, T7-0 are pairs of hexadecimal ASCII characters ranging from "00" to "FF". Each hexadecimal character represents one nibble of I/O signal direction. An input is represented by an asserted bit, an output by a de-asserted bit.
| T22-16 represents I/O's 22 to 16 |
00-7F |
| T15-8 represents I/O's 15 to B |
00-FF |
| T7-0 represents I/O's 7-0 |
00-FF |
Table of Contents
Setting output levels
The PC can also set the output levels of signals that are defined as output via the following command:
O O15-8 O7-0
The Control Interface Board will respond if the above command has changed any signals on its outputs via an input change response (see "I" command below). Asserting a bit sets the corresponding output high (> 3 volts) and de-asserting a bit resets the corresponding output (<0.7 volts). As signal lines 22-16 are always inputs, any values placed in these bits are ignored.
| O22-16 represents outputs 22 to 16 |
00-7F |
| O15-8 represents outputs 15 to 8 |
00-FF |
| Of-0 represents outputs 7-0 |
00-FF |
If an Input does not agree in level with an requested output level, this implies that an external signal is overwhelming the requested output signal. If such case occurs, the board will revert its output to the overwhelming input level. This is done to avoid damage to the Control Interface Board by a gross output overload. Each output is capable of sinking 20 ma and sourcing 10 ma. The total combined output current of all sinking outputs must not exceed 180 ma. Outputs/Inputs 15 to 0 are internally pulled up to +5Volts to allow for direct ground switch sensing.
Table of Contents
Restart Commands:
R
Forces a total restart of the CIB-1000
W Causes a Warm Reboot of the CIB-1000. The I/O status is maintained. Counters are not reset.
IMPORTANT!
When communicating with the CIB-1000 directly (not using the Win95 driver) your application must provide a delay of 200 microseconds after the stop bit and before the start bit. You must also provide a delay of 400 microseconds after every command. This will insure that the buffer on the PIC chip on the CIB-1000 will not overflow.
Table of Contents
Configuring For Using A Trackball With The CIB-1000
Configuring for use with a trackball can be done by selecting Trackball in Parameters Editor Utility. This will make the necessary registry changes after you reboot. The registry changes can also be done manually.
Table of Contents
Configuring the Registry Manually:
Using this information assumes that you have a working knowledge of the Windows 95 Registry and can follow the instructions below.
WARNING! Making changes to the registry, other than indicated below, can cause your machine to stop responding and become un-bootable. If the registry becomes corrupted the only recourse may be to completely reinstall Windows 95. Before beginning It would be advisable to use the Registry Editor Utility to create a backup copy of the registry (EXPORT REGISTRY FILE) to a safe location (I.E. A 3˝ Floppy) just in case.
To set the Registry for using the trackball do the following.
Start Windows 95 Registry Editor. (Run Regedit.EXE)
Select:
HKEY_LOCAL _MACHINE
SYSTEM
CurrentControlSet
Control
MediaProperties
PrivateProperties
Joystick
OEM
AmerSys/Happ COM 1 Joystick
OEM1Config
Double Click on OEM1 Config on right side of the window.
The Byte which needs to be edited is 0030.
If it is set to 00 then change to 01. If all ready at 01 then leave it as is.
See next page for a graphic of what you should see.
Once the above steps have been completed it will be necessary to reboot Windows 95 for the changes to take affect. The joystick must be read once before the trackball will work. When called, the trackball will be mapped as a mouse. Games will do the call; please insure that your app will, also. Happ Controls has a short "Mouse Primer" program that will do this at Boot-up. Please contact Happ for a free copy.
Table of Contents
Note: Care must be exercised not to over-power the board with excessive voltage. Care must also be taken not to draw any significant power from J1, J2, J3, or J5. Power supply outputs on these connectors have been designed to supply the requirements of the Happ Controls Trackballs and Joysticks. Drawing of excess power will cause the voltage regulator on the board to shutdown either because of immediate excess power demand or via thermal shutdown (if it overheats). In either case, the operation of the board will be jeopardized.
The RS232 connector is wired as a standard 9 pin DCE device. It is designed to represent a peripheral device to a host.
Table of Contents
Happ Controls Control Interface, CIB-1000
96-0167-00
Table of Contents
Function Diagram
Table of Contents
|