Image Map Image Map
Page 2 of 2 FirstFirst 12
Results 11 to 17 of 17

Thread: IBM iPoint keyboard--anyone have any ideas?

  1. #11
    Join Date
    Sep 2003
    Blog Entries


    Are you planning on selling the IR receiver you design to computer collectors (assuming you can still find quantities of the keyboard for $5)?
    What I collect: 68K/Early PPC Mac, DOS/Win 3.1 era machines, Amiga/ST, C64/128
    Nubus/ISA/VLB/MCA/EISA cards of all types
    Boxed apps and games for the above systems
    Analog video capture cards/software and complete systems

  2. #12


    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.
    It is a mistake to think you can solve any major problems just with potatoes.

  3. #13
    Join Date
    Jan 2007
    Pacific Northwest, USA
    Blog Entries


    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 by Chuck(G); October 16th, 2018 at 08:17 PM.

  4. #14
    Join Date
    Jan 2007
    Pacific Northwest, USA
    Blog Entries


    For those who want to tackle this thing themselves, here's the table I worked up:

    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 by Chuck(G); October 17th, 2018 at 09:14 PM.

  5. #15


    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??
    Last edited by Dwight Elvey; October 17th, 2018 at 08:31 PM.

  6. #16
    Join Date
    Jan 2007
    Pacific Northwest, USA
    Blog Entries


    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 by Chuck(G); October 17th, 2018 at 08:49 PM.

  7. #17
    Join Date
    Jan 2007
    Pacific Northwest, USA
    Blog Entries


    I recast the code for the "Blue Pill" cheapies. This is what the receiver looks like now:

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

    (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.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts