diff --git a/boards/redox/redox_rp2040/TODO.md b/boards/redox/redox_rp2040/TODO.md new file mode 100644 index 000000000..67c7b1828 --- /dev/null +++ b/boards/redox/redox_rp2040/TODO.md @@ -0,0 +1,8 @@ +- [ ] Ver cómo accedo a cada capa. + - [Capas](https://github.com/KMKfw/kmk_firmware/blob/master/docs/en/layers.md) +- [ ] Agregar capa para mouse y flechas. + - [Mouse](https://github.com/KMKfw/kmk_firmware/blob/master/docs/en/mouse_keys.md) + - [Teclado (keycodes)](https://github.com/KMKfw/kmk_firmware/blob/master/docs/en/keycodes.md) +- [ ] Agregar capa para multimedia + - [Media](https://github.com/KMKfw/kmk_firmware/blob/master/docs/en/media_keys.md) +- [ ] Home row mods. \ No newline at end of file diff --git a/boards/redox/redox_rp2040/kb.py b/boards/redox/redox_rp2040/kb.py new file mode 100644 index 000000000..d21a3a35d --- /dev/null +++ b/boards/redox/redox_rp2040/kb.py @@ -0,0 +1,29 @@ +import board +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.scanners import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.GP22, + board.GP21, + board.GP20, + board.GP19, + board.GP18) + col_pins = (board.GP6, + board.GP7, + board.GP8, + board.GP9, + board.GP10, + board.GP11, + board.GP12) + + diode_orientation = DiodeOrientation.COL2ROW + # flake8: noqa + # fmt: off + coord_mapping = [ + 0, 1, 2, 3, 4, 5, 6, 41, 40, 39, 38, 37, 36, 35, + 7, 8, 9, 10, 11, 12, 13, 48, 47, 46, 45, 44, 43, 42, + 14, 15, 16, 17, 18, 19, 54, 53, 52, 51, 50, 49, + 21, 22, 23, 24, 25, 26, 20, 27, 62, 55, 61, 60, 59, 58, 57, 56, + 28, 29, 30, 31, 32, 33, 34, 69, 68, 67, 66, 65, 64, 63, + ] \ No newline at end of file diff --git a/boards/redox/redox_rp2040/main.py b/boards/redox/redox_rp2040/main.py new file mode 100644 index 000000000..cac4064b7 --- /dev/null +++ b/boards/redox/redox_rp2040/main.py @@ -0,0 +1,97 @@ +import board +from kb import KMKKeyboard +from kmk.consts import UnicodeMode +from kmk.extensions.media_keys import MediaKeys +from kmk.keys import KC +from kmk.modules.holdtap import HoldTap +from kmk.modules.layers import Layers +from kmk.modules.mouse_keys import MouseKeys +from kmk.modules.split import Split, SplitSide, SplitType +from storage import getmount + +keyboard = KMKKeyboard() +keyboard.debug_enabled = True +keyboard.unicode_mode = UnicodeMode.LINUX +keyboard.extensions.append(MediaKeys()) +keyboard.modules.append(HoldTap()) +keyboard.modules.append(Layers()) +keyboard.modules.append(MouseKeys()) + +split_side = SplitSide.RIGHT if str(getmount('/').label)[-1] == 'R' else SplitSide.LEFT + +if split_side == SplitSide.LEFT: + data_pin = board.GP0 + data_pin2 = board.GP1 +else: + data_pin = board.GP1 + data_pin2 = board.GP0 + +split = Split( + split_side=split_side, + split_target_left=False, + split_type=SplitType.UART, + split_flip=True, + uart_interval=20, + data_pin=data_pin, + data_pin2=data_pin2, + use_pio=True, +) +keyboard.modules.append(split) + +XXXXX = KC.NO # Unmapped key +_____ = KC.TRNS # Transparent key + +# Home row mods |PRESSED |HOLD | +AGUI = KC.HT(KC.A, KC.LGUI) # |A |GUI | +SALT = KC.HT(KC.S, KC.LALT) # |S |ALT | +DSFT = KC.HT(KC.D, KC.LSFT) # |D |SFT | +FCTL = KC.HT(KC.F, KC.LCTRL) # |F |CTRL | + +JCTL = KC.HT(KC.J, KC.RCTRL) # |J |CTRL | +KSFT = KC.HT(KC.K, KC.RSFT) # |K |SFT | +LALT = KC.HT(KC.L, KC.RALT) # |L |ALT | +CGUI = KC.HT(KC.SCLN, KC.RGUI) # |; |GUI | + +LT_MINS = KC.LT(2, KC.MINS) +LT_PGUP = KC.LT(3, KC.PGUP) +LT_END = KC.LT(3, KC.END) +LA_PAST = KC.HT(KC.PAST, KC.LALT) +LC_BSLS = KC.HT(KC.BSLS, KC.LCTL) + +keyboard.keymap = [ + [ + # QWERTY + # fmt: off + # |--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------| + KC.ESC ,KC.N1 ,KC.N2 ,KC.N3 ,KC.N4 ,KC.N5 ,KC.MINS , KC.EQL ,KC.N6 ,KC.N7 ,KC.N8 ,KC.N9 ,KC.N0 ,XXXXX , + # |--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------| + KC.TAB ,KC.Q ,KC.W ,KC.E ,KC.R ,KC.T ,KC.LBRC , KC.RBRC ,KC.Y ,KC.U ,KC.I ,KC.O ,KC.P ,KC.BSLS , + # |--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------| + KC.LCAP ,AGUI ,SALT ,DSFT ,FCTL ,KC.G , KC.H ,JCTL ,KSFT ,LALT ,CGUI ,KC.QUOT , + # |--------|--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------|--------| + KC.LSFT ,KC.Z ,KC.X ,KC.C ,KC.V ,KC.B ,KC.PGDN ,KC.PGUP , KC.HOME ,KC.END ,KC.N ,KC.M ,KC.COMM ,KC.DOT ,KC.SLSH ,KC.RSFT , + # |--------|--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------|--------| + KC.LGUI ,KC.PPLS ,KC.PMNS ,XXXXX , XXXXX ,KC.BSPC ,KC.DEL , KC.ENT ,KC.SPC , KC.SPC ,KC.LEFT ,KC.DOWN ,KC.UP ,KC.RGHT , + # |--------|--------|--------|--------|-----------------|--------|--------| |--------|--------|-----------------|--------|--------|--------|--------| + ], + [ + # SYMB + # fmt: off + # |--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------| + KC.GRV ,KC.F1 ,KC.F2 ,KC.F3 ,KC.F4 ,KC.F5 ,XXXXX , XXXXX ,KC.F6 ,KC.F7 ,KC.F8 ,KC.F9 ,KC.F10 ,XXXXX , + # |--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------| + _____ ,KC.EXLM ,KC.AT ,KC.LCBR ,KC.RCBR ,KC.PIPE ,_____ , _____ ,KC.PSLS ,KC.P7 ,KC.P8 ,KC.P9 ,KC.PMNS ,XXXXX , + # |--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------| + _____ ,KC.HASH ,KC.DLR ,KC.LBRC ,KC.RBRC ,KC.GRV , KC.PAST ,KC.P4 ,KC.P5 ,KC.P6 ,KC.PPLS ,XXXXX , + # |--------|--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------|--------| + _____ ,KC.PERC ,KC.CIRC ,KC.LPRN ,KC.RPRN ,KC.TILD ,_____ ,_____ , _____ ,_____ ,XXXXX ,KC.P1 ,KC.P2 ,KC.P3 ,KC.PENT ,XXXXX , + # |--------|--------|--------|--------|--------|--------|--------|--------| |--------|--------|--------|--------|--------|--------|--------|--------| + _____ ,_____ ,_____ ,_____ , _____ ,_____ ,_____ , _____ ,_____ , KC.RALT ,KC.P0 ,KC.PDOT ,KC.PENT ,XXXXX , + # |--------|--------|--------|--------|-----------------|--------|--------| |--------|--------|-----------------|--------|--------|--------|--------| + ], + +] + +if __name__ == '__main__': + keyboard.go() +