The GKOS Infrared Remote Control

A PIC 16F876 microcontroller and an IBM TrackPoint (R) mouse are used to implement an IR remote control including a GKOS keyboard and pointer control. It can send GKOS chord value IR packets as well as mouse movement/button state IR data packets to be received and used in several types of applications.


See also: Mouse unit (TrackPoint) for connecting Yin, Xin and Calibrate signals


 HEX file for PIC 16F876
 GKOS keyboard functions only gkir3s.hex  (version 0.3, asm)
 GKOS keyboard+mouse functions
 (See figure above)
gkir17.hex (version 1.7, asm)

23 nov 2002 - Check for updates.



File gkir14.hex is the latest fully functional software for PIC 16F876 including GKOS keyboard operation and the mouse functions. Use it also for testing if the mouse biasing works in your own circuit. It can send GKOS keyboard data as well as pointer control data, and can also be used without the mouse if Y and X inputs (pins 2 and 3) are connected to ground (R1 and C1 are then not needed of course, but DO NOT ground pin 12 !).

File gkir3.hex is a package without mouse functions (will not be updated any more).

A power source of 5 volts is also required. This includes a 9 volt battery, power switch and a 5 volt regulator.

PWM2 output (pulse width modulation) is used to adjust the TrackPoint mouse operation bias voltage (TrackPoint idle gives 2 volts at Y in). C1 is a tantalum capacitor of 0,22uF and R1 is 47k.

When assembling the TrackPoint mouse note that it is rotated 90 degrees counterclockwise (seen from the front) from its normal position to better fit the right edge of the small case (box). This causes the X axis and Y axis to become Y axis and inverted X axis respectively.

Care must be taken to avoid interference from the IR LED (pulsed current) to the mouse unit that has large gain amplifiers.

The GKOS keypad must use keys that have a resistance well below 4 kilo ohms while being pressed, so typical rubber pad contacts (like those in most calculators) can be used. See also the 'SixBack' implementation of the keypad.

Page updated 8 Oct 2002