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.cols = cols
|
||||||
self.rows = rows
|
self.rows = rows
|
||||||
|
self.len_cols = len(cols)
|
||||||
|
self.len_rows = len(rows)
|
||||||
|
|
||||||
self.diode_orientation = diode_orientation
|
self.diode_orientation = diode_orientation
|
||||||
self.last_pressed_len = 0
|
self.last_pressed_len = 0
|
||||||
|
|
||||||
@ -36,6 +39,18 @@ class MatrixScanner:
|
|||||||
for pin in self.inputs:
|
for pin in self.inputs:
|
||||||
pin.switch_to_input(pull=digitalio.Pull.DOWN)
|
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):
|
def scan_for_pressed(self):
|
||||||
pressed = []
|
pressed = []
|
||||||
|
|
||||||
@ -44,9 +59,19 @@ class MatrixScanner:
|
|||||||
|
|
||||||
for iidx, ipin in enumerate(self.inputs):
|
for iidx, ipin in enumerate(self.inputs):
|
||||||
if ipin.value():
|
if ipin.value():
|
||||||
pressed.append(
|
if self.diode_orientation == DiodeOrientation.ROWS:
|
||||||
(oidx, iidx) if self.diode_orientation == DiodeOrientation.ROWS else (iidx, oidx) # noqa
|
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)
|
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