Add SofleKeyboard support to QMK firmware. (#8970)
* Add SofleKeyboard support to QMK firmware. * Sofle: Remove LAYOUT_kc macro for default layout. Remove unnecessary code. * Fix mistake in the latest commit * Remove duplicated layers for MAC/WIN support * Improve according to suggestion in PR * Add more improvements from PR * Fix a typo in README.md Co-authored-by: Nick Brassel <nick@tzarc.org> * Remove unneeded break. Co-authored-by: Nick Brassel <nick@tzarc.org> * Remove unneeded break. Co-authored-by: Nick Brassel <nick@tzarc.org> * Apply suggestions from code review Remove unneeded breaks. Co-authored-by: Nick Brassel <nick@tzarc.org> * Apply suggestions from code review Remove unneeded breaks (few more forgotten ones). Co-authored-by: Nick Brassel <nick@tzarc.org> * Apply suggestions from code review Co-authored-by: Drashna Jaelre <drashna@live.com> * Remove TAPPING_FORCE_HOLD from default keymap. * Add TAP_CODE_DELAY 10. Fix a typo (compilation error) Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
4
keyboards/sofle/config.h
Normal file
4
keyboards/sofle/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
6
keyboards/sofle/keymaps/default/config.h
Normal file
6
keyboards/sofle/keymaps/default/config.h
Normal file
@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
/* The way how "handedness" is decided (which half is which),
|
||||
see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness
|
||||
for more options.
|
||||
*/
|
392
keyboards/sofle/keymaps/default/keymap.c
Normal file
392
keyboards/sofle/keymaps/default/keymap.c
Normal file
File diff suppressed because it is too large
Load Diff
19
keyboards/sofle/keymaps/default/readme.md
Normal file
19
keyboards/sofle/keymaps/default/readme.md
Normal file
@ -0,0 +1,19 @@
|
||||

|
||||

|
||||
|
||||
|
||||
# Default keymap for Sofle Keyboard
|
||||
|
||||
Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4)
|
||||
|
||||
|
||||
Features:
|
||||
|
||||
- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift)
|
||||
- Various modes, can be switched (using Adjust layer and the selected one is stored in EEPROM.
|
||||
- Modes for Qwerty and Colemak support
|
||||
- Modes for Mac vs Linux/Win support -> different order of modifiers and different action shortcuts on the "UPPER" layer (the red one in the image). Designed to simplify transtions when switching between operating systems often.
|
||||
- The OLED on master half shows selected mode and caps lock state and is rotated.
|
||||
- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN.
|
||||
|
||||
|
5
keyboards/sofle/keymaps/default/rules.mk
Normal file
5
keyboards/sofle/keymaps/default/rules.mk
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
OLED_DRIVER_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
27
keyboards/sofle/readme.md
Normal file
27
keyboards/sofle/readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Sofle Keyboard
|
||||
|
||||

|
||||
|
||||
Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards.
|
||||
|
||||
More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html)
|
||||
|
||||
The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html)
|
||||
|
||||
* Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik)
|
||||
* Hardware Supported: SofleKeyboard PCB, ProMicro
|
||||
* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make sofle:default
|
||||
|
||||
Flash the default keymap:
|
||||
|
||||
make sofle:default:avrdude
|
||||
|
||||
Press reset button on he keyboard when asked.
|
||||
|
||||
Disconnect the first half, connect the second one and repeat the process.
|
||||
|
||||
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).
|
40
keyboards/sofle/rev1/config.h
Normal file
40
keyboards/sofle/rev1/config.h
Normal file
@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFC32
|
||||
#define PRODUCT_ID 0x0287
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER JosefAdamcik
|
||||
#define PRODUCT Sofle
|
||||
#define DESCRIPTION Sofle is 6×4+5keys+encoder column-staggered split keyboard.
|
||||
|
||||
/* key matrix size */
|
||||
// Rows are doubled-up
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 6
|
||||
|
||||
// wiring of each half
|
||||
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
|
||||
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define TAPPING_TERM 100
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* encoder support */
|
||||
#define ENCODERS_PAD_A { F5 }
|
||||
#define ENCODERS_PAD_B { F4 }
|
||||
#define ENCODERS_PAD_A_RIGHT { F4 }
|
||||
#define ENCODERS_PAD_B_RIGHT { F5 }
|
||||
#define ENCODER_RESOLUTION 2
|
||||
|
||||
#define TAP_CODE_DELAY 10
|
||||
|
||||
/* communication between sides */
|
||||
#define USE_SERIAL
|
||||
#define SERIAL_USE_MULTI_TRANSACTION
|
||||
#define SOFT_SERIAL_PIN D2
|
||||
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
||||
|
19
keyboards/sofle/rev1/info.json
Normal file
19
keyboards/sofle/rev1/info.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"keyboard_name": "Sofle",
|
||||
"url": "https://github.com/josefadamcik/SofleKeyboard",
|
||||
"maintainer": "Josef Adamcik <josef.adamcik@gmail.com>",
|
||||
"width": 16.5,
|
||||
"height": 5.25,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 60,
|
||||
"layout": [
|
||||
{"x":0, "y":0.5}, {"x":1, "y":0.375}, {"x":2, "y":0.125}, {"x":3, "y":0}, {"x":4, "y":0.125}, {"x":5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.5},
|
||||
{"x":0, "y":1.5}, {"x":1, "y":1.375}, {"x":2, "y":1.125}, {"x":3, "y":1}, {"x":4, "y":1.125}, {"x":5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.5},
|
||||
{"x":0, "y":2.5}, {"x":1, "y":2.375}, {"x":2, "y":2.125}, {"x":3, "y":2}, {"x":4, "y":2.125}, {"x":5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.5},
|
||||
{"x":0, "y":3.5}, {"x":1, "y":3.375}, {"x":2, "y":3.125}, {"x":3, "y":3}, {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":2.75}, {"x":9.5, "y":2.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.5},
|
||||
{"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4.15}, {"x":4.5, "y":4.25}, {"x":6, "y":4.25, "h":1.5}, {"x":9.5, "y":4.25, "h":1.5}, {"x":11, "y":4.25}, {"x":12, "y":4.15}, {"x":13, "y":4.125}, {"x":14, "y":4.375}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
1
keyboards/sofle/rev1/rev1.c
Normal file
1
keyboards/sofle/rev1/rev1.c
Normal file
@ -0,0 +1 @@
|
||||
#include "sofle.h"
|
23
keyboards/sofle/rev1/rev1.h
Normal file
23
keyboards/sofle/rev1/rev1.h
Normal file
@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
||||
L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, \
|
||||
L40, L41, L42, L43, L44, R41, R42, R43, R44, R45 \
|
||||
) \
|
||||
{ \
|
||||
{ L00, L01, L02, L03, L04, L05 }, \
|
||||
{ L10, L11, L12, L13, L14, L15 }, \
|
||||
{ L20, L21, L22, L23, L24, L25 }, \
|
||||
{ L30, L31, L32, L33, L34, L35 }, \
|
||||
{ L40, L41, L42, L43, L44, L45 }, \
|
||||
{ R05, R04, R03, R02, R01, R00 }, \
|
||||
{ R15, R14, R13, R12, R11, R10 }, \
|
||||
{ R25, R24, R23, R22, R21, R20 }, \
|
||||
{ R35, R34, R33, R32, R31, R30 }, \
|
||||
{ R45, R44, R43, R42, R41, R40 } \
|
||||
}
|
||||
|
2
keyboards/sofle/rev1/rules.mk
Normal file
2
keyboards/sofle/rev1/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
ENCODER_ENABLE = yes
|
||||
OLED_DRIVER_ENABLE = yes
|
4
keyboards/sofle/rules.mk
Normal file
4
keyboards/sofle/rules.mk
Normal file
@ -0,0 +1,4 @@
|
||||
MCU = atmega32u4
|
||||
BOOTLOADER = caterina
|
||||
SPLIT_KEYBOARD = yes
|
||||
DEFAULT_FOLDER = sofle/rev1
|
1
keyboards/sofle/sofle.c
Normal file
1
keyboards/sofle/sofle.c
Normal file
@ -0,0 +1 @@
|
||||
#include "sofle.h"
|
5
keyboards/sofle/sofle.h
Normal file
5
keyboards/sofle/sofle.h
Normal file
@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef KEYBOARD_sofle_rev1
|
||||
#include "rev1.h"
|
||||
#endif
|
Reference in New Issue
Block a user