Consolidate modelm v2 (#14996)

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
nuess0r 2023-05-27 15:12:36 +02:00 committed by GitHub
parent e759230706
commit f98f8eedf0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
89 changed files with 293 additions and 105 deletions

View file

@ -41,6 +41,9 @@
"angel64": { "angel64": {
"target": "angel64/alpha" "target": "angel64/alpha"
}, },
"ashpil/modelm_usbc": {
"target": "ibm/model_m/ashpil_usbc"
},
"at101_blackheart": { "at101_blackheart": {
"target": "viktus/at101_bh" "target": "viktus/at101_bh"
}, },
@ -113,6 +116,15 @@
"cmm_studio/saka68": { "cmm_studio/saka68": {
"target": "cmm_studio/saka68/solder" "target": "cmm_studio/saka68/solder"
}, },
"converter/modelm101": {
"target": "ibm/model_m/teensypp"
},
"converter/modelm101_teensy2": {
"target": "ibm/model_m/teensy2"
},
"converter/modelm_ssk": {
"target": "ibm/model_m_ssk/teensypp_ssk"
},
"cospad": { "cospad": {
"target": "kprepublic/cospad" "target": "kprepublic/cospad"
}, },
@ -203,6 +215,9 @@
"handwired/ferris": { "handwired/ferris": {
"target": "ferris/0_1" "target": "ferris/0_1"
}, },
"handwired/ibm122m": {
"target": "ibm/model_m_122/ibm122m"
},
"handwired/p1800fl": { "handwired/p1800fl": {
"target": "team0110/p1800fl" "target": "team0110/p1800fl"
}, },
@ -425,6 +440,9 @@
"montsinger/rebound": { "montsinger/rebound": {
"target": "montsinger/rebound/rev1" "target": "montsinger/rebound/rev1"
}, },
"mschwingen/modelm": {
"target": "ibm/model_m/mschwingen"
},
"noxary/268_2": { "noxary/268_2": {
"layouts": { "layouts": {
"LAYOUT": "LAYOUT_65_ansi_blocker" "LAYOUT": "LAYOUT_65_ansi_blocker"
@ -1246,6 +1264,9 @@
"treadstone48/rev2": { "treadstone48/rev2": {
"target": "marksard/treadstone48/rev2" "target": "marksard/treadstone48/rev2"
}, },
"tronguylabs/m122_3270": {
"target": "ibm/model_m_122/m122_3270"
},
"ua62": { "ua62": {
"target": "nacly/ua62" "target": "nacly/ua62"
}, },
@ -1306,6 +1327,9 @@
"ymdk_np21": { "ymdk_np21": {
"target": "ymdk/np21" "target": "ymdk/np21"
}, },
"yugo_m/model_m_101": {
"target": "ibm/model_m/yugo_m"
},
"yurei": { "yurei": {
"target": "kkatano/yurei" "target": "kkatano/yurei"
}, },

View file

@ -0,0 +1,21 @@
# QMK Breaking Changes - 2023 May 28 Changelog
## Notable Features :id=notable-features
### Consolidate modelm ([#14996](https://github.com/qmk/qmk_firmware/pull/14996)
Several build targets for the IBM Model M were cluttered in different folders.
The maintainers of several Model M replacement controller projects agreed to
consolidate them under one common folder.
List of the consolidations now in keyboards/modelm/:
- ashpil_usbc
- ibm122m
- mschwingen
- teensy2 (renamed from modelm101_teensy2)
- teensypp (renamed from modelm101)
- teensypp_ssk (renamed from modelm_ssk)
- ibm122m
- m122_3270
- yugo_m

View file

@ -1,16 +0,0 @@
# 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 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
Make example for this keyboard (after setting up your build environment):
make handwired/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.

View file

@ -1,7 +1,7 @@
{ {
"keyboard_name": "IBM Model M 101/102", "keyboard_name": "IBM Model M 101/102",
"manufacturer": "ashpil", "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/ibm/model_m/ashpil_usbc",
"maintainer": "ashpil", "maintainer": "ashpil",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -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 example for this keyboard (after setting up your build environment):
make ashpil/modelm_usbc:default make ibm/model_m/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). 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).

View file

@ -0,0 +1,24 @@
# 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 variants for terminals with 122 keys, the
space saving keyboard (SSK, 84-key) etc.

View file

@ -56,15 +56,15 @@
#define MODELM_LED2 B6 #define MODELM_LED2 B6
#define MODELM_LED3 D0 #define MODELM_LED3 D0
#if defined(KEYBOARD_mschwingen_modelm_led_wired) #if defined(KEYBOARD_ibm_model_m_mschwingen_led_wired)
# define MODELM_LED_CAPSLOCK MODELM_LED1 # define MODELM_LED_CAPSLOCK MODELM_LED1
# define MODELM_LED_SCROLLOCK MODELM_LED2 # define MODELM_LED_SCROLLOCK MODELM_LED2
# define MODELM_LED_NUMLOCK MODELM_LED3 # define MODELM_LED_NUMLOCK MODELM_LED3
#elif defined(KEYBOARD_mschwingen_modelm_led_ffc) #elif defined(KEYBOARD_ibm_model_m_mschwingen_led_ffc)
# define MODELM_LED_CAPSLOCK MODELM_LED2 # define MODELM_LED_CAPSLOCK MODELM_LED2
# define MODELM_LED_SCROLLOCK MODELM_LED3 # define MODELM_LED_SCROLLOCK MODELM_LED3
# define MODELM_LED_NUMLOCK MODELM_LED1 # define MODELM_LED_NUMLOCK MODELM_LED1
#elif defined(KEYBOARD_mschwingen_modelm_led_ws2812) #elif defined(KEYBOARD_ibm_model_m_mschwingen_led_ws2812)
#else #else
# error one of MODELM_LEDS_FFC, MODELM_LEDS_WIRED or MODELM_LEDS_WS2812 must be set! # error one of MODELM_LEDS_FFC, MODELM_LEDS_WIRED or MODELM_LEDS_WS2812 must be set!
#endif #endif

View file

@ -1,7 +1,7 @@
{ {
"keyboard_name": "IBM Model M 101/102", "keyboard_name": "atmega32U4 board for IBM Model M",
"manufacturer": "mschwingen", "manufacturer": "mschwingen",
"url": "", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/mschwingen",
"maintainer": "mschwingen", "maintainer": "mschwingen",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -0,0 +1,21 @@
# atmega32U4 board for IBM Model M, LEDs connected with flexible flat cable (FFC)
![modelm](https://raw.githubusercontent.com/mschwingen/hardware/master/modelm-usb/images/PCB.jpg)
This is a configuration of QMK intended to be used with the [Model M USB PCB](https://github.com/mschwingen/hardware/tree/master/modelm-usb).
* Keyboard Maintainer: [Michael Schwingen](https://github.com/mschwingen/)
* Hardware Supported: [Model M USB PCB](https://github.com/mschwingen/hardware/tree/master/modelm-usb)
* Hardware Availability: need to build your own.
Make example for this keyboard (after setting up your build environment), run one of:
make ibm/model_m/mschwingen/led_ffc:default
Flashing example for this keyboard:
make ibm/model_m/mschwingen/led_ffc:default:flash
Bootloader: do not use the QMK bootloader, use the bootloader from [here](https://github.com/mschwingen/modelm-lufa-bootloader)
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).

View file

@ -0,0 +1,21 @@
# atmega32U4 board for IBM Model M, LEDs connected with wires
![modelm](https://raw.githubusercontent.com/mschwingen/hardware/master/modelm-usb/images/PCB.jpg)
This is a configuration of QMK intended to be used with the [Model M USB PCB](https://github.com/mschwingen/hardware/tree/master/modelm-usb).
* Keyboard Maintainer: [Michael Schwingen](https://github.com/mschwingen/)
* Hardware Supported: [Model M USB PCB](https://github.com/mschwingen/hardware/tree/master/modelm-usb)
* Hardware Availability: need to build your own.
Make example for this keyboard (after setting up your build environment), run one of:
make ibm/model_m/mschwingen/led_wired:default
Flashing example for this keyboard:
make ibm/model_m/mschwingen/led_wired:default:flash
Bootloader: do not use the QMK bootloader, use the bootloader from [here](https://github.com/mschwingen/modelm-lufa-bootloader)
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).

View file

@ -0,0 +1,21 @@
# atmega32U4 board for IBM Model M, old LEDs replaces with WS2812 RGB LEDs
![modelm](https://raw.githubusercontent.com/mschwingen/hardware/master/modelm-usb/images/PCB.jpg)
This is a configuration of QMK intended to be used with the [Model M USB PCB](https://github.com/mschwingen/hardware/tree/master/modelm-usb).
* Keyboard Maintainer: [Michael Schwingen](https://github.com/mschwingen/)
* Hardware Supported: [Model M USB PCB](https://github.com/mschwingen/hardware/tree/master/modelm-usb)
* Hardware Availability: need to build your own.
Make example for this keyboard (after setting up your build environment), run one of:
make ibm/model_m/mschwingen/led_ws2812:default
Flashing example for this keyboard:
make ibm/model_m/mschwingen/led_ws2812:default:flash
Bootloader: do not use the QMK bootloader, use the bootloader from [here](https://github.com/mschwingen/modelm-lufa-bootloader)
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).

View file

@ -22,7 +22,7 @@
#include "quantum.h" #include "quantum.h"
#include "spi_master.h" #include "spi_master.h"
#include "print.h" #include "print.h"
#include "modelm.h" #include "mschwingen.h"
#define SPI_TIMEOUT 100 #define SPI_TIMEOUT 100
@ -93,7 +93,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
void matrix_init_custom(void) { void matrix_init_custom(void) {
unselect_cols(); unselect_cols();
// set 4MHz SPI clock // set 4MHz SPI clock
SPSR = 0; SPSR = 0;
SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPOL); SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPOL);

View file

@ -15,12 +15,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <util/delay.h> #include <util/delay.h>
#include "modelm.h" #include "mschwingen.h"
#include "uart.h" #include "uart.h"
#include "print.h" #include "print.h"
#include "sendchar.h" #include "sendchar.h"
#include "ws2812.h" #include "ws2812.h"
#include "modelm.h"
#include "sleep_led.h" #include "sleep_led.h"
#ifdef UART_DEBUG #ifdef UART_DEBUG
@ -36,7 +35,7 @@ static uint16_t blink_cycle_timer;
static bool blink_state = false; static bool blink_state = false;
static uint8_t isRecording = 0; static uint8_t isRecording = 0;
#ifdef KEYBOARD_mschwingen_modelm_led_ws2812 #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812
# if RGBLED_NUM < 3 # if RGBLED_NUM < 3
# error we need at least 3 RGB LEDs! # error we need at least 3 RGB LEDs!
# endif # endif
@ -81,7 +80,7 @@ void sleep_led_disable(void) {
void sleep_led_enable(void) { void sleep_led_enable(void) {
suspend_active = true; suspend_active = true;
writePinLow(MODELM_STATUS_LED); writePinLow(MODELM_STATUS_LED);
#ifdef KEYBOARD_mschwingen_modelm_led_ws2812 #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812
led[0] = black; led[0] = black;
led[1] = black; led[1] = black;
led[2] = black; led[2] = black;
@ -90,7 +89,7 @@ void sleep_led_enable(void) {
} }
void keyboard_pre_init_kb(void) { void keyboard_pre_init_kb(void) {
#ifdef KEYBOARD_mschwingen_modelm_led_ws2812 #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812
ws2812_setleds(led, RGBLED_NUM); ws2812_setleds(led, RGBLED_NUM);
#else #else
/* Set status LEDs pins to output and Low (on) */ /* Set status LEDs pins to output and Low (on) */
@ -116,7 +115,7 @@ void keyboard_pre_init_kb(void) {
writePinLow(SR_CLK_PIN); writePinLow(SR_CLK_PIN);
} }
#ifdef KEYBOARD_mschwingen_modelm_led_ws2812 #ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812
static void led_update_rgb(void) { static void led_update_rgb(void) {
if (isRecording && blink_state) { if (isRecording && blink_state) {
led[0] = white; led[0] = white;

View file

@ -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 example for this keyboard (after setting up your build environment), run one of:
make mschwingen/modelm/led_wired:default make ibm/model_m/mschwingen/led_wired:default
make mschwingen/modelm/led_ffc:default make ibm/model_m/mschwingen/led_ffc:default
make mschwingen/modelm/led_ws2812:default make ibm/model_m/mschwingen/led_ws2812:default
flash: flash:
make mschwingen/modelm/led_wired:default:flash make ibm/model_m/mschwingen/led_wired:default:flash
make mschwingen/modelm/led_ffc:default:flash make ibm/model_m/mschwingen/led_ffc:default:flash
make mschwingen/modelm/led_ws2812:default:flash make ibm/model_m/mschwingen/led_ws2812:default:flash
Bootloader: do not use the QMK bootloader, use the bootloader from [here](https://github.com/mschwingen/modelm-lufa-bootloader) Bootloader: do not use the QMK bootloader, use the bootloader from [here](https://github.com/mschwingen/modelm-lufa-bootloader)

View file

@ -26,4 +26,4 @@ OPT_DEFS += -DSLEEP_LED_ENABLE # we need our own sleep callbacks to turn of WS28
LTO_ENABLE = yes LTO_ENABLE = yes
DEFAULT_FOLDER = mschwingen/modelm/led_wired DEFAULT_FOLDER = ibm/model_m/mschwingen/led_wired

View file

@ -1,7 +1,7 @@
{ {
"keyboard_name": "IBM Model M 101/102", "keyboard_name": "IBM Model M 101/102",
"manufacturer": "wangfuco", "manufacturer": "wangfuco",
"url": "https://github.com/wangfuco/qmk_firmware/tree/modelm101_teensy2/keyboards/converter/modelm101_teensy2", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensy2",
"maintainer": "wangfuco", "maintainer": "wangfuco",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -2,7 +2,7 @@
![IBM Model M 101 ANSI/102 ISO](https://user-images.githubusercontent.com/46733695/161862805-c891735b-e2e8-418a-ad82-d71c00570eab.jpg) ![IBM Model M 101 ANSI/102 ISO](https://user-images.githubusercontent.com/46733695/161862805-c891735b-e2e8-418a-ad82-d71c00570eab.jpg)
This is based on the modelm101 keyboard by iw0rm3r. The difference is that Teensy 2.0 board (produced by PJRC) is used instead of the Teensy 2.0++ due to the availability issues. Only CapsLock LED is supported since Teensy 2.0 only has 25 digital I/0 pins. This is based on the modelm101 teensypp keyboard by iw0rm3r. The difference is that Teensy 2.0 board (produced by PJRC) is used instead of the Teensy++ 2.0 due to the availability issues. Only CapsLock LED is supported since Teensy 2.0 only has 25 digital I/0 pins.
Configuration is build for the Atmel ATmega32U4 controller, which you can easily use on the Teensy 2.0 board (produced by PJRC). Configuration is build for the Atmel ATmega32U4 controller, which you can easily use on the Teensy 2.0 board (produced by PJRC).
@ -18,12 +18,12 @@ Status LEDs: CapsLock +5V ScrollLock NumLock
Pins: E6 5V - - Pins: E6 5V - -
``` ```
Keyboard Maintainer: [wangfuco](https://github.com/wangfuco) Keyboard Maintainer: [wangfuco](https://github.com/wangfuco)
Hardware Supported: Teensy 2.0 board by PJRC Hardware Supported: Teensy 2.0 board by PJRC
Hardware Availability: https://www.pjrc.com/store/teensy.html Hardware Availability: https://www.pjrc.com/store/teensy.html
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make converter/modelm101_teensy2:default:teensy make ibm/model_m/teensy2: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). 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).

View file

@ -1,7 +1,7 @@
{ {
"keyboard_name": "IBM Model M 101/102", "keyboard_name": "IBM Model M 101/102",
"manufacturer": "iw0rm3r", "manufacturer": "iw0rm3r",
"url": "https://github.com/iw0rm3r/qmk_firmware/tree/modelm101/keyboards/converter/modelm101", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensypp",
"maintainer": "iw0rm3r", "maintainer": "iw0rm3r",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -2,14 +2,14 @@
![IBM Model M 101 ANSI/102 ISO](https://i.imgur.com/DAE3W7g.jpg) ![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. 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). 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: 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. 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. 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: 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); 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; 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; 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; 4. A bunch of jumper wires;
@ -27,16 +27,16 @@ Pins: F7 F6 F5 F4 F3 F2 F1 F0
-------------------------------------------------------- --------------------------------------------------------
Status LEDs: CapsLock +5V ScrollLock NumLock Status LEDs: CapsLock +5V ScrollLock NumLock
Pins: B6 5V B5 B4 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) * Keyboard Maintainer: [iw0rm3r](https://github.com/iw0rm3r)
Hardware Supported: Teensy 2.0++ board by PJRC * Hardware Supported: Teensy++ 2.0 board by PJRC
Hardware Availability: https://www.pjrc.com/store/teensypp.html * Hardware Availability: https://www.pjrc.com/store/teensypp.html
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make converter/modelm101:default:teensy make ibm/model_m/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). 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).

View file

@ -1,7 +1,7 @@
{ {
"keyboard_name": "Yugo-M (Model M replacment controller)", "keyboard_name": "Yugo-M (IBM Model M replacment controller)",
"manufacturer": "IBM", "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/ibm/model_m/yugo_m",
"maintainer": "Nidzo Tomic", "maintainer": "Nidzo Tomic",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -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 example for this keyboard (after setting up your build environment):
make yugo_m/model_m_101:default make ibm/model_m/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). 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).
@ -22,4 +22,4 @@ Note regarding 2022 matrix update:
The original author's firmware did not make several lesser-used membrane/matrix positions available to the controller. These are useful for JIS users and/or if you simply want to create a more unique layout. I've added all of the unused membrane positions to the firmware, except for an extremely seldom used one that sits in the left side of the space bar on some later membranes (I would have added it if I knew its matrix position, but I haven't mapped that out yet). The default mappings for these additional keys follow JIS conventions, except for the extra key on the bottom right corner of the numpad (lower half of vertical 2u Enter), which I've mapped to the LGUI key a.k.a. left Windows/Command key for now. Remap as you wish! The original author's firmware did not make several lesser-used membrane/matrix positions available to the controller. These are useful for JIS users and/or if you simply want to create a more unique layout. I've added all of the unused membrane positions to the firmware, except for an extremely seldom used one that sits in the left side of the space bar on some later membranes (I would have added it if I knew its matrix position, but I haven't mapped that out yet). The default mappings for these additional keys follow JIS conventions, except for the extra key on the bottom right corner of the numpad (lower half of vertical 2u Enter), which I've mapped to the LGUI key a.k.a. left Windows/Command key for now. Remap as you wish!
- an_achronism, February 2022 - an_achronism, February 2022

View file

@ -20,7 +20,7 @@ void keyboard_pre_init_kb(void) {
setPinOutput(A2); setPinOutput(A2);
setPinOutput(A1); setPinOutput(A1);
setPinOutput(A0); setPinOutput(A0);
keyboard_pre_init_user(); keyboard_pre_init_user();
} }

View file

@ -1,6 +1,7 @@
{ {
"keyboard_name": "IBM Model M 122 key", "keyboard_name": "IBM Model M 122 key",
"manufacturer": "IBM", "manufacturer": "IBM",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_122/ibm122m",
"maintainer": "qmk", "maintainer": "qmk",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -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 ibm/model_m_122/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.

View file

@ -1,6 +1,7 @@
{ {
"keyboard_name": "Model M PC/3270 122 key", "keyboard_name": "Model M PC/3270 122 key",
"manufacturer": "IBM", "manufacturer": "IBM",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_122/m122_3270",
"maintainer": "jmaynard", "maintainer": "jmaynard",
"usb": { "usb": {
"vid": "0x1209", "vid": "0x1209",

View file

@ -0,0 +1,33 @@
# m122-3270
![IBM Model M 122 key](https://i.imgur.com/Oo3Ozqzh.jpg)
This is a replacement controller for the IBM Model M 122 key terminal keyboard
running on a STM32F411 BlackPill, intended to act as closely to the 3270
keyboard's functioning as possible while still being usable on a PC.
* Keyboard Maintainer: [Jay Maynard](https://github.com/jmaynard)
* Hardware Supported: BlackPill STM32F411, Teensy++ 2.0
* Hardware Availability: [BlackPill](https://www.adafruit.com/product/4877), [Teensy](https://www.pjrc.com/store/teensypp.html)
Make example for this keyboard (after setting up your build environment):
make ibm/model_m_122/m122_3270/blackpill:default
make ibm/model_m_122/m122_3270/bluepill:default
make ibm/model_m_122/m122_3270/teensy: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).
A schematic and Gerber files are publicly available for those wishing to have
carrier boards made professionally instead of handwiring things. The M122
matrix connectors plug right into it. It can be found at
https://github.com/jmaynard/tronguylabs-m122-blackpill.
This is derived from Luke Stanley's handwired/ibm122m keyboard, with my own
keymapping and rework of the I/O for the BlackPill. There's also a version for
the Teensy++ 2.0, since that was my original design and I still use one on one
board, even though I switched to the BlackPill for future-proofing.
The Teensy++ 2.0 is not recommended for new designs.

View file

@ -0,0 +1,24 @@
# IBM Model M Terminal with 122 keys
This is the parent directory for all projects that replace the controller
of IBM's Model M terminal keyboard with 122 keys 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 variants with 101/102 keys, the
space saving keyboard (SSK, 84-key) etc.

View file

@ -0,0 +1,24 @@
# IBM Model M Space Saving Keyboard (SSK, 84-key)
This is the parent directory for all projects that replace the controller
of IBM's Model M space saving keyboard keyboard with 84 keys 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 variants with 101/102 keys, the
terminal keyboard with 122 keys etc.

View file

@ -1,7 +1,7 @@
{ {
"keyboard_name": "IBM Model M Space-Saving Keyboard", "keyboard_name": "IBM Model M Space-Saving Keyboard",
"manufacturer": "tiltowait", "manufacturer": "tiltowait",
"url": "https://github.com/tiltowait/qmk_firmware/tree/modelm_ssk/keyboards/converter/modelm_ssk", "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_ssk/teensypp_ssk",
"maintainer": "tiltowait", "maintainer": "tiltowait",
"usb": { "usb": {
"vid": "0xFEED", "vid": "0xFEED",

View file

@ -2,11 +2,11 @@
![IBM Model M Space-Saving Keyboard](https://i.imgur.com/CSXrQI5.jpg) ![IBM Model M Space-Saving Keyboard](https://i.imgur.com/CSXrQI5.jpg)
This is a QMK firmware configuration for the IBM Model M Space-Saving Keyboard (SSK). Based on [this project](https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/modelm101), it features a few slight improvements and, most importantly, a full remapping to match the SSK's matrix, which differs from its full-sized cousins. The modification is easily reversible, as no part of the keyboard is permanently changed. Just take out the replacement controller and reinstall the original, should you desire. This is a QMK firmware configuration for the IBM Model M Space-Saving Keyboard (SSK). Based on [this project](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensypp), it features a few slight improvements and, most importantly, a full remapping to match the SSK's matrix, which differs from its full-sized cousins. The modification is easily reversible, as no part of the keyboard is permanently changed. Just take out the replacement controller and reinstall the original, should you desire.
The numpad layer (accessed with Shift + Scroll Lock as with the original controller) is mapped to layer 7 by default. All non-numpad keys are transparent. The numpad layer (accessed with Shift + Scroll Lock as with the original controller) is mapped to layer 7 by default. All non-numpad keys are transparent.
**Note:** As of this writing, this configuration has only been tested on the 1392464 SSK. It's possible other models differ in their internal matrices. Should the provided matrix not work for you (and you are certain of your connections), you can enable debugging with `CONSOLE_ENABLE = yes` in `rules.mk` and by following the directions in `default/keymap.c`. Once done, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) will display row/col information to help you remap `modelm_ssk.h`. **Note:** As of this writing, this configuration has only been tested on the 1392464 SSK. It's possible other models differ in their internal matrices. Should the provided matrix not work for you (and you are certain of your connections), you can enable debugging with `CONSOLE_ENABLE = yes` in `rules.mk` and by following the directions in `default/keymap.c`. Once done, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) will display row/col information to help you remap `keymap.c`.
## Requirements ## Requirements
@ -48,7 +48,7 @@ This configuration will not work out of the box with the [Unicomp Mini M](https:
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make converter/modelm_ssk:default make ibm/model_m_ssk/teensypp_ssk:default
You must press the button on the Teensy to enter the bootloader the first time. Afterward, so long as you keep `COMMAND_ENABLE = yes` in `rules.mk` (enabled by default), you can use `Left Shift + Right Shift + B` to enter the bootloader. With this method, you can omit `:teensy` from the end of the `make` command. You must press the button on the Teensy to enter the bootloader the first time. Afterward, so long as you keep `COMMAND_ENABLE = yes` in `rules.mk` (enabled by default), you can use `Left Shift + Right Shift + B` to enter the bootloader. With this method, you can omit `:teensy` from the end of the `make` command.

View file

@ -1,22 +0,0 @@
# m122-3270
![IBM Model M 122 key](https://i.imgur.com/Oo3Ozqzh.jpg)
This is a replacement controller for the IBM Model M 122 key terminal keyboard running on a STM32F411 BlackPill, intended to act as closely to the 3270 keyboard's functioning as possible while still being usable on a PC.
* Keyboard Maintainer: [Jay Maynard](https://github.com/jmaynard)
* Hardware Supported: BlackPill STM32F411, Teensy++ 2.0
* Hardware Availability: [BlackPill](https://www.adafruit.com/product/4877), [Teensy](https://www.pjrc.com/store/teensypp.html)
Make example for this keyboard (after setting up your build environment):
make tronguylabs/m122_3270/blackpill:default
make tronguylabs/m122_3270/teensy: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).
A schematic and Gerber files are publicly available for those wishing to have carrier boards made
professionally instead of handwiring things. The M122 matrix connectors plug right into it. It can
be found at https://github.com/jmaynard/tronguylabs-m122-blackpill.
This is derived from Luke Stanley's handwired/ibm122m keyboard, with my own keymapping and rework of the I/O for the BlackPill. There's also a version for the Teensy++ 2.0, since that was my original design and I still use one on one board, even though I switched to the BlackPill for future-proofing. The Teensy++ 2.0 is not recommended for new designs.

View file

@ -1,19 +0,0 @@
# Yugo-M - An STM32-based IBM Model M controller
A drop-in replacement controller PCB for IBM Model M keyboards.
Currently available only for 101/102 key keyboards.
* Keyboard Maintainer: [Nidzo Tomic](https://github.com/tomic1785)
* Hardware Supported: Yugo-M PCB
* Rev 0.9b
* Rev 1.1b
For more info visit the project repository: [Yugo-M-controller-project](https://github.com/tomic1785/Yugo-M-controller-project)
Note regarding 2022 matrix update:
The original author's firmware did not make several lesser-used membrane/matrix positions available to the controller. These are useful for JIS users and/or if you simply want to create a more unique layout. I've added all of the unused membrane positions to the firmware, except for an extremely seldom used one that sits in the left side of the space bar on some later membranes (I would have added it if I knew its matrix position, but I haven't mapped that out yet). The default mappings for these additional keys follow JIS conventions, except for the extra key on the bottom right corner of the numpad (lower half of vertical 2u Enter), which I've mapped to the LGUI key a.k.a. left Windows/Command key for now. Remap as you wish!
- an_achronism, February 2022