From 7f207062e9c001de4d7c7fe8100662206a691385 Mon Sep 17 00:00:00 2001 From: dherrada Date: Mon, 20 Dec 2021 16:51:27 -0500 Subject: [PATCH] Added navi10 by u/emdarcher --- boards/navi10/README.md | 17 +++++++++++++++++ boards/navi10/kb.py | 15 +++++++++++++++ boards/navi10/main.py | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 boards/navi10/README.md create mode 100644 boards/navi10/kb.py create mode 100644 boards/navi10/main.py diff --git a/boards/navi10/README.md b/boards/navi10/README.md new file mode 100644 index 0000000..3e2f4cc --- /dev/null +++ b/boards/navi10/README.md @@ -0,0 +1,17 @@ +# Navi10 / ナビ10 + +![Boardsource4x12](https://images.squarespace-cdn.com/content/v1/5a8723cb7131a5121206d464/1578004186455-N1BQI79BSCTK93QAQ76A/20191206_152537.jpg?format=1500w) + +A simple and fun navigation cluster macropad with exposed components. + +kb.py is designed to work with the Adafruit KB2040 + +Retailers (USA) +[KeyHive](https://keyhive.xyz/shop/navi10) + +Extensions enabled by default +- [Layers](https://github.com/KMKfw/kmk_firmware/tree/master/docs/layers.md) Need more keys than switches? Use layers. +- [MediaKeys](https://github.com/KMKfw/kmk_firmware/tree/master/docs/media_keys.md) Control volume and other media functions + +Common Extensions +- [Power](https://github.com/KMKfw/kmk_firmware/tree/master/docs/power.md) Powersaving features for battery life diff --git a/boards/navi10/kb.py b/boards/navi10/kb.py new file mode 100644 index 0000000..6d67fba --- /dev/null +++ b/boards/navi10/kb.py @@ -0,0 +1,15 @@ +import board + +from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard +from kmk.matrix import DiodeOrientation + + +class KMKKeyboard(_KMKKeyboard): + row_pins = (board.D10, board.MOSI, board.MISO, board.D8) + col_pins = ( + board.D4, + board.D7, + board.SCK, + ) + diode_orientation = DiodeOrientation.COLUMNS + i2c = board.I2C diff --git a/boards/navi10/main.py b/boards/navi10/main.py new file mode 100644 index 0000000..17970ba --- /dev/null +++ b/boards/navi10/main.py @@ -0,0 +1,40 @@ +from kb import KMKKeyboard +from kmk.extensions.media_keys import MediaKeys +from kmk.keys import KC +from kmk.modules.layers import Layers + +keyboard = KMKKeyboard() + +media = MediaKeys() +layers_ext = Layers() + +keyboard.extensions = [media] +keyboard.modules = [layers_ext] + +# Cleaner key names +_______ = KC.TRNS +XXXXXXX = KC.NO + +keyboard.keymap = [ + [ #Nav Keys + KC.INSERT, KC.HOME, KC.PGUP, + KC.DELETE, KC.END, KC.PGDOWN, + XXXXXXX, KC.UP, XXXXXXX, + KC.LEFT, KC.DOWN, KC.RIGHT + ], + [ #I3 + KC.LGUI(KC.L), KC.LGUI(KC.LSHIFT(KC.UP)), KC.LGUI(KC.LSHIFT(KC.P)), + KC.LGUI(KC.LSHIFT(KC.LEFT)), KC.LGUI(KC.LSHIFT(KC.DOWN)), KC.LGUI(KC.LSHIFT(KC.RIGHT)), + XXXXXXX, KC.LGUI(KC.UP), XXXXXXX, + KC.LGUI(KC.LEFT), KC.LGUI(KC.DOWN), KC.LGUI(KC.RIGHT) + ], + [ #Media keys + KC.MUTE, KC.MPLY, KC.MSTP, + KC.MRWD, XXXXXXX, KC.MFFD, + XXXXXXX, KC.VOLU, XXXXXXX, + KC.MPRV, KC.VOLD, KC.MNXT + ], +] + +if __name__ == '__main__': + keyboard.go()