Author Topic: IBM Model M 1394312 Converter DIY Question  (Read 2215 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: 93
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
"Starting in 2011, the deficits again started to shrink. During Obama’s term  the deficit was reduced by $900 Billion  before finally in 2015 the GOP managed to wrangle a “reconciliation” bill out of Obama where he again cut corporate taxes, as well as made permanent some of George W. Bush’s original tax cuts. This is the year everything reversed. Before this, under Clinton, Bush and Obama the deficit in almost every year was gradually decreasing. The balance we had of taxes and the economy was bringing the deficit down, the money coming in was slowly catching up with the money going out until 2015. Trump’s subsequent tax cut has continued the new trend even after the rest of Bush’s cuts have since expired. Obama had an average GDP of 2.3%, with 11.6 million jobs created and unemployment peaking at 10% in 2009, then falling to 4.3% in 2016. If we had continued on that downward deficit track, we would have again reached balance and another surplus in 2017-2018.
– Frank V Walton 2025-07-01

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