Skip to content

Commit

Permalink
Putting all IBM Model M projects under one folder
Browse files Browse the repository at this point in the history
As discussed in qmk#12370:
The maintainers of several Model M replacement
controller projects agreed to cosolidate them
under one common folder.
  • Loading branch information
nuess0r committed May 17, 2023
1 parent 905da58 commit 9a7cf62
Show file tree
Hide file tree
Showing 55 changed files with 97 additions and 74 deletions.
16 changes: 0 additions & 16 deletions keyboards/handwired/ibm122m/readme.md

This file was deleted.

2 changes: 1 addition & 1 deletion keyboards/lxxt/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@

#pragma once

#define WS2812_PIO_USE_PIO1
#define WS2812_PIO_USE_PIO1
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"keyboard_name": "IBM Model M 101/102",
"manufacturer": "ashpil",
"url": "https://github.com/ashpil/qmk_firmware/tree/master/keyboards/ashpil/modelm_usbc",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/ashpil_usbc",
"maintainer": "ashpil",
"usb": {
"vid": "0xFEED",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ This is a configuration of QMK intended to be used with the [USB C Model M alt c

Make example for this keyboard (after setting up your build environment):

make ashpil/modelm_usbc:default
make modelm/ashpil_usbc:default

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"keyboard_name": "IBM Model M 122 key",
"manufacturer": "IBM",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/ibm122m",
"maintainer": "qmk",
"usb": {
"vid": "0xFEED",
Expand Down
31 changes: 31 additions & 0 deletions keyboards/modelm/ibm122m/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# ibm122m

![IBM Model M 122 key](https://i.imgur.com/Oo3Ozqz.jpg)

This is a keymap for the IBM Model M 122 key terminal keyboard running on a Teensy++ 2.0
I wired it to weird pins on mine (mainly to accomodate two speakers), so make sure to update the pin arrays.

Keyboard Maintainer: [Luke Stanley](https://github.com/lukexorz)
Hardware Supported: Teensy++ 2.0
Hardware Availability: https://www.pjrc.com/store/teensypp.html

Pins of the Teensy board you should use by default:
```
Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Pins: E6 B7 D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 C0 C1 C2 C3 C4 C5 C7 F1
--------------------------------------------------------
Rows: 1 2 3 4 5 6 7 8
Pins: F0 B5 B4 B3 B2 B1 B0 E7
--------------------------------------------------------
Status LEDs: CapsLock +5V ScrollLock NumLock
Pins: N/A 5V N/A N/A
--------------------------------------------------------
Speaker: 1+ 1- 2+ 2-
Pins: C6 GND B6 GND
```

Make example for this keyboard (after setting up your build environment):

make modelm/ibm122m:default

See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@
#define MODELM_LED2 B6
#define MODELM_LED3 D0

#if defined(KEYBOARD_mschwingen_modelm_led_wired)
#if defined(KEYBOARD_modelm_mschwingen_led_wired)
# define MODELM_LED_CAPSLOCK MODELM_LED1
# define MODELM_LED_SCROLLOCK MODELM_LED2
# define MODELM_LED_NUMLOCK MODELM_LED3
#elif defined(KEYBOARD_mschwingen_modelm_led_ffc)
#elif defined(KEYBOARD_modelm_mschwingen_led_ffc)
# define MODELM_LED_CAPSLOCK MODELM_LED2
# define MODELM_LED_SCROLLOCK MODELM_LED3
# define MODELM_LED_NUMLOCK MODELM_LED1
#elif defined(KEYBOARD_mschwingen_modelm_led_ws2812)
#elif defined(KEYBOARD_modelm_mschwingen_led_ws2812)
#else
# error one of MODELM_LEDS_FFC, MODELM_LEDS_WIRED or MODELM_LEDS_WS2812 must be set!
#endif
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
{
"keyboard_name": "IBM Model M 101/102",
"keyboard_name": "atmega32U4 board for IBM Model M",
"manufacturer": "mschwingen",
"url": "",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/mschwingen",
"maintainer": "mschwingen",
"usb": {
"vid": "0xFEED",
"pid": "0x558E",
"device_version": "0.0.1"
<<<<<<< HEAD:keyboards/mschwingen/modelm/info.json
},
"ws2812": {
"pin": "B6"
},
"processor": "atmega32u4",
"bootloader": "lufa-dfu",
=======
}
>>>>>>> c8a369be5c (Putting all IBM Model M projects under one folder):keyboards/modelm/mschwingen/info.json
"layouts": {
"LAYOUT": {
"layout": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include "quantum.h"
#include "spi_master.h"
#include "print.h"
#include "modelm.h"
#include "mschwingen.h"

#define SPI_TIMEOUT 100

Expand Down Expand Up @@ -93,7 +93,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)

void matrix_init_custom(void) {
unselect_cols();

// set 4MHz SPI clock
SPSR = 0;
SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPOL);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <util/delay.h>
#include "modelm.h"
#include "mschwingen.h"
#include "uart.h"
#include "print.h"
#include "sendchar.h"
#include "ws2812.h"
#include "modelm.h"
#include "sleep_led.h"

#ifdef UART_DEBUG
Expand All @@ -36,7 +35,7 @@ static uint16_t blink_cycle_timer;
static bool blink_state = false;
static uint8_t isRecording = 0;

#ifdef KEYBOARD_mschwingen_modelm_led_ws2812
#ifdef KEYBOARD_modelm_mschwingen_led_ws2812
# if RGBLED_NUM < 3
# error we need at least 3 RGB LEDs!
# endif
Expand Down Expand Up @@ -81,7 +80,7 @@ void sleep_led_disable(void) {
void sleep_led_enable(void) {
suspend_active = true;
writePinLow(MODELM_STATUS_LED);
#ifdef KEYBOARD_mschwingen_modelm_led_ws2812
#ifdef KEYBOARD_modelm_mschwingen_led_ws2812
led[0] = black;
led[1] = black;
led[2] = black;
Expand All @@ -90,7 +89,7 @@ void sleep_led_enable(void) {
}

void keyboard_pre_init_kb(void) {
#ifdef KEYBOARD_mschwingen_modelm_led_ws2812
#ifdef KEYBOARD_modelm_mschwingen_led_ws2812
ws2812_setleds(led, RGBLED_NUM);
#else
/* Set status LEDs pins to output and Low (on) */
Expand All @@ -116,7 +115,7 @@ void keyboard_pre_init_kb(void) {
writePinLow(SR_CLK_PIN);
}

#ifdef KEYBOARD_mschwingen_modelm_led_ws2812
#ifdef KEYBOARD_modelm_mschwingen_led_ws2812
static void led_update_rgb(void) {
if (isRecording && blink_state) {
led[0] = white;
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ This is a configuration of QMK intended to be used with the [Model M USB PCB](ht

Make example for this keyboard (after setting up your build environment), run one of:

make mschwingen/modelm/led_wired:default
make mschwingen/modelm/led_ffc:default
make mschwingen/modelm/led_ws2812:default
make modelm/mschwingen/led_wired:default
make modelm/mschwingen/led_ffc:default
make modelm/mschwingen/led_ws2812:default

flash:

make mschwingen/modelm/led_wired:default:flash
make mschwingen/modelm/led_ffc:default:flash
make mschwingen/modelm/led_ws2812:default:flash
make modelm/mschwingen/led_wired:default:flash
make modelm/mschwingen/led_ffc:default:flash
make modelm/mschwingen/led_ws2812:default:flash

Bootloader: do not use the QMK bootloader, use the bootloader from [here](https://github.com/mschwingen/modelm-lufa-bootloader)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ OPT_DEFS += -DSLEEP_LED_ENABLE # we need our own sleep callbacks to turn of WS28

LTO_ENABLE = yes

DEFAULT_FOLDER = mschwingen/modelm/led_wired
DEFAULT_FOLDER = modelm/mschwingen/led_wired
23 changes: 23 additions & 0 deletions keyboards/modelm/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# IBM Model M

This is the parent directory for all projects that replace the controller
of IBM's Model M Keyboard and then run QMK on it.

These controllers differ in their use of microcontrollers, connection (mainly
USB) optional speakers etc.

Some of them can be bought fully assembled others are do-it-yourself.

## Warning - Model M Variants

**Not all of these projects will fit into your keyboard!**

As the Model M was produced over several years there are many variants of the
controller PCB. Check what fits your keyboard before you build/order one.

The variants built for PCs differ in:
* PCB size
* Connectors (8/12 pin flex, location)
* Ground wire connector location

Additionally IBM built Model M keyboards for terminals with 122 keys etc.
Empty file added keyboards/modelm/teensypp/.noci
Empty file.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"keyboard_name": "IBM Model M 101/102",
"manufacturer": "iw0rm3r",
"url": "https://github.com/iw0rm3r/qmk_firmware/tree/modelm101/keyboards/converter/modelm101",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/teensypp",
"maintainer": "iw0rm3r",
"usb": {
"vid": "0xFEED",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

![IBM Model M 101 ANSI/102 ISO](https://i.imgur.com/DAE3W7g.jpg)

This is a configuration for the QMK firmware for reversible conversion of IBM's Model M keyboards (common 101-key ANSI and 102-key ISO models) from stock, power-hungry controller, to a modern one, running the USB bus.
Configuration is build for the Atmel AT90USB1286 controller, which you can easily use on the Teensy 2.0++ board (produced by PJRC).
This is a configuration for the QMK firmware for reversible conversion of IBM's Model M keyboards (common 101-key ANSI and 102-key ISO models) from stock, power-hungry controller, to a modern one, running the USB bus.
Configuration is build for the Atmel AT90USB1286 controller, which you can easily use on the Teensy++ 2.0 board (produced by PJRC).
Project is heavely based on 2 other projects:
1. Teensy 2.0++-based custom Model M controller running TMK firmware ('modelm" by [lmorchard](https://blog.lmorchard.com/2016/02/21/modelm-controller/)); - had a few issues.
2. Teensy 2.0++-based custom Model M 122-key controller running QMK firmware ("ibm122m" by [lukexorz](https://github.com/lukexorz)); - had wrong layout for 101/102-key boards and no status LED support.
1. Teensy++ 2.0-based custom Model M controller running TMK firmware ('modelm" by [lmorchard](https://blog.lmorchard.com/2016/02/21/modelm-controller/)); - had a few issues.
2. Teensy++ 2.0-based custom Model M 122-key controller running QMK firmware ("ibm122m" by [lukexorz](https://github.com/lukexorz)); - had wrong layout for 101/102-key boards and no status LED support.

For this conversion you will need:
1. Teensy 2.0++ dev board itself (can be used a different dev board, but it will require some changes in configuration);
For this conversion you will need:
1. Teensy++ 2.0 dev board itself (can be used a different dev board, but it will require some changes in configuration);
2. Ribbon connectors to connect the membrane to a dev board. Depending on your Model M variation, you will need 1 Trio-mate 16pin connector (6-520315-6 or 6-520415-6) and 1 Trio-mate 8pin connector (5-120628-8 or 5-520314-8), or 2 Trio-mate 16pin connectors;
3. Full-sized breadboard (without power rails; half-size should do, but full-sized one looks more native) or a PCB to wire everything up;
4. A bunch of jumper wires;
Expand All @@ -27,16 +27,16 @@ Pins: F7 F6 F5 F4 F3 F2 F1 F0
--------------------------------------------------------
Status LEDs: CapsLock +5V ScrollLock NumLock
Pins: B6 5V B5 B4
```
```

Please note that some versions of Model M have LED connected with a ribbon cable, and not with separate wires.
Please note that some versions of Model M have LED connected with a ribbon cable, and not with separate wires.

Keyboard Maintainer: [iw0rm3r](https://github.com/iw0rm3r)
Hardware Supported: Teensy 2.0++ board by PJRC
Keyboard Maintainer: [iw0rm3r](https://github.com/iw0rm3r)
Hardware Supported: Teensy++ 2.0 board by PJRC
Hardware Availability: https://www.pjrc.com/store/teensypp.html

Make example for this keyboard (after setting up your build environment):

make converter/modelm101:default:teensy
make modelm/teensypp:default:teensy

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"keyboard_name": "Yugo-M (Model M replacment controller)",
"keyboard_name": "Yugo-M (IBM Model M replacment controller)",
"manufacturer": "IBM",
"url": "https://github.com/tomic1785/qmk_firmware/tree/stm32_model_m/keyboards/yugo_m/model_m_101",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/yugo_m",
"maintainer": "Nidzo Tomic",
"usb": {
"vid": "0xFEED",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ A drop-in replacement controller PCB for IBM Model M keyboards, based on the STM

Make example for this keyboard (after setting up your build environment):

make yugo_m/model_m_101:default
make modelm/yugo_m:default

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ void keyboard_pre_init_kb(void) {
setPinOutput(A2);
setPinOutput(A1);
setPinOutput(A0);

keyboard_pre_init_user();
}

Expand Down
19 changes: 0 additions & 19 deletions keyboards/yugo_m/readme.md

This file was deleted.

0 comments on commit 9a7cf62

Please sign in to comment.