Converting an IBM Pingmaster

User avatar
just_add_coffee

11 Mar 2017, 11:28

I haven't found great instructions for converting an IBM Pingmaster (in my case, PN 6113442) to programmable USB.

This person has great pictures but few details of converting PN 6341739. And they've since deleted their Reddit account, making harassing them with questions and hand-holding impossible.

Geekhack's dorkvader savagely butchered made a really nice Pingmaster Kishaver, but I want muh buttons!!1

Other sources seem to indicate that I'll definitely need either a Teensy 2.0 or a Pro Micro and Linux (there's gotta be a way to do this on Windows, right?).

So armed with a positive attitude and a good heart, slightly better-than-average good looks, a below average soldering iron and the melty stuff that goes with it, a PayPal account, scrap USB cables, a full bottle of antacid, and the latest versions of 4 different text editors (VS Code is not bad!) ... what do I gotta do?

Thank you for your time!

User avatar
Wodan
ISO Advocate

11 Mar 2017, 12:46

https://www.reddit.com/r/MechanicalKeyb ... _usb_with/

Just google for "soarer pingmaster"

One of the most simple conversion jobs eva

User avatar
just_add_coffee

11 Mar 2017, 17:39

Wodan wrote: https://www.reddit.com/r/MechanicalKeyb ... _usb_with/

Just google for "soarer pingmaster"

One of the most simple conversion jobs eva
It's not simple if you've never done anything like it before.

But thank you for "soarer pingmaster." That returns a lot more stuff than "convert pingmaster," and hopefully that stuff will one day make sense.

If anyone is willing to walk an absolute beginner through this, I'm willing to pay $$$ (or £££, €€€, ¥¥¥, etc.).

User avatar
Norman_

11 Mar 2017, 19:31

Wodan wrote: https://www.reddit.com/r/MechanicalKeyb ... _usb_with/

Just google for "soarer pingmaster"

One of the most simple conversion jobs eva
Yea, but can you convert it externally? I don't want to butcher the poor thing

User avatar
just_add_coffee

11 Mar 2017, 20:53

Norman_ wrote: Yea, but can you convert it externally? I don't want to butcher the poor thing
Pretty sure that the answer to that is NO.

Besides, it's not really butchering so much as it's ... ummmm ... "enhancing." Like getting braces or having wisdom teeth removed.

Now I just have to get accepted into Dental School. :D

User avatar
Ratfink

11 Mar 2017, 22:07

Of course you can convert it externally. The one I received in last year's Secret Santa has an external converter. It's basically just a DE-9 connector wired to a Teensy, all stuffed into an enclosure. Keyboard goes in one side, USB out the other.

User avatar
Norman_

12 Mar 2017, 04:24

Ratfink wrote: Of course you can convert it externally. The one I received in last year's Secret Santa has an external converter. It's basically just a DE-9 connector wired to a Teensy, all stuffed into an enclosure. Keyboard goes in one side, USB out the other.
AHA, i found what i've been looking for for weeks: The pinout!

https://github.com/tmk/tmk_keyboard/blo ... /README.md

I'll be making my converter tomorrow :mrgreen:

User avatar
Wodan
ISO Advocate

12 Mar 2017, 11:11

Oh damn my bad, seems like I was leading you in the wrong direction.

For the pingmaster you use a HASU converter and _not_ the soarer...

User avatar
just_add_coffee

13 Mar 2017, 07:30

Wodan wrote: Oh damn my bad, seems like I was leading you in the wrong direction.

For the pingmaster you use a HASU converter and _not_ the soarer...
I apologize if this is a dumb question ... but why wouldn't installing a Teensy card work?

User avatar
Wodan
ISO Advocate

13 Mar 2017, 08:00

Installing a Teensy or a ProMicro is just the first step. They both are basically Atmel microcontroller on breakout boards.

Without the proper firmware, they can't convert anything though. So you wire the microcontrollers up and THEN flash a firmware onto the controllers. One of the most popular converter firmwares is the Soarer Converter or the Soarer Controller firmware. In this particular case, for this special keyboard, we need a HASU firmware. Both are named after their lead developers ;)

In this case you can also go with a ProMicro controller that is essentially less than 1/3 the price of a ProMicro ;)

User avatar
just_add_coffee

22 Mar 2017, 18:06

Image

Image

Can someone tell me what to do next?

User avatar
snoopy

22 Mar 2017, 20:19

Pingmaster is an awesome name for a keyboard. :lol:

User avatar
Wingklip

03 Apr 2017, 00:34

Could you find the DB 9 PINOUT?
Also usually from there I would solder the DB9 jack to it. I've only done PS/2 though. How many pins are in the DB9 cable that are actually used? If it's 4 that could entail a direct conversion with the soldering of PS/2

User avatar
just_add_coffee

06 Apr 2017, 20:19

Wingklip wrote: Could you find the DB 9 PINOUT?
Also usually from there I would solder the DB9 jack to it. I've only done PS/2 though. How many pins are in the DB9 cable that are actually used? If it's 4 that could entail a direct conversion with the soldering of PS/2
Here's what I've got so far:

Image
Image
Image
Image
Image
Image

Now, there's no longer a Ports heading in the Device Manager, and there's 4 items (really 2) under Keyboards. I believe one of those is the Pingmaster, though I can't tell for sure.

But nothing happens when I try to type on it.

So close!

(I think)

User avatar
just_add_coffee

06 Apr 2017, 23:15

Welp. Still nothing happens when the keys are pressed. And I can't seem to get to get the Pro-Micro to go into the bootloader by touching GND & RST. Fully expecting the worst, I've ordered another Pro-Micro.

User avatar
Wingklip

07 Apr 2017, 06:10

just_add_coffee wrote: Welp. Still nothing happens when the keys are pressed. And I can't seem to get to get the Pro-Micro to go into the bootloader by touching GND & RST. Fully expecting the worst, I've ordered another Pro-Micro.
Use arduino builder, it seems to work well for me :) you just need to manually move the USB HID driver file to the directory the exe file is in for it to work

There was a thing where you could reset it if you just pressed the program button first so it starts compiling before the upload and then release the ground and reset pins.

It seems that you do have the converter installed on it already, so if you have a spare ps2 port or cable lying around you could solder it up and see if it is actually working. Also, why are there 5 lines connecting to the pro micro? As I recall, you only needed four because the ground terminal is common, and even then most keyboards only had 4 pins for the ps2 like protocols. Might want to look at the wiring, because for my wiring I have the usb port pointing right; 3 connections on the top row and one connection on the bottom row. That's for a USB/PS2 converter though, but does the pinout of the DB9 include a clock, data, ground, and live wire, only 4? If so, the pinouts should be identical on the pro micro.

GLhf xd

__red__

07 Apr 2017, 16:23

Hey just_add_coffee, I just got one of these keyboards delivered last night. I'll see if I can get time to do the conversion this afternoon and document it for you.

__red__

08 Apr 2017, 04:28

Hey coffee, I have it working minus a few mis-mapped keys in tmk. I'll post my firmware when I'm done recompiling.

__red__

08 Apr 2017, 05:09

Here's what I compiled up. It's the default keymap for the 102 key alps 4704. PS. The keyboard buzzer beeps on every keypress ;-)

https://gist.github.com/redvers/281c1f3 ... b4c652b256


So the keys don't directly match what's on the keys but it's enough that you should be able to get it usable until you decide how you want to arrange it. I'm actually typing on it right now.

beep beep beep beeeeep etc etc etc...


Red

Here's how I compiled it:

Code: Select all

root@dasbeez:~/tmk_keyboard/converter/ibm4704_usb# make -f Makefile.rev1 KEYMAP=alps102key

-------- begin --------
avr-gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Size before:
   text    data     bss     dec     hex filename
  19858      50     202   20110    4e8e ibm4704_usb_rev1.elf


Size after:
   text    data     bss     dec     hex filename
  19858      50     202   20110    4e8e ibm4704_usb_rev1.elf

-------- end --------

root@dasbeez:~/tmk_keyboard/converter/ibm4704_usb# ls -lAt | head
total 2040
drwxr-xr-x 2 root root   4096 Apr  7 22:54 .dep
-rw-r--r-- 1 root root  56027 Apr  7 22:54 ibm4704_usb_rev1.hex

__red__

08 Apr 2017, 05:26

... and as for hardware connections to these 4704s I use female <-> male 0.1" jumpers so I can switch them around as required. Eventually I'll move to DB9, but today isn't the day. Apologies for the crappy photo, but you get the idea...
WIN_20170407_23_23_30_Pro (2).jpg
WIN_20170407_23_23_30_Pro (2).jpg (114.97 KiB) Viewed 5580 times

User avatar
just_add_coffee

11 Apr 2017, 01:06

Hey wingklip and _red_. I've been in and out the last couple of days, so I apologize for the late reply.

I did start getting output (sometimes even the expected output!) with this ...
Image
... after using the installing the Soarer's firmware and using the Teensy gui to flash a .hex file on it.

I believe my soldering wasn't good enough, and so I've removed the wires from the controller footprint and plan to resolder it back in.

Some of the problems that I've had with this project is that I have NEVER "hacked" electronics, don't really know a resister from a diode (I do think I can point out a capacitor, however), didn't know which of the chips here constituted the "controller," had to google "DB 9 PINOUT" and didn't understand how this was helpful, am not a Linux user, etc., etc.

Now that I understand something slightly more than "nothing," I realize that there are at least two ways to convert this keyboard to USB. And, if I understand things correctly, those ways can be put into either of two categories: 1) Replacing the original controller (a Soarer's Controller), 2) Leaving the original controller in place (a Soarer's or Hasu Converter).

I've ordered two more of these keyboards in order to become familiar with #2. Because I'm gonna learn this if it fucking kills me.

Sidenote: Would it be possible to replace the speaker with a vibration motor? Haptic feedback on the keyboard? :D

User avatar
Wingklip

11 Apr 2017, 01:34

just_add_coffee wrote: Hey wingklip and _red_. I've been in and out the last couple of days, so I apologize for the late reply.

I did start getting output (sometimes even the expected output!) with this ...
Image
... after using the installing the Soarer's firmware and using the Teensy gui to flash a .hex file on it.

I believe my soldering wasn't good enough, and so I've removed the wires from the controller footprint and plan to resolder it back in.

Some of the problems that I've had with this project is that I have NEVER "hacked" electronics, don't really know a resister from a diode (I do think I can point out a capacitor, however), didn't know which of the chips here constituted the "controller," had to google "DB 9 PINOUT" and didn't understand how this was helpful, am not a Linux user, etc., etc.

Now that I understand something slightly more than "nothing," I realize that there are at least two ways to convert this keyboard to USB. And, if I understand things correctly, those ways can be put into either of two categories: 1) Replacing the original controller (a Soarer's Controller), 2) Leaving the original controller in place (a Soarer's or Hasu Converter).

I've ordered two more of these keyboards in order to become familiar with #2. Because I'm gonna learn this if it fucking kills me.

Sidenote: Would it be possible to replace the speaker with a vibration motor? Haptic feedback on the keyboard? :D
I mean, if you just hook up a resistor and a micro motor onto the leads where the speaker was, it should work more or less.

On the main topic though, I thought Soarer's converter was never meant to act as a controller itself, but as a secondary bypass to convert the signal. There should be a PINOUT somewhere for the DB 9 port. At your local RadioShack or Jaycar if you're Australian you should be able to find a port or two of that exact size, I know my IBM 3178 had a DB 25 or DB 15 port which I found on eBay for next to nothing lol

__red__

11 Apr 2017, 03:10

... are you re-implementing the sensor matrix? You decided to put the 'hard' in hardware :-P

The converter only needs 4 wires. Power, Ground, Signal, Clock and you don't even need to open up the keyboard.

But since you're new to this stuff and you appear to have de-soldered the original IC you're committed like the pig in a bacon-factory. Work this one to ground my friend :-) We'll help any way we can.

User avatar
just_add_coffee

11 Apr 2017, 05:47

__red__ wrote:
The converter only needs 4 wires. Power, Ground, Signal, Clock and you don't even need to open up the keyboard.
Which happen to be the red, white, black, and yellow wires depicted here ...
Image
... amirite?

Connect those to the Teensy2.0 ... Power->VCC, Ground->GND, (guessing now) Clock->PB1, and Signal->PB0Image

If that's correct, do I still flash Soarer_at2usb_v1.12_atmega32u4.hex and then whatever layout .hex I'm using? Or is the process different?

But since you're new to this stuff and you appear to have de-soldered the original IC you're committed like the pig in a bacon-factory. Work this one to ground my friend :-) We'll help any way we can.
You had me at "bacon."

Thank you!

__red__

11 Apr 2017, 07:24

If you're replicating what I did you want to use PD0 and PD1 and flash the .hex file I posted above. It's the tmk firmware.

Code: Select all

DSUB-9
-------------
\ N 2 3 4 5 /
 \ N N N N /
  ---------
2   GND
3   VCC 5V
4   DATA
5   CLOCK
N   No connection/No pin.


Supply power with VCC and GND.
Connect CLOCK to PD1 and DATA to PD0. You can change pin with config.h.
Optionally you may need pull-up register. 1KOhm probably work.

https://github.com/tmk/tmk_keyboard/blo ... /README.md

You can use a continuity meter of DMM to map the pins on the plug to the headers on the PCB if you want to mount that puppy internally.

I'm using a teensy 2.0.

User avatar
just_add_coffee

11 Apr 2017, 18:44

__red__ wrote: If you're replicating what I did you want to use PD0 and PD1 and flash the .hex file I posted above. It's the tmk firmware.

Code: Select all

DSUB-9
-------------
\ N 2 3 4 5 /
 \ N N N N /
  ---------
2   GND
3   VCC 5V
4   DATA
5   CLOCK
N   No connection/No pin.


Supply power with VCC and GND.
Connect CLOCK to PD1 and DATA to PD0. You can change pin with config.h.
Optionally you may need pull-up register. 1KOhm probably work.

https://github.com/tmk/tmk_keyboard/blo ... /README.md

You can use a continuity meter of DMM to map the pins on the plug to the headers on the PCB if you want to mount that puppy internally.

I'm using a teensy 2.0.
Dumb questions time:

Are "PB1" and "PD0" abbreviations? What meaning are they supposed to convey?

And "DMM" is "digital multimeter," correct?

And ... ummm ... "pullup register." Clueless on that 'un.

__red__

12 Apr 2017, 06:51

just_add_coffee wrote: Are "PB1" and "PD0" abbreviations? What meaning are they supposed to convey?
PD0 and PD1 are labelled on your device. They're different pins to the ones you're currently using.
And "DMM" is "digital multimeter," correct?
Yes, in continuity mode. IE, if the wires connect... Beeeeeeeeep.
And ... ummm ... "pullup register." Clueless on that 'un.
[/quote]

Ignore that unless we have an issue. Think of a 'pullup' resistor as a way to set a "default" for a pin which is set to high impedance (think disconnected).

User avatar
Wingklip

12 Apr 2017, 11:46

Coffee what are you doing stahp staaahhhhhhhhhhhhhhhh

Put the case back on that young keyboard and do a proper db9 port to the converter. I'm like 106% sure that soarer's converter is not a controller. Even tmk I think is not a controller.

__red__

12 Apr 2017, 22:59

Image

... That would be my 4 year old daughter learning how to do thru-hole soldering at SkyDogCon.

Welcome to hardware - it's fun!

User avatar
Mr.Nobody

12 Apr 2017, 23:33

@op
I love your writing style man!

Post Reply

Return to “Workshop”