From 9b611f4e88e4d2b0806be5d6dbd1800e444e89a3 Mon Sep 17 00:00:00 2001 From: Rorian04 <114996287+Rorian04@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:43:14 +0530 Subject: [PATCH] added rorian04_kbd files hand wired one hand keyboard made with waveshare rp2040 mcu --- keyboards/rorian04_kbd/keyboard.json | 56 ++++++++ .../rorian04_kbd/keymaps/default/config.h | 8 ++ .../rorian04_kbd/keymaps/default/keymap.c | 13 ++ keyboards/rorian04_kbd/keymaps/vial/config.h | 18 +++ keyboards/rorian04_kbd/keymaps/vial/keymap.c | 126 ++++++++++++++++++ keyboards/rorian04_kbd/keymaps/vial/rules.mk | 5 + keyboards/rorian04_kbd/keymaps/vial/vial.json | 23 ++++ keyboards/rorian04_kbd/rules.mk | 1 + 8 files changed, 250 insertions(+) create mode 100644 keyboards/rorian04_kbd/keyboard.json create mode 100644 keyboards/rorian04_kbd/keymaps/default/config.h create mode 100644 keyboards/rorian04_kbd/keymaps/default/keymap.c create mode 100644 keyboards/rorian04_kbd/keymaps/vial/config.h create mode 100644 keyboards/rorian04_kbd/keymaps/vial/keymap.c create mode 100644 keyboards/rorian04_kbd/keymaps/vial/rules.mk create mode 100644 keyboards/rorian04_kbd/keymaps/vial/vial.json create mode 100644 keyboards/rorian04_kbd/rules.mk diff --git a/keyboards/rorian04_kbd/keyboard.json b/keyboards/rorian04_kbd/keyboard.json new file mode 100644 index 00000000000..2a12f77d331 --- /dev/null +++ b/keyboards/rorian04_kbd/keyboard.json @@ -0,0 +1,56 @@ +{ + "manufacturer": "Rorian04", + "keyboard_name": "R4_onehand", + "maintainer": "Rorian04", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP8", "GP9", "GP12", "GP27", "GP26", "GP29"], + "rows": ["GP28", "GP15", "GP14", "GP11"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/rorian04_kbd/keymaps/default/config.h b/keyboards/rorian04_kbd/keymaps/default/config.h new file mode 100644 index 00000000000..309b2d1fe30 --- /dev/null +++ b/keyboards/rorian04_kbd/keymaps/default/config.h @@ -0,0 +1,8 @@ +//copyright info + +#pragma once + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/rorian04_kbd/keymaps/default/keymap.c b/keyboards/rorian04_kbd/keymaps/default/keymap.c new file mode 100644 index 00000000000..b6001752a9e --- /dev/null +++ b/keyboards/rorian04_kbd/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, + KC_LALT, KC_SPC, KC_TAB + ) +}; \ No newline at end of file diff --git a/keyboards/rorian04_kbd/keymaps/vial/config.h b/keyboards/rorian04_kbd/keymaps/vial/config.h new file mode 100644 index 00000000000..1a6cc0dc684 --- /dev/null +++ b/keyboards/rorian04_kbd/keymaps/vial/config.h @@ -0,0 +1,18 @@ +//copyright info + +#pragma once + +// Define options +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 +#define VIAL_KEYBOARD_UID {0x7C, 0x3D, 0x40, 0xD2, 0xE4, 0x39, 0xF9, 0xBB} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 5 } +#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral +#define RGBLIGHT_LAYERS +#define WS2812_DI_PIN GP16 +#define RGBLIGHT_LED_COUNT 1 +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB +#define RGBLIGHT_SLEEP +#define USB_SUSPEND_WAKEUP_DELAY 500 +#define FORCE_NKRO +#define HOLD_ON_OTHER_KEY_PRESS diff --git a/keyboards/rorian04_kbd/keymaps/vial/keymap.c b/keyboards/rorian04_kbd/keymaps/vial/keymap.c new file mode 100644 index 00000000000..52ed949e731 --- /dev/null +++ b/keyboards/rorian04_kbd/keymaps/vial/keymap.c @@ -0,0 +1,126 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, QK_BOOT, + KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_LALT, KC_SPC, KC_TAB + ), + [1] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [2] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [3] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [4] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [5] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [6] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [7] = LAYOUT_split_3x6_3( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ) +}; + +#define value 40 +// Change LED color based on layer +const rgblight_segment_t PROGMEM layer0_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 85, 255, value} // color if layer 0 +); + +const rgblight_segment_t PROGMEM layer1_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 125, 255, value} // color if layer 1 +); + +const rgblight_segment_t PROGMEM layer2_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 170, 255, value} // color if layer 2 +); + +const rgblight_segment_t PROGMEM layer3_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 200, 255, value} // color if layer 3 +); + +const rgblight_segment_t PROGMEM layer4_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 45, 255, value} // color if layer 4 +); + +const rgblight_segment_t PROGMEM layer5_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 85, 0, value} // color if layer 5 +); + +const rgblight_segment_t PROGMEM layer6_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, 0, 255, value} // color if layer 6 +); + +const rgblight_segment_t PROGMEM layer7_rgb[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_OFF} // color if layer 6 +); + + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer0_rgb, // Bottom layer + layer1_rgb, // Overrides above layers + layer2_rgb, // Overrides above layers + layer3_rgb, // Overrides above layers + layer4_rgb, // Overrides above layers + layer5_rgb, // Overrides above layers + layer6_rgb, // Overrides above layers + layer7_rgb // Overrides above layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = rgb_layers; +} + + +//bellow code block checks and changes state of LED +layer_state_t default_layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + rgblight_set_layer_state(5, layer_state_cmp(state, 5)); + rgblight_set_layer_state(6, layer_state_cmp(state, 6)); + rgblight_set_layer_state(7, layer_state_cmp(state, 7)); + return state; +} \ No newline at end of file diff --git a/keyboards/rorian04_kbd/keymaps/vial/rules.mk b/keyboards/rorian04_kbd/keymaps/vial/rules.mk new file mode 100644 index 00000000000..565e3da69c4 --- /dev/null +++ b/keyboards/rorian04_kbd/keymaps/vial/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +KEY_LOCK_ENABLE = yes +RGBLIGHT_ENABLE = yes +WS2812_DRIVER = vendor \ No newline at end of file diff --git a/keyboards/rorian04_kbd/keymaps/vial/vial.json b/keyboards/rorian04_kbd/keymaps/vial/vial.json new file mode 100644 index 00000000000..19258310fea --- /dev/null +++ b/keyboards/rorian04_kbd/keymaps/vial/vial.json @@ -0,0 +1,23 @@ +{ + "name": "rorian04_kbd", + "matrix": { + "rows": 4, + "cols": 6 + }, + "layouts": { + "keymap": [ + [{"x":3},"0,3"], + [{"y":-0.75,"x":2},"0,2",{"x":1},"0,4"], + [{"y":-0.75},"0,0","0,1",{"x":3},"0,5"], + [{"y":-0.5,"x":3},"1,3"], + [{"y":-0.75,"x":2},"1,2",{"x":1},"1,4"], + [{"y":-0.75},"1,0","1,1",{"x":3},"1,5"], + [{"y":-0.5,"x":3},"2,3"], + [{"y":-0.75,"x":2},"2,2",{"x":1},"2,4"], + [{"y":-0.75},"2,0","2,1",{"x":3},"2,5"], + [{"x":4},"3,3"], + [{"y":-0.75,"x":5},"3,4"], + [{"y":-0.75,"x":6},"3,5"] + ] + } +} \ No newline at end of file diff --git a/keyboards/rorian04_kbd/rules.mk b/keyboards/rorian04_kbd/rules.mk new file mode 100644 index 00000000000..9c2acd2109f --- /dev/null +++ b/keyboards/rorian04_kbd/rules.mk @@ -0,0 +1 @@ +#this file is left empty intentionally \ No newline at end of file