• Please review our updated Terms and Rules here

IBM iPoint keyboard--anyone have any ideas?

Chuck(G)

25k Member
Joined
Jan 11, 2007
Messages
44,223
Location
Pacific Northwest, USA
On impulse (new for $5), I picked up an IBM I-Point IR keyboard:

G15326B.jpg


It takes 4 AA cells and has a rubber pointing device in the corner. I can't find a thing out about this and will probably end up hooking an IR sensor to my logic analyzer to figure the codes out.

The serial number is 768, so there probably weren't many of these produced. IBM part number 19K1800; Model no. SK-8807.

Anyone know anything else about this?
 
The keyboard has what look like internet labeled keys (reload, home). I remember seeing a lot of similar form factor keyboards for WebTV. I also have a Kensington Mouse from the mid-90s with IBM logos, part of an unfortunate partnership.

My guess would something along those lines: a WebTV keyboard with licensed use of the IBM logo. Unless IBM partnered on some other internet device.
 
Clearly, something with the IBM logo interests me, particularly if it's NIB and costs $5. I have only the keyboard--if there's a receiver/transmitter unit for it, I haven't found one.

I've seen web photos of other similar, larger, IBM keyboards, but no hint as to what they were part of. Note that the function keys are labeled F1 through F5, with the remainder with various symbols. There are 12 of them, however, just as on a regular keyboard.

Didn't IBM float a PS/2 IR keyboard back in the day?
 
Does anyone have a picture of the IBM Net-Vista Personal Internet Device?

Compare it to the Compaq MSN Companion which follows much the same basic design guidelines: partial set of function keys, bunch of icon keys, right hand row of navigation, and a pointing device in the upper right corner.
http://www.wince.ne.jp/review/okamon/img/206.jpg
 
Last edited:
IBM Netvista Internet Appliance.

And there it is! From the press blurbs, it seems that the intent was to offer these things to OEMs for integration into their market. Royal Caribbean Cruises and Fidelity Financial were supposed to be the flagship customers, but I suspect the whole affair self-detonated shortly after introduction. Too bad--it reminds me a bit of the iOpener.

I've never seen the IBM Internet Appliance "in the flesh". They must be uncommon.
 
Last edited:
Update

Well, not being able to find anything on the keyboard, I couldn't resist a challenge. I'm getting very close however.

A quick check with a scope and a phototransistor showed that it uses a standard 38KHz IR carrier. Good thing--little 3-terminal receivers for this are cheap. Now, what to make of the keyboard encoding.

Using little STM32F103 board (cheap on ebay--I have a box full of them) and a VS1838B receiver (super cheap--about $0.15 each). I sampled the keyboard signal with a period of 125 microseconds. The bitrate looks to be about 1000 bps. But the encoding is very interesting.

Press a key, you get a 20 bit stream (first bit always 1, so 19); release it and you get the same code with a couple of bits flipped. Press any key for more than about 100 milliseconds and you get a "repeat" code of 20 bits every 100 milliseconds until the key is released, whereupon you get the 40 bit "release" sequence.

All keys repeat if held down, even the shift keys.

Shift+any printing key modifies the sequence somewhat.

Here are some examples:

Letter 'a':

65c33, 25cb3, 2d4a2

Shift key, pressed and released:

3e200, 1e240, 2d4a2

Same "a" , but held down a bit:

65c33, 2a4ac, 2a4ac, 2a4ac, 2a4ac, 25cb3, 2d4a2

Shift-"a":

3e200, 65c33, 25cb3, 1e240, 2d4a2

Moving the little "joystick" thing produces streams of 60 bit values--I haven't figured those out yet.

So, progress of a sort. I'll get it figured out and pair it with a little 3/4"x2" Maplie mini, either with USB or PS/2 output; I haven't decided.
 
Decided to have another crack at this and have made considerable progress.

Turns out that the protocol is N81 at 1200 bps, so all you need to get started is an MCU with a UART and an IR 38KHz sensor (cheap).

Each key (with an exception for the mouse) sends things two bytes at a time. A "key down" with the high-order bit set pair followed by any "repeat the key that's being held down" pairs, followed by a "key up" pair (same as "key down", but without the high-order bit set. There's also a pair that's sent at the end of a sequence if no keys are up.

The rule for the pairs is that the second byte contains the high-order 5 bits of the first byte complemented, with the low-order 3 bits the same as the first.

So, for the "1" key you get the sequence: D1 29 (key down) 51 A9 (key up) 5D A5 (go to idle state). If the "1" key was held down you'd get the same but with 53 AB periodically sent after the key down code until the key was released and the key up code sent.

Mouse signals (sort of a nipple mouse off to one side) are all 3-byte sequences with no error checks. 3F XX YY with the X-and Y displacements being signed integers repeatedly sent until the mouse stick is released. There are also some colored tabs at the top of the keyboard that send codes in the same manner that the keys operate. All told, there are 98 key/button codes. I have a list if anyone's interested.

Even though this is a rubber-dome keyboard, the build and feel isn't too bad--and it's very compact. My plan is to use either an AVR (A Mega-8 or ATiny2313 has enough functionality) or wimp out and overkill using a STM32F103 "maple mini" board, of which I happen to have a pile to provide PS/2 protocol.

I picked my keyboard up new for $5 from Electronics Goldmine, but I've seen them offered new on eBay as well.
 
Are you planning on selling the IR receiver you design to computer collectors (assuming you can still find quantities of the keyboard for $5)?
 
I'm going to have to try this. If I did it, I'd want to attach this via USB though. But I suppose a ps/2 usb converter would also work.
 
No, I'm not in the business of selling kits. If you needed USB, both the AVR ATMega8 and the STM32F103 boards are USB-capable. I use the Maple Mini board's USB to provide a CDC-ACM interface, so keyboard USB should be easy on that platform. But PS/2 is more useful to me at the time. One of the cheap "blue pill" boards would work just as well. Nothing like a 72MHz 32-bit CPU executing brain-dead code.

Mind you, I'm very slow at this sort of thing, as it's a "when the mood strikes me", so I'll nibble away at the thing.

Electronics Goldmine still has them for $10 but they periodically go on sale.
 
Last edited:
For those who want to tackle this thing themselves, here's the table I worked up:

Code:
uint16_t KeyTranslation[128] =
{
  KEY_UP_ARROW,		//	  80
  KEY_NUM,		//	  81
  KEY_END,		//	  82
  KEY_HOME,		//	  83
  KEY_NULL,		//	  84
  KEY_PAGE_DOWN,	//	  85
  KEY_PAGE_UP,		//	  86
  KEY_DOWN_ARROW,	//	  87
  KEY_NULL,		//	  88
  KEY_PRINT,		//	  89
  KEY_RIGHT_ARROW,	//	  8a
  KEY_INSERT,		//	  8b
  KEY_NULL,		//	  8c
  KEY_NULL,		//	  8d
  KEY_NULL,		//	  8e
  KEY_NULL,		//	  8f
  KEY_GREEN,		//	  90
  KEY_BLACK,		//	  91
  KEY_YELLOW,		//	  92
  KEY_NULL,		//	  93
  KEY_LIGHT_BLUE,	//	  94
  KEY_NULL,		//	  95
  KEY_LEFT_SCREEN,	//	  96
  KEY_DARK_BLUE,	//	  97
  KEY_NULL,		//	  98
  KEY_NULL,		//	  99
  KEY_WHITE,		//	  9a
  KEY_RIGHT_SCREEN,	//	  9b
  KEY_LEFT_ARROW,	//	  9c
  KEY_HOUSE,		//	  9d
  KEY_NULL,		//	  9e
  KEY_DELETE,		//	  9f
  KEY_F4,		//	  a0
  KEY_F3,		//	  a1
  KEY_F2,		//	  a2
  KEY_F1,		//	  a3
  KEY_F8,		//	  a4
  KEY_F7,		//	  a5
  KEY_F6,		//	  a6
  KEY_F5,		//	  a7
  KEY_F12,		//	  a8
  KEY_F11,		//	  a9
  KEY_F10,		//	  aa
  KEY_F9,		//	  ab
  KEY_NULL,		//	  ac
  KEY_BREAK,		//	  ad
  KEY_SCROLL_LOCK,	//	  ae
  KEY_NUM_LOCK,		//	  af
  KEY_NULL,		//	  b0
  KEY_NULL,		//	  b1
  KEY_NULL,		//	  b2
  KEY_NULL,		//	  b3
  KEY_NULL,		//	  b4
  KEY_NULL,		//	  b5
  KEY_NULL,		//	  b6
  KEY_NULL,		//	  b7
  KEY_LARGE_LEFT_BUTTON, //       b8
  KEY_NULL,		//	  b9
  KEY_NULL,		//	  ba
  KEY_NULL,		//	  bb
  KEY_SMALL_LEFT_BUTTON, //  	  bc
  KEY_ESC,		//	  bd
  KEY_NULL,		//	  be
  KEY_NULL,		//	  bf
  KEY_E,		//	  c0
  KEY_W,		//	  c1
  KEY_Q,		//	  c2
  KEY_TAB,		//	  c3
  KEY_U,		//	  c4
  KEY_Y,		//	  c5
  KEY_T,		//	  c6
  KEY_R,		//	  c7
  KEY_OPEN_BRACKET,	//	  c8
  KEY_P,		//	  c9
  KEY_O,		//	  ca
  KEY_I,		//	  cb
  KEY_A,		//	  cc
  KEY_CAPS_LOCK,	//	  cd
  KEY_BACKSLASH,	//	  ce
  KEY_CLOSE_BRACKET,	//	  cf
  KEY_2,		//	  d0
  KEY_1,		//	  d1
  KEY_GRAVE,		//	  d2
  KEY_NULL,		//	  d3
  KEY_6,		//	  d4
  KEY_5,		//	  d5
  KEY_4,		//	  d6
  KEY_3,		//	  d7
  KEY_0,		//	  d8
  KEY_9,		//	  d9
  KEY_8,		//	  da
  KEY_7,		//	  db
  KEY_BACKSPACE,	//	  dc
  KEY_NULL,		//	  dd
  KEY_EQUALS,		//	  de
  KEY_HYPHEN,		//	  df
  KEY_N,		//	  e0
  KEY_B,		//	  e1
  KEY_V,		//	  e2
  KEY_C,		//	  e3
  KEY_FORWARD_SLASH,	//	  e4
  KEY_PERIOD,		//	  e5
  KEY_COMMA,		//	  e6
  KEY_M,		//	  e7
  KEY_NULL,		//	  e8
  KEY_LEFT_CTRL,	//	  e9
  KEY_RIGHT_SHIFT,	//	  ea
  KEY_RED,		//	  eb
  KEY_VIOLET,		//	  ec
  KEY_NULL,		//	  ed
  KEY_SPACE,		//	  ee
  KEY_LEFT_ALT,		//	  ef
  KEY_G,		//	  f0
  KEY_F,		//	  f1
  KEY_D,		//	  f2
  KEY_S,		//	  f3
  KEY_L,		//	  f4
  KEY_K,		//	  f5
  KEY_J,		//	  f6
  KEY_H,		//	  f7
  KEY_ENTER,		//	  f8
  KEY_NULL,		//	  f9
  KEY_APOSTROPHE,	//	  fa
  KEY_SEMICOLON,	//	  fb
  KEY_X,		//	  fc
  KEY_Z,		//	  fd
  KEY_NULL,		//	  fe
  KEY_LEFT_SHIFT	//	  ff
};

The table is exactly 128 entries long--you take either the key-down code with bit 7 set to 0 or the key-up code and retrieve whatever you're translating to (the "KEY_" values, be it USB HID or PS/2 or even XT. Note that there some other special codes as noted above--the real one that will trip you up is the nipple mouse (hex 3f followed by 2 bytes) Other codes are emitted by the keyboard as 2 bytes as described above.

I've decided to use the STM32F103; it has 3 USARTs as well as lots of 5V tolerant GPIO and USB, so one could adapt the keyboard to provide almost any sort of output, including parallel or serial ASCII.
 
Last edited:
I've got one of those keyboards as well. I payed $5 as well I'd not fiddled with it yet. It is great that you have the codes.
I'll need to get more Blue Pills.
Does it have a receiver in it to take control signals, like a AT key board does?
One wonders why the didn't stick with PS2 codes??
Dwight
 
Last edited:
As far as I can tell, communication is one-way. There are no LEDs or other indicators that would indicate that the keyboard can receive anything. That might be a mistaken impression, but to date, I haven't been able to get the keyboard open to inspect the innards. If it could receive as well, I'd expect an on/off switch somewhere.

There's apparently a Windows driver for this thing, but the receiver was integrated into the systems unit, so not a general-purpose thing.
 
Last edited:
I recast the code for the "Blue Pill" cheapies. This is what the receiver looks like now:

5kP5jlv.jpg


I stuck it in a plastic box scavenged from some gizmo:

NckXBqx.jpg


(You can just see the hole in the box for the IR sensor. On this one, I used a VS1838B sensor, of which you can get 10 from China for less than a cup of coffee. If you have the mini-DIN 6 cable scavenged from some dead mouse or keyboard, you can put one of these together in less than a half hour.

I've got three of the iPoint keyboards now, after the Goldmine Electronics special on these ($10). One of these days, I'll get around to doing the USB version, but right now, it doesn't matter to me.
 
idea- use flirc ir receiver software to pair

idea- use flirc ir receiver software to pair

it pairs with the flirc ir usb receiver Streacom Edition ($15 on ebay) which has programming software
Unfortunately the 2 SK-8807 19K1800 require very firm key press (due to age?).
Worse the "x, n, and g" keys register as "x" in the flirc software on both keyboards. There is no "mouse" compatibility with the software.
I will continue to buy ir keyboards such as web tv devices to find one that works because I want a low emf portable solution.
John
 
I have an old LiteOn SK-7100 IR keyboard and have tested it with FLIRC. Here are the problems which I encountered:

1. The FLIRC configurator does not recognize CTRL, Win, or ALT

2. The Z, X, G keys are all recognized as the same key

3. The H & M keys are also recognized as the same key - but when I hold the keyboard at an unusual angle, it works. The down arrow works but the key press cannot be reliably detected every time. I wonder if FLIRC could fix this with a firmware update?

My keyboard was bundled with a receiver, labeled as model SK-7100 / FCC ID GYUSK7100P

The receiver has a lamp which indicates when keys are pressed. It also has lamps for Num Lock / Caps Lock / Scroll Lock.

For the PC connection, the receiver has a classic PS/2 + mouse interface, but there is a newer version available with a USB interface. (That joystick in the upper right corner of the keyboard functions as a mouse. The mouse pointer actually changes speed depending on the joystick distance from center position.)

The guts for most of the IR keyboards on the market appear to be manufactured by the same company, and I suspect that most receivers would work with multiple keyboard models.

On the receiver I see a 12 MHz crystal and a chip # KKMPAA2051

PCB: SILITEK KKPBAAS208 REV 3

SIEMENS SAB C5016-1RP
SILITEK PA87100

On the keyboard (transmitter) I see a 4.9152 MHz crystal and a chip # KKMPAE7100

PCB: Silitek KKPBAAS203

Keyboard IC: 736D - silitek 1.2
 
On impulse (new for $5), I picked up an IBM I-Point IR keyboard:

G15326B.jpg


It takes 4 AA cells and has a rubber pointing device in the corner. I can't find a thing out about this and will probably end up hooking an IR sensor to my logic analyzer to figure the codes out.

The serial number is 768, so there probably weren't many of these produced. IBM part number 19K1800; Model no. SK-8807.

Anyone know anything else about this?

Maybe this will be of use:
http://drivers-01.blogspot.com/2012/12/ibm-sk-8807-19k1800-infrared-ir-keyboard.html
I've not seen one like that. I have the Space Saver with TrackPoint, though. ;)
 
Back
Top