Update Fri Dec 15 06:24:08 AM CST 2023

This commit is contained in:
2023-12-15 06:24:08 -06:00
parent 6128542526
commit 479074b8a5
16 changed files with 233 additions and 52 deletions

6
sweep-kmk/README.md Normal file
View File

@@ -0,0 +1,6 @@
# Ferris Sweep
The [Ferris Sweep](https://github.com/davidphilipbarr/Sweep) is a split, 34 key keyboard designed by David Philip Barr. It uses a Pro-Micro footprint.
It's based in turn on the Ferris by Philip Chevalier.
The default keymap is based on the [original Ferris default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default).

BIN
sweep-kmk/flash_nuke.uf2 Normal file

Binary file not shown.

36
sweep-kmk/kb.py Normal file
View File

@@ -0,0 +1,36 @@
# Ferris Sweep pinout translated from QMK repo
# CreditT: 2018-2020 ENDO Katsuhiro, David Philip Barr, Pierre Chevalier
import board
from storage import getmount
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.elite_pi import pinout as pins
from kmk.scanners.keypad import KeysScanner
# GPIO to key mapping - each line is a new row.
# fmt: off
_KEY_CFG_LEFT = [
pins[9], pins[16], pins[17], pins[18], pins[19],
pins[15], pins[14], pins[13], pins[12], pins[0],
pins[4], pins[5], pins[6], pins[7], pins[8],
pins[10], pins[11],
]
# fmt: on
class KMKKeyboard(_KMKKeyboard):
def __init__(self):
# create and register the scanner
self.matrix = KeysScanner(_KEY_CFG_LEFT)
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 21, 20, 19, 18, 17,
5, 6, 7, 8, 9, 26, 25, 24, 23, 22,
10, 11, 12, 13, 14, 31, 30, 29, 28, 27,
15, 16, 33, 32
]

113
sweep-kmk/main.py Normal file
View File

@@ -0,0 +1,113 @@
import board
from kb import KMKKeyboard
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.mouse_keys import MouseKeys
from kmk.modules.split import Split, SplitSide
from kmk.handlers.sequences import send_string
from kmk.modules.tapdance import TapDance
from kmk.modules.capsword import CapsWord
from kmk.modules.combos import Combos, Chord, Sequence
from kmk.modules.autoshift import Autoshift
keyboard = KMKKeyboard()
keyboard.debug_enabled = False
# TODO Comment one of these on each side
split_side = SplitSide.LEFT
#split_side = SplitSide.RIGHT
split = Split(
# split_flip=True,
data_pin=board.D1,
split_side=split_side,
split_target_left=False,
# Using the default wasn't working, try pio
use_pio=True,
uart_flip=True,
)
layers = Layers()
mouse_key = MouseKeys()
tapdance = TapDance()
tapdance.tap_time = 750
caps_word=CapsWord()
combos = Combos()
autoshift = Autoshift()
keyboard.modules = [layers, split, mouse_key, tapdance, caps_word, combos, autoshift]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
# Tap Dance
Q_ESC = KC.TD(
# Tap once for "Q"
KC.Q,
# Tap twice for "ESC"
KC.ESC,
)
# Layer tap for other home row keys
NAV_BKSP = KC.LT(1, KC.BSPC)
FUN_TAB = KC.LT(4, KC.TAB)
SYM_ENTER = KC.LT(3, KC.ENT)
NUM_SPC = KC.LT(2, KC.SPC)
# Send String
M_PASS1 = send_string("T3lg3Ranch!2023")
M_PASS2 = send_string("P0plarLake!2023")
# COMBOS
combos.combos = [
Chord((KC.F, KC.A), KC.LGUI),
Chord((KC.F, KC.S), KC.LALT),
Chord((KC.F, KC.D), KC.LCTL),
Chord((KC.J, KC.QUOT), KC.RGUI),
Chord((KC.J, KC.L), KC.RALT),
Chord((KC.J, KC.K), KC.RCTL),
Chord((KC.Z, KC.X), KC.LSFT)
]
# fmt: off
# flake8: noqa
keyboard.keymap = [
[ # 0 QWERTY/ BASE
Q_ESC, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,
KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.QUOT,
KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,
NAV_BKSP, FUN_TAB, SYM_ENTER, NUM_SPC,
],
[ # 1 NAVIGATION
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC.CAPSWORD, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT,
_______, _______, _______, M_PASS2, M_PASS1, _______, KC.HOME, KC.PGUP, KC.PGDN, KC.END,
_______, _______, _______, _______,
],
[ # 2 NUMBERS
KC.LBRC, KC.N7, KC.N8, KC.N9, KC.RBRC, _______, _______, _______, _______, _______,
KC.SCLN, KC.N4, KC.N5, KC.N6, KC.PLUS, _______, _______, _______, _______, _______,
KC.DOT, KC.N1, KC.N2, KC.N3, KC.BSLS, _______, _______, _______, _______, _______,
KC.N0, KC.MINS, _______, _______,
],
[ # 3 SYMBOLS
KC.LCBR, KC.AMPR, KC.ASTR, KC.LPRN, KC.RCBR, _______, _______, _______, _______, _______,
KC.COLN, KC.DLR, KC.PERC, KC.CIRC, KC.PLUS, _______, _______, _______, _______, _______,
KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.PIPE, _______, _______, _______, _______, _______,
KC.RPRN, KC.UNDS, _______, _______,
],
[ # 4 FUNCTION
_______, _______, _______, _______, _______, _______, KC.F7, KC.F8, KC.F9, KC.F10,
_______, _______, _______, _______, _______, _______, KC.F4, KC.F5, KC.F6, KC.F11,
_______, _______, _______, _______, _______, _______, KC.F1, KC.F2, KC.F3, KC.F12,
_______, _______, _______, _______,
],
]
if __name__ == "__main__":
keyboard.go()