Giter Club home page Giter Club logo

model-m-type-c's Introduction

Model M Type C

This is a project with the simple goal of recreating the old IBM Model M keyboard controller with modern technologies in mind.

Board Render

Motivation

Although the IBM Model M is perhaps the most well-known and popular of old keyboards, it isn't equipped with some modern ameneties we have grown used to enjoying. Key features that the Model M lacks are Windows and Media keys(or, broader, firmware-level repogramability), as well as a hotswappable connection with a modern interface. This controller is designed to bring 21st century features to a 20th century keyboard.

Goals

  • Native USB C
  • Hotswappable
  • Fully configurable with QMK compatibility
  • Less power draw
  • Complete reversability

Usage

Note: If your Model M has two ribbon cables with a 16-12 split rather than the three connectors with 16-8-4 split, see this issue.

  1. Print the board either using a cheap foreign service such as JLCPBC for around $6 + shipping, or a domestic service such as OSH Park for around $35. Someone also seems to be selling a PCB for this on eBay, which is totally a scam for $47.95. Does make me feel flattered, though.
  2. Order the components- part list from Digikey. USB-C port needs to be bought elsewhere, I recommend here. $15 total for components. If your LEDs connect via a ribbon, get this instead of the JST 4 pin connector. I used this cable as a riser cable to connect the controller's USB C port to the side of the keyboard. Unfortunately, due to size conflicts, this cannot be done without a riser cable if you want the external usb c cable to be detachable. This brings total component cost to $25 without shipping.
  3. Put it together. It's possible to solder these SMD components manually with a soldering iron, but if you are able to find a hot air gun or a reflow oven, it'll be significantly easier. Reference the visual BOM to see what goes where.
  4. 3D print the USB-C cable dock. You can mount this on top of the board for it to look near-native. Attach the riser cable to the dock with some hot glue or epoxy.
  5. Connect the ribbon cables and LED wires, and mount the PCB in the same way the old PCB was mounted. Attach the USB-C dock on top of that.
  6. Install firmware.

Firmware

This board is fully compatible with QMK. This is a default QMK configuration, so all you need to do is run this from your QMK directory when you are ready:

make ashpil/modelm_usbc:default:flash

Check here for details.

Alternatively you can use the Vial firmware. Setup is analogous to QMK, clone the Vial repo and run:

make ashpil/modelm_usbc:vial:flash

Other

If you have any problems/comments, or find anything that could be improved, please submit issue or a pull request!

model-m-type-c's People

Contributors

ashpil avatar gerritplehn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

model-m-type-c's Issues

IBM Model M Keyboard Part #1391401 Incompatible

My IBM Model M uses a 12-pin J3 connector instead of the 8-pin connector. The USB C controller PCB should combine the J3 and J2 headers. I have uploaded an image of my current IBM PS/2 controller PCB. https://imgur.com/a/fwaWYjc

Using the existing USB-C PCB, it might be possible to solve this issue with an 12-pin connector and wire lines to the 4-pin J3 connector.

No device present?

How did you debug the board once it was soldered together? I am getting the following error below.

* The firmware size is fine - 14128/122880 (11%, 108752 bytes free)
dfu-programmer: no device present.
ERROR: Bootloader not found. Trying again in 5s.
dfu-programmer: no device present.

SSK?

has this mod been successful on a SSK?

Strange glitch in the README

At https://github.com/ashpil/Model-M-Type-C there is the following text: "Note: If you have the Model M #1391401 (tenkeyless), see this issue."

This raised an alarm in my mind. I have a 1391401 (made in 1988 and it is absolutely not tenkeyless. There are other tenkeyless variants of the M, you can find them if you look for "Space Saver Keyboard" in the variants list at the Wikipedia entry, but no M with that part number has ever been an SSK.

Then I read the issue, and it never mentions the 1391401 or the tenkeyless layout. It's about dealing with the later Lexmark membranes with a 16-12 connectors. I opened up my 1391401 and verified that it has the 16-8-4 connectors your board is designed for.

I suppose it is just barely possible that later manufacturing revisions 1391401 could have 16-12 connectors, but you can avoid the whole issue by not mentioning the 1391401 at all. Suggested replacement text:

"If your M has two ribbon cables with a 16-12 split rather than the three connectors with 16-8-4 split, see the following issue"

Unused Pins Breakout

Would it be possible to break out the remaining pins to headers on the board?

Specifically my idea is that it could be paired with a Raspberry Pi Zero W board, and along with normal keyboard mode, the keyboard could also operate as a portable computer, and allow for complex macroing beyond what QMK allows (event based keyboard actions, etc). Also of course adding ws2812b LEDs in place of the standard Num./Caps/Scroll lock LEDs, and possibly adding backlight to the whole keyboard.

Multiple keys typed

Using the default firmware, typing the key 'm' will print 'nm'. The 'enter' key will print a space and newline. Just wondering if you encountered this type of issue before?

Add bluetooth support

Adding usb-c support is great, but... why not add bluetooth support as well?

It would be necessary to add a button to turn on and another to connect. In addition to the usb to recharge or use.

I have no knowledge, but I think it would be a great improvement although I think it will require a lot of work.

Thanks,

Broken Link: Digikey Partlist

Issue:
Digikey parts list in README.md is not displaying the full part list.

Steps to reproduce:
Visit https://www.digikey.com/short/p00t8f (link from README)

A message is displayed " Sorry, no backorders allowed. " so not clear if this is due to a stock issue or if they no longer carry these parts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.