diff --git a/docs/feature_dynamic_macros.md b/docs/feature_dynamic_macros.md index 01f2a0ca407..0660e0c065c 100644 --- a/docs/feature_dynamic_macros.md +++ b/docs/feature_dynamic_macros.md @@ -35,6 +35,7 @@ There are a number of options added that should allow some additional degree of |`DYNAMIC_MACRO_SIZE` |128 |Sets the amount of memory that Dynamic Macros can use. This is a limited resource, dependent on the controller. | |`DYNAMIC_MACRO_USER_CALL` |*Not defined* |Defining this falls back to using the user `keymap.c` file to trigger the macro behavior. | |`DYNAMIC_MACRO_NO_NESTING` |*Not Defined* |Defining this disables the ability to call a macro from another macro (nested macros). | +|`DYNAMIC_MACRO_DELAY` |*Not Defined* |Sets the waiting time (ms unit) when sending each key. | If the LEDs start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by adding the `DYNAMIC_MACRO_SIZE` define in your `config.h` (default value: 128; please read the comments for it in the header). diff --git a/docs/ja/feature_dynamic_macros.md b/docs/ja/feature_dynamic_macros.md index 951b9031276..3cff7880070 100644 --- a/docs/ja/feature_dynamic_macros.md +++ b/docs/ja/feature_dynamic_macros.md @@ -40,6 +40,7 @@ QMK はその場で作られた一時的なマクロをサポートします。 | `DYNAMIC_MACRO_SIZE` | 128 | 動的マクロが使用できるメモリ量を設定します。これは限られたリソースであり、コントローラに依存します。 | | `DYNAMIC_MACRO_USER_CALL` | *定義なし* | これを定義すると、ユーザの `keymap.c` ファイルを使ってマクロが起動されます。 | | `DYNAMIC_MACRO_NO_NESTING` | *定義なし* | これを定義すると、別のマクロからマクロを呼び出す(入れ子になったマクロ)機能を無効にします。 | +| `DYNAMIC_MACRO_DELAY` | *定義なし* | 各キーを送信する時の待ち時間(ms単位)を設定します。 | 記録中にキーを押すたびに LED が点滅し始めた場合は、マクロバッファにマクロを入れるスペースがもう無いことを意味します。マクロを入れるには、他のマクロ(それらは同じバッファを共有します)を短くするか、`config.h` に `DYNAMIC_MACRO_SIZE` 定義を追加することでバッファを増やします(デフォルト値: 128; ヘッダ内のコメントを読んでください)。 diff --git a/keyboards/atset/at1/at1.c b/keyboards/atset/at1/at1.c new file mode 100644 index 00000000000..4ed5d7cb290 --- /dev/null +++ b/keyboards/atset/at1/at1.c @@ -0,0 +1,15 @@ +/* + * 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 "at1.h" diff --git a/keyboards/atset/at1/at1.h b/keyboards/atset/at1/at1.h new file mode 100644 index 00000000000..64a90d00ca9 --- /dev/null +++ b/keyboards/atset/at1/at1.h @@ -0,0 +1,22 @@ +/* + * 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" + +#define LAYOUT( \ + k00 \ +) \ +{ \ + { k00 } \ +} + diff --git a/keyboards/atset/at1/config.h b/keyboards/atset/at1/config.h new file mode 100644 index 00000000000..50200700246 --- /dev/null +++ b/keyboards/atset/at1/config.h @@ -0,0 +1,76 @@ +/* + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED // Atset +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atset +#define PRODUCT AT1 + +/* Key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +#define MATRIX_ROW_PINS { D2 } +#define MATRIX_COL_PINS { B6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + + */ +//#define FORCE_NKRO + diff --git a/keyboards/atset/at1/info.json b/keyboards/atset/at1/info.json new file mode 100644 index 00000000000..c96ca6c3b1d --- /dev/null +++ b/keyboards/atset/at1/info.json @@ -0,0 +1,9 @@ +{ + "keyboard_name": "AT1", + "maintainer": "atset", + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}] + } + } +} \ No newline at end of file diff --git a/keyboards/atset/at1/keymaps/default/keymap.c b/keyboards/atset/at1/keymaps/default/keymap.c new file mode 100644 index 00000000000..56e8e3afff7 --- /dev/null +++ b/keyboards/atset/at1/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* + * it under the terms of the GNU General Public License as published by + * This program is free software: you can redistribute it and/or modify + * 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_4 +), + + +[1] = LAYOUT( + KC_NO +), + + +[2] = LAYOUT( + KC_NO +) + + +}; diff --git a/keyboards/atset/at1/keymaps/via/keymap.c b/keyboards/atset/at1/keymaps/via/keymap.c new file mode 100644 index 00000000000..f4806baee55 --- /dev/null +++ b/keyboards/atset/at1/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* + * 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_4 + ), + [1] = + LAYOUT( + KC_NO + ), + [2] = + LAYOUT( + KC_NO + ), + [3] = + LAYOUT( + KC_NO + ) +}; diff --git a/keyboards/atset/at1/readme.md b/keyboards/atset/at1/readme.md new file mode 100644 index 00000000000..90a56dba309 --- /dev/null +++ b/keyboards/atset/at1/readme.md @@ -0,0 +1,25 @@ +# ATSET AT1 + +A special 1 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at6:default + +Flashing example for this keyboard: + + make atset/at6: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 in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/atset/at1/rules.mk b/keyboards/atset/at1/rules.mk new file mode 100644 index 00000000000..73ac281e0b4 --- /dev/null +++ b/keyboards/atset/at1/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/atset/at12/at12.c b/keyboards/atset/at12/at12.c new file mode 100644 index 00000000000..94474365a82 --- /dev/null +++ b/keyboards/atset/at12/at12.c @@ -0,0 +1,15 @@ +/* + * 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 "at12.h" diff --git a/keyboards/atset/at12/at12.h b/keyboards/atset/at12/at12.h new file mode 100644 index 00000000000..74bc86c5f26 --- /dev/null +++ b/keyboards/atset/at12/at12.h @@ -0,0 +1,29 @@ +/* + * 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" + +#define LAYOUT( \ + k00, k01, k02, \ + k10, k11, k12, \ + k20, k21, k22, \ + k30, k31, k32 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, k11, k12 }, \ + { k20, k21, k22 }, \ + { k30, k31, k32 } \ +} + diff --git a/keyboards/atset/at12/config.h b/keyboards/atset/at12/config.h new file mode 100644 index 00000000000..c037cd5b740 --- /dev/null +++ b/keyboards/atset/at12/config.h @@ -0,0 +1,76 @@ +/* + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED // Atset +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atset +#define PRODUCT AT12 + +/* Key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +#define MATRIX_ROW_PINS { D3, D2, D1, D0 } +#define MATRIX_COL_PINS { B6, B5, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + + */ +//#define FORCE_NKRO + diff --git a/keyboards/atset/at12/info.json b/keyboards/atset/at12/info.json new file mode 100644 index 00000000000..2facdf3800d --- /dev/null +++ b/keyboards/atset/at12/info.json @@ -0,0 +1,9 @@ +{ + "keyboard_name": "AT9", + "maintainer": "atset", + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/atset/at12/keymaps/default/keymap.c b/keyboards/atset/at12/keymaps/default/keymap.c new file mode 100644 index 00000000000..d713632d9d8 --- /dev/null +++ b/keyboards/atset/at12/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* + * 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_F10, KC_F11, KC_F12, + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3 +), + + +[1] = LAYOUT( + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO +), + + +[2] = LAYOUT( + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO +) + +}; diff --git a/keyboards/atset/at12/keymaps/via/keymap.c b/keyboards/atset/at12/keymaps/via/keymap.c new file mode 100644 index 00000000000..f42586dfbcd --- /dev/null +++ b/keyboards/atset/at12/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* + * 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_F10, KC_F11, KC_F12, + KC_7, KC_8, KC_9, + KC_4 , KC_5 , KC_6, + KC_1 , KC_2 , KC_3 + ), + [1] = + LAYOUT( + KC_NO , KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO + ), + [2] = + LAYOUT( + KC_NO , KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO + ), + [3] = + LAYOUT( + KC_NO , KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO + ), +}; diff --git a/keyboards/atset/at12/readme.md b/keyboards/atset/at12/readme.md new file mode 100644 index 00000000000..2ddd93046d3 --- /dev/null +++ b/keyboards/atset/at12/readme.md @@ -0,0 +1,25 @@ +# ATSET AT12 + +A special 12 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at3:default + +Flashing example for this keyboard: + + make atset/at3: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 in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/atset/at12/rules.mk b/keyboards/atset/at12/rules.mk new file mode 100644 index 00000000000..73ac281e0b4 --- /dev/null +++ b/keyboards/atset/at12/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/atset/at16/at16.c b/keyboards/atset/at16/at16.c new file mode 100644 index 00000000000..4b249745040 --- /dev/null +++ b/keyboards/atset/at16/at16.c @@ -0,0 +1,15 @@ +/* + * 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 "at16.h" diff --git a/keyboards/atset/at16/at16.h b/keyboards/atset/at16/at16.h new file mode 100644 index 00000000000..128ed7f1611 --- /dev/null +++ b/keyboards/atset/at16/at16.h @@ -0,0 +1,29 @@ +/* + * 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" + +#define LAYOUT_ortho_4x4( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, k33 } \ +} + diff --git a/keyboards/atset/at16/config.h b/keyboards/atset/at16/config.h new file mode 100644 index 00000000000..fd050533291 --- /dev/null +++ b/keyboards/atset/at16/config.h @@ -0,0 +1,76 @@ +/* + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED // Atset +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atset +#define PRODUCT AT16 + +/* Key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +#define MATRIX_ROW_PINS { D3, D2, D1, D0 } +#define MATRIX_COL_PINS { B6, B5, B4, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + + */ +//#define FORCE_NKRO + diff --git a/keyboards/atset/at16/info.json b/keyboards/atset/at16/info.json new file mode 100644 index 00000000000..970bb7446f0 --- /dev/null +++ b/keyboards/atset/at16/info.json @@ -0,0 +1,9 @@ +{ + "keyboard_name": "AT9", + "maintainer": "atset", + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k33", "x":3, "y":3}] + } + } +} diff --git a/keyboards/atset/at16/keymaps/default/keymap.c b/keyboards/atset/at16/keymaps/default/keymap.c new file mode 100644 index 00000000000..d01577d8b65 --- /dev/null +++ b/keyboards/atset/at16/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* + * 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_ortho_4x4( + KC_F10, KC_F11, KC_F12, KC_F5, + KC_7, KC_8, KC_9, KC_F1, + KC_4, KC_5, KC_6, KC_F2, + KC_1, KC_2, KC_3, KC_F3 +), + + +[1] = LAYOUT_ortho_4x4( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO +), + + +[2] = LAYOUT_ortho_4x4( + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO +) + +}; diff --git a/keyboards/atset/at16/keymaps/via/keymap.c b/keyboards/atset/at16/keymaps/via/keymap.c new file mode 100644 index 00000000000..8ce781aac47 --- /dev/null +++ b/keyboards/atset/at16/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* + * 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_ortho_4x4( + KC_F10, KC_F11, KC_F12, KC_F5, + KC_7, KC_8, KC_9, KC_F1, + KC_4, KC_5, KC_6, KC_F2, + KC_1, KC_2, KC_3, KC_F3 + ), + [1] = + LAYOUT_ortho_4x4( + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO + ), + [2] = + LAYOUT_ortho_4x4( + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO + ), + [3] = + LAYOUT_ortho_4x4( + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_NO, KC_NO + ), +}; diff --git a/keyboards/atset/at16/readme.md b/keyboards/atset/at16/readme.md new file mode 100644 index 00000000000..6667a1a1874 --- /dev/null +++ b/keyboards/atset/at16/readme.md @@ -0,0 +1,25 @@ +# ATSET AT16 + +A special 16 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at3:default + +Flashing example for this keyboard: + + make atset/at3: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 in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/atset/at16/rules.mk b/keyboards/atset/at16/rules.mk new file mode 100644 index 00000000000..6025e7ecc55 --- /dev/null +++ b/keyboards/atset/at16/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_4x4 diff --git a/keyboards/atset/at3/at3.c b/keyboards/atset/at3/at3.c new file mode 100644 index 00000000000..18a5182f0f5 --- /dev/null +++ b/keyboards/atset/at3/at3.c @@ -0,0 +1,15 @@ +/* + * 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 "at3.h" diff --git a/keyboards/atset/at3/at3.h b/keyboards/atset/at3/at3.h new file mode 100644 index 00000000000..817b1544837 --- /dev/null +++ b/keyboards/atset/at3/at3.h @@ -0,0 +1,22 @@ +/* + * 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" + +#define LAYOUT( \ + k00, k01, k02 \ +) \ +{ \ + { k00, k01, k02 } \ +} + diff --git a/keyboards/atset/at3/config.h b/keyboards/atset/at3/config.h new file mode 100644 index 00000000000..3c7fa4abb69 --- /dev/null +++ b/keyboards/atset/at3/config.h @@ -0,0 +1,76 @@ +/* + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED // Atset +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atset +#define PRODUCT AT3 + +/* Key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 3 + +#define MATRIX_ROW_PINS { D2 } +#define MATRIX_COL_PINS { B6, B5, B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + + */ +//#define FORCE_NKRO + diff --git a/keyboards/atset/at3/info.json b/keyboards/atset/at3/info.json new file mode 100644 index 00000000000..2cceb5cb843 --- /dev/null +++ b/keyboards/atset/at3/info.json @@ -0,0 +1,9 @@ +{ + "keyboard_name": "AT3", + "maintainer": "atset", + "layouts": { + "LAYOUT": { + "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}] + } + } +} \ No newline at end of file diff --git a/keyboards/atset/at3/keymaps/default/keymap.c b/keyboards/atset/at3/keymaps/default/keymap.c new file mode 100644 index 00000000000..57d0ab6db00 --- /dev/null +++ b/keyboards/atset/at3/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +* 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_7, KC_8, KC_9 +), + + +[1] = LAYOUT( + KC_NO, KC_NO, KC_NO +), + + +[2] = LAYOUT( + KC_NO, KC_NO, KC_NO +) + + +}; diff --git a/keyboards/atset/at3/keymaps/via/keymap.c b/keyboards/atset/at3/keymaps/via/keymap.c new file mode 100644 index 00000000000..8d16b57bd78 --- /dev/null +++ b/keyboards/atset/at3/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* +* 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_7 , KC_8 , KC_9 + ), + [1] = + LAYOUT( + KC_NO , KC_NO, KC_NO + ), + [2] = + LAYOUT( + KC_NO , KC_NO, KC_NO + ), + [3] = + LAYOUT( + KC_NO , KC_NO, KC_NO + ) +}; diff --git a/keyboards/atset/at3/readme.md b/keyboards/atset/at3/readme.md new file mode 100644 index 00000000000..f33bda8df3b --- /dev/null +++ b/keyboards/atset/at3/readme.md @@ -0,0 +1,25 @@ +# ATSET AT3 + +A special 3 key keyboard powered by QMK. + +* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7) +* Hardware Supported: ATmega32U4 +* Hardware Availability: Interest Check + +Make example for this keyboard (after setting up your build environment): + + make atset/at3:default + +Flashing example for this keyboard: + + make atset/at3: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 in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available \ No newline at end of file diff --git a/keyboards/atset/at3/rules.mk b/keyboards/atset/at3/rules.mk new file mode 100644 index 00000000000..73ac281e0b4 --- /dev/null +++ b/keyboards/atset/at3/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index a1ada2d5a28..a7555fdd404 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -86,6 +86,9 @@ void dynamic_macro_play(keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_ while (macro_buffer != macro_end) { process_record(macro_buffer); macro_buffer += direction; +#ifdef DYNAMIC_MACRO_DELAY + wait_ms(DYNAMIC_MACRO_DELAY); +#endif } clear_keyboard();