Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Model f labs f62 #21193

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
26b0526
fetch of upstearm
matthew-wolf-n4mtt Jun 9, 2023
aea1b35
initial stuff for f62
matthew-wolf-n4mtt Jun 9, 2023
240d8a7
forgotten items
matthew-wolf-n4mtt Jun 9, 2023
edbe9ab
added copyright
matthew-wolf-n4mtt Jun 9, 2023
8ef8e6e
revert submodule changes
matthew-wolf-n4mtt Jun 9, 2023
8989f16
simple removal
matthew-wolf-n4mtt Jul 5, 2023
db3a0c5
restore f62 via keymap config.h
matthew-wolf-n4mtt Jul 5, 2023
95c3f4a
picture image hosting
matthew-wolf-n4mtt Jul 5, 2023
7fac33a
post qmk migrate
matthew-wolf-n4mtt Jul 5, 2023
d1af7b1
remove ../../post_config.h
matthew-wolf-n4mtt Jul 6, 2023
684a3dc
Remove extra via layer
matthew-wolf-n4mtt Jul 6, 2023
1eb680b
correct image link
matthew-wolf-n4mtt Jul 6, 2023
867d79b
2nd set of updates for F62 pull
matthew-wolf-n4mtt Jul 15, 2023
cc0c8de
F62 wcass config.h and rules.mk update
matthew-wolf-n4mtt Aug 5, 2023
3648b62
F62 - removed wcass.h
matthew-wolf-n4mtt Sep 24, 2023
74930d9
F62: BootMagic conf cleanup
matthew-wolf-n4mtt Sep 24, 2023
c95d992
F62: Move Haptic enable to rules.mk
matthew-wolf-n4mtt Sep 24, 2023
eec663a
F62: Does the CI build like "HAPTIC_DRIVER = solenoid" in lower case?
matthew-wolf-n4mtt Sep 24, 2023
7d58907
F62: Comments removed, keymap formating
matthew-wolf-n4mtt Sep 25, 2023
7367ed3
qmk format-c
matthew-wolf-n4mtt Nov 24, 2023
e0b03ea
Merge branch 'master' into model_f_labs
matthew-wolf-n4mtt Dec 1, 2023
41f2eb9
Update source location in rules.mk
matthew-wolf-n4mtt Dec 5, 2023
5c46bb1
Merge branch 'master' into model_f_labs
matthew-wolf-n4mtt Dec 5, 2023
e8143c9
Clean up of make system files
matthew-wolf-n4mtt Dec 10, 2023
a0f23ff
fix haptic / solenoid
matthew-wolf-n4mtt Dec 18, 2023
e176cc6
restore correct haptic driver
matthew-wolf-n4mtt Dec 21, 2023
f591531
Merge remote-tracking branch 'origin/master' into model_f_labs
matthew-wolf-n4mtt Dec 21, 2023
ea28ab5
util header cleaning
matthew-wolf-n4mtt Dec 27, 2023
43af4f2
Second reviewer info.json clean up.
matthew-wolf-n4mtt Jan 1, 2024
fbc343d
Community Layout Names
matthew-wolf-n4mtt Jan 7, 2024
9f0b6d7
Boot loader details added to readme.md
matthew-wolf-n4mtt Mar 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions keyboards/model_f_labs/f62/info.json
drashna marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"manufacturer": "Model F Labs",
"keyboard_name": "Reproduction IBM F62 Keyboard",
"maintainer": "Purdea Andrei",
"url": "https://www.modelfkeyboards.com/"
}
87 changes: 87 additions & 0 deletions keyboards/model_f_labs/f62/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/* Copyright 2022 Matthew J Wolf
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* -----
* Based on F62_-_HHKB_-_Split_Backspace.json from Joe of Model F Labs
*/
/* all
* - Base
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + │ \ │ ` │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
* │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│
* │Lctl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
* │Lsft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Rsft │Fn1│
* ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┴┬───┬─┴───┤
* │Caps │GUI│Lalt │ Space │ │Ratl │Nlk│Rctl │
* └─────┴───┴─────┴──────────────────────┴────┴─────┴───┴─────┘
* - FN1
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Ins│Del│
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
* │ │ │ │ │ │ │ │ │Psc│Skl│Pau│Up │ │Del │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│
* │ │Vo-│Vo+│Mut│Ejc│ │Kp*│Kp/│Hom│PGu│Lef│Rgh│ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
* │ │ │ │ │ │ │ │Kp+│Kp-│End│PGd│Dow│ │ │
* ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┴┬───┬─┴───┤
* │ │ │ │ Fn2 │ │ │ │ │
* └─────┴───┴─────┴──────────────────────┴────┴─────┴───┴─────┘
* - FN2
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ │ │ │ │ │ │ │ │ │ │ │Dl-│Dl+│ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
* │ │ │ │Epr│Res│HPt│ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│
* │ │ │ │Deb│ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┴┬───┬─┴───┤
* │ │ │ │ │ │ │ │ │
* └─────┴───┴─────┴──────────────────────┴────┴─────┴───┴─────┘
*/
#include QMK_KEYBOARD_H

enum layer_names {
_BASE,
_FN1,
_FN2
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, KC_NUM, KC_RCTL
),
[_FN1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, KC_DEL,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, MO(_FN2), _______, _______, _______, _______
),
[_FN2] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, HF_DWLD,HF_DWLU, _______, _______,
_______, _______, _______, EE_CLR, QK_BOOT, HF_TOGG, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};
3 changes: 3 additions & 0 deletions keyboards/model_f_labs/f62/keymaps/default/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# A keymap for model_f_labs/f62/$(CONTROLLER)

Keymap for the HHKB Split Shift and Split Backspace.
85 changes: 85 additions & 0 deletions keyboards/model_f_labs/f62/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/* Copyright 2022 Matthew J Wolf
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* all
* - Base
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + │ \ │ ` │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
* │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│
* │Lctl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
* │Lsft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Rsft │Fn1│
* ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┴┬───┬─┴───┤
* │Caps │GUI│Lalt │ Space │ │Ratl │Nlk│Rctl │
* └─────┴───┴─────┴──────────────────────┴────┴─────┴───┴─────┘
* - FN1
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Ins│Del│
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
* │ │ │ │ │ │ │ │ │Psc│Skl│Pau│Up │ │Del │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│
* │ │Vo-│Vo+│Mut│Ejc│ │Kp*│Kp/│Hom│PGu│Lef│Rgh│ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
* │ │ │ │ │ │ │ │Kp+│Kp-│End│PGd│Dow│ │ │
* ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┴┬───┬─┴───┤
* │ │ │ │ Fn2 │ │ │ │ │
* └─────┴───┴─────┴──────────────────────┴────┴─────┴───┴─────┘
* - FN2
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ │ │ │ │ │ │ │ │ │ │ │Dl-│Dl+│ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
* │ │ │ │Epr│Res│HPt│ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────│
* │ │ │ │Deb│ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┴┬───┬─┴───┤
* │ │ │ │ │ │ │ │ │
* └─────┴───┴─────┴──────────────────────┴────┴─────┴───┴─────┘
*/
#include QMK_KEYBOARD_H

enum layer_names {
_BASE,
_FN1,
_FN2,
_FN3
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, KC_NUM, KC_RCTL
),
[_FN1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, KC_DEL,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, MO(_FN2), _______, _______, _______, _______
),
[_FN2] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, HF_DWLD,HF_DWLU, _______, _______,
_______, _______, _______, EE_CLR, QK_BOOT, HF_TOGG, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
};
5 changes: 5 additions & 0 deletions keyboards/model_f_labs/f62/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
BOOTMAGIC_ENABLE = no
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bootmagic gets force enabled if via is enabled, setting this to "no" isn't enough to disable bootmagic.

If you absolutely need to disable bootmagic... adding this is the best way:

void bootmagic_scan(void) {}


SRC = xwhatsit_capsense_matrix.c
35 changes: 35 additions & 0 deletions keyboards/model_f_labs/f62/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# model_f_labs/f62

![model_f_labs/f62](https://images2.imgbox.com/e5/97/1hPUzXct_o.jpg)

A short description of the keyboard/project

* Keyboard Maintainer: [Purdea Andrei](https://github.com/purdeaandrei)
* Build Maintainer: Matthew J Wolf
* Hardware Supported: Supports the brand new Model F reproductions from https://www.modelfkeyboards.com/, using the smaller xwhatsit controller developed by wcass.
* Hardware Availability: https://www.modelfkeyboards.com/

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

make model_f_labs/f62: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).
drashna marked this conversation as resolved.
Show resolved Hide resolved


## How do you enter the boot loader?

There are three ways to enter the boot loader.
* **Command**: At the same time hold down both shift key and the B key.
Left Shift + Right Shift + B
* **Keycode in Layout**: Press the key mapped to `QK_BOOT`.
The default location is the R key on the second layer.
FN + Spacebar + R
* **Physical Reset PCB Pad**: Short pads of the PCB.
The description and image below are from the
Model F Labs manual web page.

At the very worst you have to open up the keyboard to short PROG on the actual xwhatsit controller (unscrew the 2 controller screws to see the components side of the board, make a connection with a conductive metal object like an uncoated metal paper clip, then connect the USB cable to the controller and within a split second remove the paper clip). Per pandrew: “You might think that a screwdriver is gonna be enough, but due to surface oxidation it is likely not gonna be good enough. I like to use sharp metal tweezers, because they can dig into the pad a little bit, breaking up the surface oxidation, and I can actually be sure it’s shorting. Apply constant strong pressure on the pads while plugging in the keyboard to make sure they’re perfectly shorted. If you hear the windows USB plug-in sound (assuming the sound effect is enabled), then you know you have succeeded. I’ve even seen people tell me they tried everything to short the pads with, and then I asked them to solder the pads together and it suddenly works. There’s something about the size of those pads, or about the fact that they need to be shorted in the perfect moment when the chip leaves reset, that make people think they are perfectly shorted and yet they aren’t. This affects me too, sometimes it takes me up to 3 tries to get it into bootloader mode. Another thing to double check that you are indeed shorting the PROG pad and not the reset pad. I believe in some versions of the wcass controller there is a reset pad on the opposite side of the board. So don’t be like ‘I see some pads, those must be it’, make sure to be shorting the correct ones.” [1]

![PCB PADS](https://images2.imgbox.com/ef/20/C9zUfX1h_o.jpg)

1. “Brand New Model F and Beam Spring keyboards manual,” Brand New Model F Keyboards, https://www.modelfkeyboards.com/manual/ (accessed Mar. 16, 2024).
2 changes: 2 additions & 0 deletions keyboards/model_f_labs/f62/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DEFAULT_FOLDER = model_f_labs/f62/wcass
# Brand new model f keyboards by default come with the wcass controller.
Loading
Loading