Author Topic: IBM Model M 1394312 Converter DIY Question  (Read 2106 times)

0 Members and 1 Guest are viewing this topic.

Offline shananiki

  • Thread Starter
  • Posts: 3
IBM Model M 1394312 Converter DIY Question
« on: Fri, 07 February 2025, 06:27:00 »
Hey there,

I just got my hands on this IBM Model M. As I am one of the few new breeds of IBM AS400 Developers I was amazed by keyboards with F13-F24.
I'm sure I can convert to USB using a RP2040 Zero or ESP32.

However I'm asking the simple question what kind of female module do I need to buy? It's not standard RJ45 is it?
I don't want to buy random stuff of Aliexpress.

Offline zegonix

  • Posts: 90
Re: IBM Model M 1394312 Converter DIY Question
« Reply #1 on: Fri, 07 February 2025, 07:34:09 »
try it with a smaller number: https://en.wikipedia.org/wiki/Registered_jack
probably 6p6c, or 6p4c

Offline fohat.digs

  • * Elevated Elder
  • Posts: 6533
  • Location: 35°55'N, 83°53'W
  • weird funny old guy
Re: IBM Model M 1394312 Converter DIY Question
« Reply #2 on: Fri, 07 February 2025, 07:42:24 »
These have been working for most of us for years.

https://geekhack.org/index.php?topic=17458.0
"However, even though I was born in the Mesozoic, I do know what anyone who wants to reach out to young people should say: Billionaires took your money. They took your chance to buy a home. They took your chance at a good education. They stole your opportunities. Billionaires took the things you want in life. If you really want those things, you have to take them back.
That's the message. That's the whole message. Say that every day, not just to reach America's frustrated young white men, but people of every age, race, and gender.
Late-stage capitalism is a wealth-concentration engine, focused on vacuuming up every dollar and putting it in as few hands as possible. Republicans are helping that vacuum suck.
How does a tiny fraction of the population get away with this? They do it by dividing the other 99% of Americans against themselves."
- Marc Sumner 2025-05-30

Offline shananiki

  • Thread Starter
  • Posts: 3
Re: IBM Model M 1394312 Converter DIY Question
« Reply #3 on: Fri, 07 February 2025, 09:06:27 »
try it with a smaller number: https://en.wikipedia.org/wiki/Registered_jack
probably 6p6c, or 6p4c
Would a RJ45 female fit? I can just only wire the necessary lines.

These have been working for most of us for years.

https://geekhack.org/index.php?topic=17458.0

I see thanks, but I'd love to use a USB C device. That guide was made before USB C was available, should work with any Atmega though.

Offline zegonix

  • Posts: 90
Re: IBM Model M 1394312 Converter DIY Question
« Reply #4 on: Fri, 07 February 2025, 10:10:38 »
Assuming, that i am right, NO.

The RJ45 is 8Pxx which is wider than the 4Pxx/6Pxx

Offline wjrii

  • Posts: 129
  • Location: Texas
Re: IBM Model M 1394312 Converter DIY Question
« Reply #5 on: Fri, 07 February 2025, 21:59:16 »
Try here: https://sharktastica.co.uk/kb_db_list?search=1394312

Looks like it's a normal RJ-45.  Both the Soarer's and the Hasu can be made with a USB C Pro Micro Atmel 32u4 microcontroller.  I have made three myself, one running Hasu's converter and two running Soarer's.  You can also open up the board and safely stash the original cable and just thread a sufficiently long USB cord through the existing opening and mount the converter inside, or wire a USB-C daughterboard with the right configuration.

Offline shananiki

  • Thread Starter
  • Posts: 3
Re: IBM Model M 1394312 Converter DIY Question
« Reply #6 on: Mon, 24 February 2025, 23:35:33 »
I know my soldering skills leave much room for improvement.
I got it to work with a ESP32-S2.

However there are a few keys missing. Does anybody have experience with this?

These are the keys I have mapped so far (I have a german qwertz layout)

Code: [Select]
SCANCODE_TO_HID = {
    0x1C: Keycode.A, 0x32: Keycode.B, 0x21: Keycode.C, 0x23: Keycode.D, 0x24: Keycode.E,
    0x2B: Keycode.F, 0x34: Keycode.G, 0x33: Keycode.H, 0x43: Keycode.I, 0x3B: Keycode.J,
    0x42: Keycode.K, 0x4B: Keycode.L, 0x3A: Keycode.M, 0x31: Keycode.N, 0x44: Keycode.O,
    0x4D: Keycode.P, 0x15: Keycode.Q, 0x2D: Keycode.R, 0x1B: Keycode.S, 0x2C: Keycode.T,
    0x3C: Keycode.U, 0x2A: Keycode.V, 0x1D: Keycode.W, 0x22: Keycode.X, 0x35: Keycode.Y,
    0x1A: Keycode.Z, 0x45: Keycode.ZERO, 0x16: Keycode.ONE, 0x1E: Keycode.TWO,
    0x26: Keycode.THREE, 0x25: Keycode.FOUR, 0x2E: Keycode.FIVE, 0x36: Keycode.SIX,
    0x3D: Keycode.SEVEN, 0x3E: Keycode.EIGHT, 0x46: Keycode.NINE, 0x0E: Keycode.GRAVE_ACCENT,
    0x4E: Keycode.MINUS, 0x55: Keycode.EQUALS, 0x5C: Keycode.BACKSLASH, 0x66: Keycode.BACKSPACE,
    0x29: Keycode.SPACE, 0x0D: Keycode.TAB, 0x14: Keycode.CAPS_LOCK, 0x12: Keycode.SHIFT,
    0x11: Keycode.CONTROL, 0x8B: Keycode.GUI, 0x19: Keycode.ALT, 0x59: Keycode.SHIFT,
    0x58: Keycode.CONTROL, 0x8C: Keycode.GUI, 0x39: Keycode.ALT, 0x8D: Keycode.APPLICATION,
    0x5A: Keycode.ENTER, 0x08: Keycode.ESCAPE, 0x07: Keycode.F1, 0x0F: Keycode.F2,
    0x17: Keycode.F3, 0x1F: Keycode.F4, 0x27: Keycode.F5, 0x2F: Keycode.F6,
    0x37: Keycode.F7, 0x3F: Keycode.F8, 0x47: Keycode.F9, 0x4F: Keycode.F10,
    0x56: Keycode.F11, 0x5E: Keycode.F12, 0x57: Keycode.PRINT_SCREEN, 0x5F: Keycode.SCROLL_LOCK,
    0x62: Keycode.PAUSE, 0x54: Keycode.LEFT_BRACKET, 0x5B: Keycode.RIGHT_BRACKET,
    0x4C: Keycode.SEMICOLON, 0x52: Keycode.QUOTE, 0x41: Keycode.COMMA, 0x49: Keycode.PERIOD,
    0x4A: Keycode.FORWARD_SLASH, 0x67: Keycode.INSERT, 0x6E: Keycode.HOME, 0x6F: Keycode.PAGE_UP,
    0x64: Keycode.DELETE, 0x65: Keycode.END, 0x6D: Keycode.PAGE_DOWN, 0x63: Keycode.UP_ARROW,
    0x61: Keycode.LEFT_ARROW, 0x60: Keycode.DOWN_ARROW, 0x6A: Keycode.RIGHT_ARROW,
    0x76: Keycode.KEYPAD_NUMLOCK, 0x4A: Keycode.KEYPAD_FORWARD_SLASH, 0x7E: Keycode.KEYPAD_ASTERISK,
    0x4E: Keycode.KEYPAD_MINUS, 0x7C: Keycode.KEYPAD_PLUS, 0x79: Keycode.KEYPAD_ENTER,
    0x71: Keycode.KEYPAD_PERIOD, 0x70: Keycode.KEYPAD_ZERO, 0x69: Keycode.KEYPAD_ONE,
    0x72: Keycode.KEYPAD_TWO, 0x7A: Keycode.KEYPAD_THREE, 0x6B: Keycode.KEYPAD_FOUR,
    0x73: Keycode.KEYPAD_FIVE, 0x74: Keycode.KEYPAD_SIX, 0x6C: Keycode.KEYPAD_SEVEN,
    0x75: Keycode.KEYPAD_EIGHT, 0x7D: Keycode.KEYPAD_NINE
}