Skip to content

redox with rp2040 mcu #937

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions boards/redox/redox_rp2040/TODO.md
Original file line number Diff line number Diff line change
@@ -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.
29 changes: 29 additions & 0 deletions boards/redox/redox_rp2040/kb.py
Original file line number Diff line number Diff line change
@@ -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,
]
97 changes: 97 additions & 0 deletions boards/redox/redox_rp2040/main.py
Original file line number Diff line number Diff line change
@@ -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()