Browse Source

[Keyboard] Add Irispad (#23724)

* Add Irispad

* Fix x positions for RGB LEDs

* Add encoder/bootmagic settings in info.json and run format-json

* Add missing info.json

* Fix README formatting
Danny 2 years ago
parent
commit
8f2085421e

+ 8 - 0
keyboards/keebio/irispad/info.json

@@ -0,0 +1,8 @@
+{
+    "manufacturer": "Keebio",
+    "url": "https://keeb.io",
+    "maintainer": "Keebio",
+    "usb": {
+        "vid": "0xCB10"
+    }
+}

+ 43 - 0
keyboards/keebio/irispad/keymaps/default/keymap.json

@@ -0,0 +1,43 @@
+{
+    "config": { "features": {"encoder_map": true, "tri_layer": true} },
+    "keyboard": "keebio/irispad",
+    "keymap": "default",
+    "layout": "LAYOUT",
+    "layers": [
+        [
+            "QK_GESC", "KC_1"   , "KC_2"   , "KC_3"   , "KC_4"   , "KC_5"   ,
+            "KC_TAB" , "KC_Q"   , "KC_W"   , "KC_E"   , "KC_R"   , "KC_T"   ,
+            "KC_LCTL", "KC_A"   , "KC_S"   , "KC_D"   , "KC_F"   , "KC_G"   ,
+            "KC_LSFT", "KC_Z"   , "KC_X"   , "KC_C"   , "KC_V"   , "KC_B"   , "TL_UPPR",
+                                                        "KC_LGUI", "TL_LOWR", "KC_ENT"
+        ],
+        [
+            "KC_TILD", "KC_EXLM", "KC_AT"  , "KC_HASH", "KC_DLR" , "KC_PERC",
+            "KC_GRV" , "_______", "KC_UP"  , "_______", "QK_BOOT", "_______",
+            "KC_DEL" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "KC_LBRC",
+            "RGB_MOD", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN",
+                                                        "_______", "_______", "KC_DEL"
+        ],
+        [
+            "KC_F6" ,  "KC_F1"  , "KC_F2"  , "KC_F3"  , "KC_F4"  , "KC_F5"  ,
+            "KC_F12",  "KC_F7"  , "KC_F8"  , "KC_F9"  , "KC_F10" , "KC_F11" ,
+            "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS",
+            "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN",
+                                                        "_______", "_______", "_______"
+        ]
+    ],
+    "encoders": [
+        [
+            {"ccw": "KC_PGUP", "cw": "KC_PGDN"},
+            {"ccw": "KC_VOLD", "cw": "KC_VOLU"}
+        ],
+        [
+            {"ccw": "_______", "cw": "_______"},
+            {"ccw": "_______", "cw": "_______"}
+        ],
+        [
+            {"ccw": "_______", "cw": "_______"},
+            {"ccw": "_______", "cw": "_______"}
+        ]
+    ]
+}

+ 43 - 0
keyboards/keebio/irispad/keymaps/via/keymap.json

@@ -0,0 +1,43 @@
+{
+    "config": { "features": {"encoder_map": true, "via": true} },
+    "keyboard": "keebio/irispad",
+    "keymap": "via",
+    "layout": "LAYOUT",
+    "layers": [
+        [
+            "QK_GESC", "KC_1"   , "KC_2"   , "KC_3"   , "KC_4"   , "KC_5"   ,
+            "KC_TAB" , "KC_Q"   , "KC_W"   , "KC_E"   , "KC_R"   , "KC_T"   ,
+            "KC_LCTL", "KC_A"   , "KC_S"   , "KC_D"   , "KC_F"   , "KC_G"   ,
+            "KC_LSFT", "KC_Z"   , "KC_X"   , "KC_C"   , "KC_V"   , "KC_B"   , "TL_UPPR",
+                                                        "KC_LGUI", "TL_LOWR", "KC_ENT"
+        ],
+        [
+            "KC_TILD", "KC_EXLM", "KC_AT"  , "KC_HASH", "KC_DLR" , "KC_PERC",
+            "KC_GRV" , "_______", "KC_UP"  , "_______", "QK_BOOT", "_______",
+            "KC_DEL" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "KC_LBRC",
+            "RGB_MOD", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN",
+                                                        "_______", "_______", "KC_DEL"
+        ],
+        [
+            "KC_F6" ,  "KC_F1"  , "KC_F2"  , "KC_F3"  , "KC_F4"  , "KC_F5"  ,
+            "KC_F12",  "KC_F7"  , "KC_F8"  , "KC_F9"  , "KC_F10" , "KC_F11" ,
+            "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS",
+            "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN",
+                                                        "_______", "_______", "_______"
+        ]
+    ],
+    "encoders": [
+        [
+            {"ccw": "KC_PGUP", "cw": "KC_PGDN"},
+            {"ccw": "KC_VOLD", "cw": "KC_VOLU"}
+        ],
+        [
+            {"ccw": "_______", "cw": "_______"},
+            {"ccw": "_______", "cw": "_______"}
+        ],
+        [
+            {"ccw": "_______", "cw": "_______"},
+            {"ccw": "_______", "cw": "_______"}
+        ]
+    ]
+}

+ 21 - 0
keyboards/keebio/irispad/readme.md

@@ -0,0 +1,21 @@
+# Irispad
+
+An ergonomic gamepad based off of the Iris and sold by Keebio. [More info at Keebio](https://keeb.io).
+
+* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+* Hardware Supported: RP2040
+* Hardware Availability: [Keebio](https://keeb.io)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make keebio/irispad/rev8:default
+
+Example of flashing this keyboard:
+
+    make keebio/irispad/rev8:default:flash
+
+See [build environment setup](https://docs.qmk.fm/#/newbs_getting_started) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+
+A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-rev6-build-guide)
+
+Note: The Irispad PCB is a repurposed Iris Rev. 8 PCB from a batch that had all of the diodes flipped, so if you would like to use a regular Iris Rev. 8 PCB, you will need to change `ROW2COL` to `COL2ROW` in `keyboard.json`.

+ 11 - 0
keyboards/keebio/irispad/rev8/config.h

@@ -0,0 +1,11 @@
+// Copyright 2024 Danny Nguyen (danny@keeb.io)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
+
+#define I2C_DRIVER I2CD2
+#define I2C1_SDA_PIN GP10
+#define I2C1_SCL_PIN GP11

+ 151 - 0
keyboards/keebio/irispad/rev8/info.json

@@ -0,0 +1,151 @@
+{
+    "keyboard_name": "Irispad Rev. 8",
+    "bootloader": "rp2040",
+    "diode_direction": "ROW2COL",
+    "encoder": {
+        "rotary": [
+            {"pin_a": "GP14", "pin_b": "GP15"},
+            {"pin_a": "GP26", "pin_b": "GP25"}
+        ]
+    },
+    "features": {
+        "bootmagic": true,
+        "encoder": true,
+        "extrakey": true,
+        "mousekey": true,
+        "rgb_matrix": true
+    },
+    "matrix_pins": {
+        "cols": ["GP2", "GP3", "GP29", "GP27", "GP6", "GP5"],
+        "rows": ["GP0", "GP1", "GP7", "GP16", "GP28"]
+    },
+    "processor": "RP2040",
+    "rgb_matrix": {
+        "animations": {
+            "alphas_mods": true,
+            "band_pinwheel_sat": true,
+            "band_pinwheel_val": true,
+            "band_sat": true,
+            "band_spiral_sat": true,
+            "band_spiral_val": true,
+            "band_val": true,
+            "breathing": true,
+            "cycle_all": true,
+            "cycle_left_right": true,
+            "cycle_out_in": true,
+            "cycle_out_in_dual": true,
+            "cycle_pinwheel": true,
+            "cycle_spiral": true,
+            "cycle_up_down": true,
+            "digital_rain": true,
+            "dual_beacon": true,
+            "gradient_left_right": true,
+            "gradient_up_down": true,
+            "hue_breathing": true,
+            "hue_pendulum": true,
+            "hue_wave": true,
+            "jellybean_raindrops": true,
+            "multisplash": true,
+            "pixel_flow": true,
+            "pixel_fractal": true,
+            "pixel_rain": true,
+            "rainbow_beacon": true,
+            "rainbow_moving_chevron": true,
+            "rainbow_pinwheels": true,
+            "raindrops": true,
+            "solid_multisplash": true,
+            "solid_reactive": true,
+            "solid_reactive_cross": true,
+            "solid_reactive_multicross": true,
+            "solid_reactive_multinexus": true,
+            "solid_reactive_multiwide": true,
+            "solid_reactive_nexus": true,
+            "solid_reactive_simple": true,
+            "solid_reactive_wide": true,
+            "solid_splash": true,
+            "splash": true,
+            "typing_heatmap": true
+        },
+        "driver": "ws2812",
+        "layout": [
+            {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4},
+            {"x": 18, "y": 5, "flags": 2},
+            {"matrix": [0, 1], "x": 37, "y": 5, "flags": 4},
+            {"matrix": [0, 2], "x": 76, "y": 2, "flags": 4},
+            {"x": 91, "y": 1, "flags": 2},
+            {"matrix": [0, 3], "x": 110, "y": 0, "flags": 4},
+            {"matrix": [0, 4], "x": 146, "y": 5, "flags": 4},
+            {"x": 165, "y": 3, "flags": 2},
+            {"matrix": [0, 5], "x": 183, "y": 3, "flags": 4},
+            {"matrix": [1, 5], "x": 183, "y": 17, "flags": 4},
+            {"matrix": [1, 4], "x": 137, "y": 15, "flags": 4},
+            {"matrix": [1, 3], "x": 110, "y": 13, "flags": 4},
+            {"matrix": [1, 2], "x": 73, "y": 15, "flags": 4},
+            {"matrix": [1, 1], "x": 37, "y": 18, "flags": 4},
+            {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4},
+            {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+            {"matrix": [2, 1], "x": 37, "y": 32, "flags": 4},
+            {"matrix": [2, 2], "x": 73, "y": 28, "flags": 4},
+            {"matrix": [2, 3], "x": 110, "y": 27, "flags": 4},
+            {"matrix": [2, 4], "x": 137, "y": 28, "flags": 4},
+            {"matrix": [2, 5], "x": 183, "y": 30, "flags": 4},
+            {"matrix": [3, 5], "x": 183, "y": 43, "flags": 4},
+            {"matrix": [3, 4], "x": 146, "y": 42, "flags": 4},
+            {"matrix": [3, 3], "x": 110, "y": 40, "flags": 4},
+            {"x": 91, "y": 50, "flags": 2},
+            {"matrix": [3, 2], "x": 73, "y": 42, "flags": 4},
+            {"matrix": [3, 1], "x": 37, "y": 45, "flags": 4},
+            {"x": 18, "y": 43, "flags": 2},
+            {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4},
+            {"matrix": [4, 5], "x": 224, "y": 52, "flags": 4},
+            {"matrix": [4, 4], "x": 206, "y": 64, "flags": 4},
+            {"x": 183, "y": 58, "flags": 2},
+            {"matrix": [4, 3], "x": 165, "y": 58, "flags": 4},
+            {"matrix": [4, 2], "x": 128, "y": 47, "flags": 4}
+        ],
+        "max_brightness": 180,
+        "sleep": true
+    },
+    "usb": {
+        "device_version": "8.0.0",
+        "pid": "0x8356"
+    },
+    "ws2812": {
+        "driver": "vendor",
+        "pin": "GP9"
+    },
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0.375},
+                {"matrix": [0, 1], "x": 1, "y": 0.375},
+                {"matrix": [0, 2], "x": 2, "y": 0.125},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0.125},
+                {"matrix": [0, 5], "x": 5, "y": 0.25},
+                {"matrix": [1, 0], "x": 0, "y": 1.375},
+                {"matrix": [1, 1], "x": 1, "y": 1.375},
+                {"matrix": [1, 2], "x": 2, "y": 1.125},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1.125},
+                {"matrix": [1, 5], "x": 5, "y": 1.25},
+                {"matrix": [2, 0], "x": 0, "y": 2.375},
+                {"matrix": [2, 1], "x": 1, "y": 2.375},
+                {"matrix": [2, 2], "x": 2, "y": 2.125},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2.125},
+                {"matrix": [2, 5], "x": 5, "y": 2.25},
+                {"matrix": [3, 0], "x": 0, "y": 3.375},
+                {"matrix": [3, 1], "x": 1, "y": 3.375},
+                {"matrix": [3, 2], "x": 2, "y": 3.125},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3.125},
+                {"matrix": [3, 5], "x": 5, "y": 3.25},
+                {"matrix": [4, 5], "x": 6.15, "y": 3.75},
+                {"matrix": [4, 2], "x": 3.5, "y": 4.25},
+                {"matrix": [4, 3], "x": 4.5, "y": 4.375},
+                {"matrix": [4, 4], "x": 5.6, "y": 4.75}
+            ]
+        }
+    }
+}

+ 1 - 0
keyboards/keebio/irispad/rev8/rules.mk

@@ -0,0 +1 @@
+SERIAL_DRIVER = vendor