Author Topic: IBM Model M 1394312 Converter DIY Question  (Read 1687 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: 74
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: 6526
  • 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
The reason Trump picked JD Vance as his running mate over a field of other MAGA genuflectors was Vance’s vigor in licking his boots.

“When we got to know each other, he liked me, maybe more than anybody else liked me,” Trump told Fox News’ Jesse Watters last summer.

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: 74
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: 128
  • 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
}