From 7b9d471ba0ec0da3d4127940979247ae2f7fcfec Mon Sep 17 00:00:00 2001 From: Dam Vu Duy Date: Sun, 19 Mar 2023 00:32:29 +0700 Subject: [PATCH] [Keyboard] Add Coban Pad 3A (#19634) --- keyboards/coban/pad3a/config.h | 23 +++++++++++++++ keyboards/coban/pad3a/info.json | 28 ++++++++++++++++++ .../coban/pad3a/keymaps/default/keymap.c | 27 +++++++++++++++++ .../coban/pad3a/keymaps/default/rules.mk | 1 + keyboards/coban/pad3a/keymaps/via/config.h | 18 ++++++++++++ keyboards/coban/pad3a/keymaps/via/keymap.c | 27 +++++++++++++++++ keyboards/coban/pad3a/keymaps/via/rules.mk | 3 ++ keyboards/coban/pad3a/pad3a.c | 29 +++++++++++++++++++ keyboards/coban/pad3a/readme.md | 24 +++++++++++++++ keyboards/coban/pad3a/rules.mk | 3 ++ 10 files changed, 183 insertions(+) create mode 100644 keyboards/coban/pad3a/config.h create mode 100644 keyboards/coban/pad3a/info.json create mode 100644 keyboards/coban/pad3a/keymaps/default/keymap.c create mode 100644 keyboards/coban/pad3a/keymaps/default/rules.mk create mode 100644 keyboards/coban/pad3a/keymaps/via/config.h create mode 100644 keyboards/coban/pad3a/keymaps/via/keymap.c create mode 100644 keyboards/coban/pad3a/keymaps/via/rules.mk create mode 100644 keyboards/coban/pad3a/pad3a.c create mode 100644 keyboards/coban/pad3a/readme.md create mode 100644 keyboards/coban/pad3a/rules.mk diff --git a/keyboards/coban/pad3a/config.h b/keyboards/coban/pad3a/config.h new file mode 100644 index 00000000000..9483086fb48 --- /dev/null +++ b/keyboards/coban/pad3a/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 RyanDam (https://github.com/RyanDam) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define ENCODERS_PAD_A { GP5 } +#define ENCODERS_PAD_B { GP4 } + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/coban/pad3a/info.json b/keyboards/coban/pad3a/info.json new file mode 100644 index 00000000000..f1b9053fc9d --- /dev/null +++ b/keyboards/coban/pad3a/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "Coban Pad 3A", + "name": "Coban Pad 3A", + "url": "https://cobanstationery.com", + "maintainer": "Coban Stationery", + "manufacturer": "Coban Stationery", + "usb": { + "pid": "0xCC3A", + "vid": "0xCB3A", + "device_version": "1.1.0" + }, + "matrix_pins": { + "direct": [ + ["GP8", "GP7", "GP6"] + ] + }, + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Mute", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Next", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"Push", "x":3, "y":0, "matrix": [0, 2]}, + ] + } + } +} diff --git a/keyboards/coban/pad3a/keymaps/default/keymap.c b/keyboards/coban/pad3a/keymaps/default/keymap.c new file mode 100644 index 00000000000..1842ed983c6 --- /dev/null +++ b/keyboards/coban/pad3a/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 RyanDam (https://github.com/RyanDam) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_MUTE, KC_MNXT, KC_MPLY), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif diff --git a/keyboards/coban/pad3a/keymaps/default/rules.mk b/keyboards/coban/pad3a/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/coban/pad3a/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/coban/pad3a/keymaps/via/config.h b/keyboards/coban/pad3a/keymaps/via/config.h new file mode 100644 index 00000000000..bd1b2fc7afa --- /dev/null +++ b/keyboards/coban/pad3a/keymaps/via/config.h @@ -0,0 +1,18 @@ +/* Copyright 2021 RyanDam (https://github.com/RyanDam) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/coban/pad3a/keymaps/via/keymap.c b/keyboards/coban/pad3a/keymaps/via/keymap.c new file mode 100644 index 00000000000..1842ed983c6 --- /dev/null +++ b/keyboards/coban/pad3a/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 RyanDam (https://github.com/RyanDam) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_MUTE, KC_MNXT, KC_MPLY), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif diff --git a/keyboards/coban/pad3a/keymaps/via/rules.mk b/keyboards/coban/pad3a/keymaps/via/rules.mk new file mode 100644 index 00000000000..1189f4ad192 --- /dev/null +++ b/keyboards/coban/pad3a/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/coban/pad3a/pad3a.c b/keyboards/coban/pad3a/pad3a.c new file mode 100644 index 00000000000..bd07a83a8f2 --- /dev/null +++ b/keyboards/coban/pad3a/pad3a.c @@ -0,0 +1,29 @@ +/* Copyright 2021 RyanDam (https://github.com/RyanDam) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#if defined(ENCODER_ENABLE) +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } else { + tap_code_delay(KC_VOLD, 10); + } + return true; +} +#endif diff --git a/keyboards/coban/pad3a/readme.md b/keyboards/coban/pad3a/readme.md new file mode 100644 index 00000000000..9dae94d0201 --- /dev/null +++ b/keyboards/coban/pad3a/readme.md @@ -0,0 +1,24 @@ +# Coban Pad 3A + +![Coban Pad 3A](https://i.imgur.com/0afuIuYh.png) + +Small macro keyboard with 2 hotswapable button and 1 EC11 rotary encoder + +* Keyboard Maintainer: [RyanDam](https://github.com/RyanDam) +* Hardware Supported: Coban Pad 3A + +Make example for this keyboard (after setting up your build environment): + + make coban/pad3a:default + +Flashing example for this keyboard: + + make coban/pad3a:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader: + +* **boot button**: Hold the BOOT button on the back of the PCB while plug in usb cable diff --git a/keyboards/coban/pad3a/rules.mk b/keyboards/coban/pad3a/rules.mk new file mode 100644 index 00000000000..62aabd36434 --- /dev/null +++ b/keyboards/coban/pad3a/rules.mk @@ -0,0 +1,3 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +ENCODER_ENABLE = yes