Author Topic: IBM Model M 1394312 Converter DIY Question  (Read 1902 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: 85
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: 6527
  • 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
"If one really wishes to know how justice is administered in a country, one does not question the policemen, the lawyers, the judges, or the protected members of the middle class.
One goes to the unprotected — those, precisely, who need the law’s protection most! — and listens to their testimony."
- James Baldwin - No Name in the Street

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: 85
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
}