Author Topic: Restoring IBM 029 Punch Machine Keyboard and Modding for USB  (Read 3278 times)

0 Members and 1 Guest are viewing this topic.

Offline HoffmanMyster

  • HOFF, smol MAN OF MYSTERY
  • * Senior Moderator
  • Thread Starter
  • Posts: 11469
  • Location: WI
Restoring IBM 029 Punch Machine Keyboard and Modding for USB
« on: Thu, 06 June 2013, 23:04:08 »
Okay guys, I need help.  Lots of help. 

I acquired an old IBM punch card machine, a model 029.  It's been sitting in a driveway for the past two years so every key was stuck and would not move (also it has a mechanical multi-press-stopping mechanism for the alpha keys, but I didn't realize that at the time).  I decided I wanted to take it apart, see what it looked like, and hopefully fix it up (get the keys moving again at the very least) and see how viable it would be to try to convert this thing for USB input.

As soon as I opened it up I knew it would be a ...unique... task.  The keyboard is basically a cross between a typewriter and a keyboard.  It does not use a matrix design that we're all so used to.  It uses a "chord" (?) design, whereby pressing a button activates a combination of 14 switches.  Some keys only activate one switch, whereas others activate two or three.  Due to this unique design, I'm having difficulty imagining how to adapt the "regular" teensy/other USB controller designs.

The ideal setup would be to have a controller that scans for input and can have 22 inputs from switches (the 14 from the "chord" keys plus 8 regular push switches) and I would tell it "if switch 2 + 4 are activated, keypress 'G'" or something of that sort, for every switch.  I understand that this wording might be slightly different from how it's coded, but that's how I want it to be.  :)

Anyway, if anybody has any insight into this at all I would greatly appreciate it.  I've been working on the project for a few weeks on and off, finally got the thing physically put back together (a task in itself that I'm proud of) and am at a point where the next step is to get a controller worked out.  If it's not possible it won't devastate me; it was a wildly fun project and I'm satisfied to even have the keys pressing right now.  But I think it'd be super awesome to have it working.  :D

Pictures just for fun: (not necessarily required in order to offer help at this point, but what the heck)
[these are only a few of the pictures I've uploaded - trying to keep the post clean and short; additional photos available in the imgur album]

Original condition:


Back view showing the 14 switches  (on the brown boards) that are activated when a key is pressed:


Shot of part of the keyboard mechanism (for fun):

Offline xavierblak

  • Posts: 202
  • Location: NY
Re: Restoring IBM 029 Punch Machine Keyboard and Modding for USB
« Reply #1 on: Fri, 07 June 2013, 12:56:49 »
Very unique keyboard. I can't tell from the first shot is it in a case or is it just mounted to a panel? Either way nice find.

I'm not 100% sure I follow how the keys activate but if I understand it seems like simplest way to convert key-presses to a character would be to map each of the 14 switches to a bit and then look up that value in a list of characters.

So for example:
Button A = 00000000000001 = 1 = 'A'
Button B = 00000000000010 = 2 = 'B'
Button C = 00000000000011 = 3 = 'C'
....
Button Z = 00001000010000 = 528 = 'Z'

In the examples above each switch that the button trigger is mapped to a digit and then get gets converted into a value which would be mapped to the character.

Hope this make sense.

Offline HoffmanMyster

  • HOFF, smol MAN OF MYSTERY
  • * Senior Moderator
  • Thread Starter
  • Posts: 11469
  • Location: WI
Re: Restoring IBM 029 Punch Machine Keyboard and Modding for USB
« Reply #2 on: Fri, 07 June 2013, 14:45:14 »
Very unique keyboard. I can't tell from the first shot is it in a case or is it just mounted to a panel? Either way nice find.

I'm not 100% sure I follow how the keys activate but if I understand it seems like simplest way to convert key-presses to a character would be to map each of the 14 switches to a bit and then look up that value in a list of characters.

So for example:
Button A = 00000000000001 = 1 = 'A'
Button B = 00000000000010 = 2 = 'B'
Button C = 00000000000011 = 3 = 'C'
....
Button Z = 00001000010000 = 528 = 'Z'

In the examples above each switch that the button trigger is mapped to a digit and then get gets converted into a value which would be mapped to the character.

Hope this make sense.

It's mounted to a panel/enclosure that is mounted to the "desk" of the machine.


Your example seems to make a good amount of sense.  I'm not entirely sure how to go about programming it, but that's not my strongest skill.  I would hopefully be able to piece something together.
As for a better understanding of how the keys activate, I would love to explain it in better detail but everything is hidden behind the "wall" of 'bail' rod things so taking pictures is difficult, and that would be the best way.  I will try my best though.  :)  Honestly, in order for me to understand the mechanics of it I had to read 2 patents.  This patent is not for this exact keyboard, but has applicable mechanics.  Please do not feel obligated to read this.  It's really interesting, and helps explain the non-repeat mechanism.
If you did read the patent, if you look at where those 'bail's (#27) are that are mentioned in the patent, each of those has a metal piece attached to it, that moves with the bail.  That metal piece is what makes contact with a stationary metal piece and closes the circuit.  Each keyswitch lever has a unique combination of these bails that is moved when the key is pressed.  I hope that helps a bit.

I understand the mechanics are difficult to explain via text online, but I'm hoping that I can still be helped despite this.  Since the main question surrounds having (essentially) 22 separate buttons that are pressed in different combinations, that should be the main information needed.  Not trying to ignore the mechanics, just saying.  If you'd like me to take a video or explain the mechanics further I would be very happy to.  I'm fascinated by it.

Thanks for the input, xavierblak, I really appreciate it.  Hopefully I can figure out some way to implement that with a controller.

Offline xavierblak

  • Posts: 202
  • Location: NY
Re: Restoring IBM 029 Punch Machine Keyboard and Modding for USB
« Reply #3 on: Mon, 10 June 2013, 11:07:30 »
Cool. I look forward to hopefully seeing this up and running.

One thing that I realized later. Is this design by it's nature will have problems with two keys pressed at the same time, which might not be a problem depending on how stiff the keys are. Just don't expect to do any gaming on it. :)

That's why all the modifiers are separate keys. So you can still activate something like Shift+T and have it register both keys.

If you need any programming help with this let me know. I haven't done any keyboard specific work with a teensy yet but I have one laying around.

Offline HoffmanMyster

  • HOFF, smol MAN OF MYSTERY
  • * Senior Moderator
  • Thread Starter
  • Posts: 11469
  • Location: WI
Re: Restoring IBM 029 Punch Machine Keyboard and Modding for USB
« Reply #4 on: Mon, 10 June 2013, 12:06:13 »
One thing that I realized later. Is this design by it's nature will have problems with two keys pressed at the same time, which might not be a problem depending on how stiff the keys are. Just don't expect to do any gaming on it. :)

The mechanics of the keyboard prevent pushing multiple alpha keys at the same time, so I'm fully prepared for that.  :D  Just typing for this one.

Thanks for the offer for help!  I will get started with the attempted programming soon and probably run into some issues that will need addressing.