Add support for a Planck Rev 6 spidered to a Feather M4 Express
This commit is contained in:
parent
10ca6816a2
commit
0c72554773
@ -16,6 +16,9 @@ class MatrixScanner:
|
||||
|
||||
self.cols = cols
|
||||
self.rows = rows
|
||||
self.len_cols = len(cols)
|
||||
self.len_rows = len(rows)
|
||||
|
||||
self.diode_orientation = diode_orientation
|
||||
self.last_pressed_len = 0
|
||||
|
||||
@ -36,6 +39,18 @@ class MatrixScanner:
|
||||
for pin in self.inputs:
|
||||
pin.switch_to_input(pull=digitalio.Pull.DOWN)
|
||||
|
||||
import kmk_keyboard
|
||||
|
||||
self.swap_indicies = getattr(kmk_keyboard, 'swap_indicies', {})
|
||||
self.rollover_cols_every_rows = getattr(
|
||||
kmk_keyboard,
|
||||
'rollover_cols_every_rows',
|
||||
self.len_rows,
|
||||
)
|
||||
|
||||
for k, v in self.swap_indicies.items():
|
||||
self.swap_indicies[v] = k
|
||||
|
||||
def scan_for_pressed(self):
|
||||
pressed = []
|
||||
|
||||
@ -44,9 +59,19 @@ class MatrixScanner:
|
||||
|
||||
for iidx, ipin in enumerate(self.inputs):
|
||||
if ipin.value():
|
||||
pressed.append(
|
||||
(oidx, iidx) if self.diode_orientation == DiodeOrientation.ROWS else (iidx, oidx) # noqa
|
||||
if self.diode_orientation == DiodeOrientation.ROWS:
|
||||
report_tuple = (oidx, iidx)
|
||||
else:
|
||||
new_oidx = oidx + self.len_cols * (iidx // self.rollover_cols_every_rows)
|
||||
new_iidx = iidx - self.rollover_cols_every_rows * (
|
||||
iidx // self.rollover_cols_every_rows
|
||||
)
|
||||
report_tuple = (new_iidx, new_oidx)
|
||||
|
||||
if report_tuple in self.swap_indicies:
|
||||
report_tuple = self.swap_indicies[report_tuple]
|
||||
|
||||
pressed.append(report_tuple)
|
||||
|
||||
opin.value(False)
|
||||
|
||||
|
39
user_keymaps/klardotsh/feather_m4_express/klarank.py
Normal file
39
user_keymaps/klardotsh/feather_m4_express/klarank.py
Normal file
@ -0,0 +1,39 @@
|
||||
from kmk.consts import DiodeOrientation, UnicodeModes
|
||||
from kmk.entrypoints.handwire.circuitpython_samd51 import main
|
||||
from kmk.keycodes import KC
|
||||
from kmk.macros.simple import send_string
|
||||
from kmk.macros.unicode import unicode_string_sequence
|
||||
from kmk.pins import Pin as P
|
||||
from kmk.types import AttrDict
|
||||
|
||||
# physical, visible cols (SCK, MO, MI, RX, TX, D4)
|
||||
# physical, visible rows (10, 11, 12, 13) (9, 6, 5, SCL)
|
||||
cols = (P.SCK, P.MOSI, P.MISO, P.RX, P.TX, P.D4)
|
||||
rows = (P.D10, P.D11, P.D12, P.D13, P.D9, P.D6, P.D5, P.SCL)
|
||||
|
||||
swap_indicies = {
|
||||
(3, 3): (3, 9),
|
||||
(3, 4): (3, 10),
|
||||
(3, 5): (3, 11),
|
||||
}
|
||||
|
||||
rollover_cols_every_rows = 4
|
||||
|
||||
diode_orientation = DiodeOrientation.COLUMNS
|
||||
|
||||
|
||||
# ------------------User level config variables ---------------------------------------
|
||||
unicode_mode = UnicodeModes.LINUX
|
||||
debug_enable = True
|
||||
|
||||
keymap = [
|
||||
[
|
||||
[KC.A, KC.E, KC.I, KC.M, KC.Q, KC.U, KC.N1, KC.N5, KC.N9, KC.HASH, KC.AMPR, KC.UNDS],
|
||||
[KC.B, KC.F, KC.J, KC.N, KC.R, KC.V, KC.N2, KC.N6, KC.N0, KC.DOLLAR, KC.ASTR, KC.LCBR],
|
||||
[KC.C, KC.G, KC.K, KC.O, KC.S, KC.W, KC.N3, KC.N7, KC.EXCLAIM, KC.PERCENT, KC.LPRN, KC.RCBR],
|
||||
[KC.D, KC.H, KC.L, KC.P, KC.T, KC.X, KC.N4, KC.N8, KC.AT, KC.CIRC, KC.RPRN, KC.PIPE],
|
||||
],
|
||||
]
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user