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 3, 2021
1 parent 54e8dd0 commit edf863f
Show file tree
Hide file tree
Showing 61 changed files with 105 additions and 77 deletions.
16 changes: 0 additions & 16 deletions keyboards/handwired/ibm122m/readme.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www./gnu.org/licenses/>.
*/
#include "modelm_usbc.h"
#include "ashpil_usbc.h"

void keyboard_pre_init_kb(void) {
/* Setting status LEDs pins to output and +5V (off) */
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"keyboard_name": "IBM Model M 101 ANSI/102 ISO",
"url": "https://github.com/ashpil/qmk_firmware/tree/master/keyboards/ashpil/modelm_usbc",
"maintainer": "ashpil",
"width": 22.5,
"height": 6.5,
"keyboard_name": "IBM Model M 101 ANSI/102 ISO",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/ashpil_usbc",
"maintainer": "ashpil",
"width": 22.5,
"height": 6.5,
"layouts": {
"LAYOUT_fullsize_iso_wkl": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.5}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
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.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"keyboard_name": "IBM Model M 122-key",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/ibm122m",
"maintainer": "qmk",
"width": 24.75,
"height": 8,
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 @@ -69,15 +69,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,6 +1,6 @@
{
"keyboard_name": "atmega32U4 board for IBM Model M",
"url": "",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/mschwingen",
"maintainer": "mschwingen",
"width": 23,
"height": 7,
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 DEBUG 0

Expand Down Expand Up @@ -96,7 +96,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(QMK_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
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ extern void update_layer_leds(void);
* The second section defines position of the keys on the switch matrix
* (where COLUMNS and ROWS crosses). */

/* universla layout for both 101 and 102-key versions */
/* universal layout for both 101 and 102-key versions */
#define LAYOUT( \
K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \
\
Expand All @@ -37,7 +37,7 @@ extern void update_layer_leds(void);
K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, K1O, K1P, K1Q, K1R, \
K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J \
) \
{/* COL0 ............ COL7 */ \
{/* COL0 ............ COL7 */ \
{ K0D , KC_NO, KC_NO, K5O , K5N , KC_NO, KC_NO, K0B }, /* ROW0 */ \
{ K0F , K5P , K1R , K3U , K3P , K4P , KC_NO, K1N }, \
{ K4U , K4T , K1Q , K3T , K3Q , K4Q , K2Q , K0J }, \
Expand Down
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 @@ -40,4 +40,4 @@ ifeq ($(strip $(UART_DEBUG)), yes)
OPT_DEFS += -DUART_DEBUG
endif

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.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"keyboard_name": "IBM Model M 101 ANSI/102 ISO",
"url": "https://github.com/iw0rm3r/qmk_firmware/tree/modelm101/keyboards/converter/modelm101",
"maintainer": "iw0rm3r",
"width": 22.5,
"height": 6.5,
"keyboard_name": "IBM Model M 101 ANSI/102 ISO",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/modelm/teensypp",
"maintainer": "iw0rm3r",
"width": 22.5,
"height": 6.5,
"layouts": {
"LAYOUT": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.5}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
}
}
}
}
Loading

0 comments on commit edf863f

Please sign in to comment.