Skip to content

Commit

Permalink
Consolidate modelm v2 (qmk#14996)
Browse files Browse the repository at this point in the history
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
  • Loading branch information
3 people authored May 27, 2023
1 parent e759230 commit f98f8ee
Show file tree
Hide file tree
Showing 89 changed files with 293 additions and 105 deletions.
24 changes: 24 additions & 0 deletions data/mappings/keyboard_aliases.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
"angel64": {
"target": "angel64/alpha"
},
"ashpil/modelm_usbc": {
"target": "ibm/model_m/ashpil_usbc"
},
"at101_blackheart": {
"target": "viktus/at101_bh"
},
Expand Down Expand Up @@ -113,6 +116,15 @@
"cmm_studio/saka68": {
"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": {
"target": "kprepublic/cospad"
},
Expand Down Expand Up @@ -203,6 +215,9 @@
"handwired/ferris": {
"target": "ferris/0_1"
},
"handwired/ibm122m": {
"target": "ibm/model_m_122/ibm122m"
},
"handwired/p1800fl": {
"target": "team0110/p1800fl"
},
Expand Down Expand Up @@ -425,6 +440,9 @@
"montsinger/rebound": {
"target": "montsinger/rebound/rev1"
},
"mschwingen/modelm": {
"target": "ibm/model_m/mschwingen"
},
"noxary/268_2": {
"layouts": {
"LAYOUT": "LAYOUT_65_ansi_blocker"
Expand Down Expand Up @@ -1246,6 +1264,9 @@
"treadstone48/rev2": {
"target": "marksard/treadstone48/rev2"
},
"tronguylabs/m122_3270": {
"target": "ibm/model_m_122/m122_3270"
},
"ua62": {
"target": "nacly/ua62"
},
Expand Down Expand Up @@ -1306,6 +1327,9 @@
"ymdk_np21": {
"target": "ymdk/np21"
},
"yugo_m/model_m_101": {
"target": "ibm/model_m/yugo_m"
},
"yurei": {
"target": "kkatano/yurei"
},
Expand Down
21 changes: 21 additions & 0 deletions docs/ChangeLog/20230528/PR14996.md
Original file line number Diff line number Diff line change
@@ -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
16 changes: 0 additions & 16 deletions keyboards/handwired/ibm122m/readme.md

This file was deleted.

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/ibm/model_m/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 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).
File renamed without changes.
24 changes: 24 additions & 0 deletions keyboards/ibm/model_m/modelm/readme.md
Original file line number Diff line number Diff line change
@@ -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.
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_ibm_model_m_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_ibm_model_m_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_ibm_model_m_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,7 +1,7 @@
{
"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/ibm/model_m/mschwingen",
"maintainer": "mschwingen",
"usb": {
"vid": "0xFEED",
Expand Down
21 changes: 21 additions & 0 deletions keyboards/ibm/model_m/mschwingen/led_ffc/readme.md
Original file line number Diff line number Diff line change
@@ -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).
21 changes: 21 additions & 0 deletions keyboards/ibm/model_m/mschwingen/led_wired/readme.md
Original file line number Diff line number Diff line change
@@ -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).
21 changes: 21 additions & 0 deletions keyboards/ibm/model_m/mschwingen/led_ws2812/readme.md
Original file line number Diff line number Diff line change
@@ -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).
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_ibm_model_m_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_ibm_model_m_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_ibm_model_m_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_ibm_model_m_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 ibm/model_m/mschwingen/led_wired:default
make ibm/model_m/mschwingen/led_ffc:default
make ibm/model_m/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 ibm/model_m/mschwingen/led_wired:default:flash
make ibm/model_m/mschwingen/led_ffc: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)

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 = ibm/model_m/mschwingen/led_wired
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": "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",
"usb": {
"vid": "0xFEED",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![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).

Expand All @@ -18,12 +18,12 @@ Status LEDs: CapsLock +5V ScrollLock NumLock
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 Availability: https://www.pjrc.com/store/teensy.html

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).
File renamed without changes.
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/ibm/model_m/teensypp",
"maintainer": "iw0rm3r",
"usb": {
"vid": "0xFEED",
Expand Down
Loading

0 comments on commit f98f8ee

Please sign in to comment.