mirror of
https://github.com/mfulz/qmk_firmware.git
synced 2025-11-04 15:22:41 +01:00
Compare commits
38
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
936c341ef8 | ||
|
|
da6d6ce2e1 | ||
|
|
82dd84e257 | ||
|
|
0be7345640 | ||
|
|
c0185116d7 | ||
|
|
34ba7f1c18 | ||
|
|
d412854e37 | ||
|
|
aab2ac22c5 | ||
|
|
61ba8efa3e | ||
|
|
e01307f265 | ||
|
|
7fb312ccd7 | ||
|
|
4a66bdf294 | ||
|
|
ae2c77c827 | ||
|
|
75b40dc7a5 | ||
|
|
96b6ddf4bf | ||
|
|
e73f8e942c | ||
|
|
09a43b12cb | ||
|
|
325c634101 | ||
|
|
369575ad13 | ||
|
|
36635c2203 | ||
|
|
c9d9e70ac7 | ||
|
|
f293e6b4da | ||
|
|
3ac769b6ab | ||
|
|
d1068b23ad | ||
|
|
fbfd5312b9 | ||
|
|
779c7debcf | ||
|
|
e884414e1e | ||
|
|
77cdb20e16 | ||
|
|
a7a3f72235 | ||
|
|
57601d3cfe | ||
|
|
29ab430f1f | ||
|
|
1d30ee72ab | ||
|
|
259cf76966 | ||
|
|
c1e008b052 | ||
|
|
97d0e7cb2d | ||
|
|
d94b5d0b82 | ||
|
|
3057e5f8ca | ||
|
|
83a32b2574 |
No files matched your search
@@ -18,19 +18,18 @@ assignees: ''
|
||||
|
||||
## System Information
|
||||
|
||||
- Keyboard:
|
||||
- Revision (if applicable):
|
||||
- Operating system:
|
||||
- AVR GCC version:
|
||||
<!-- Run `avr-gcc --version` to find this out. -->
|
||||
- ARM GCC version:
|
||||
<!-- Run `arm-none-eabi-gcc --version` to find this out. -->
|
||||
- QMK Firmware version:
|
||||
<!-- Run `git describe --abbrev=0 --tags` to find this out. -->
|
||||
- Any keyboard related software installed?
|
||||
- [ ] AutoHotKey
|
||||
- [ ] Karabiner
|
||||
- [ ] Other:
|
||||
**Keyboard:**
|
||||
**Revision (if applicable):**
|
||||
**Operating system:**
|
||||
**`qmk doctor` output:**
|
||||
```
|
||||
(Paste output here)
|
||||
```
|
||||
|
||||
**Any keyboard related software installed?**
|
||||
- [ ] AutoHotKey (Windows)
|
||||
- [ ] Karabiner (macOS)
|
||||
- [ ] Other:
|
||||
|
||||
## Additional Context
|
||||
|
||||
|
||||
@@ -33,7 +33,33 @@
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
|
||||
"enum": [
|
||||
"LAYOUT",
|
||||
"LAYOUT_1x2uC",
|
||||
"LAYOUT_1x2uL",
|
||||
"LAYOUT_1x2uR",
|
||||
"LAYOUT_2x2uC",
|
||||
"LAYOUT_2x3uC",
|
||||
"LAYOUT_625uC",
|
||||
"LAYOUT_ANSI_DEFAULT",
|
||||
"LAYOUT_JP",
|
||||
"LAYOUT_ortho_3x12_1x2uC",
|
||||
"LAYOUT_ortho_4x12_1x2uC",
|
||||
"LAYOUT_ortho_4x12_1x2uL",
|
||||
"LAYOUT_ortho_4x12_1x2uR",
|
||||
"LAYOUT_ortho_5x12_1x2uC",
|
||||
"LAYOUT_ortho_5x12_2x2uC",
|
||||
"LAYOUT_ortho_5x14_1x2uC",
|
||||
"LAYOUT_ortho_5x14_1x2uL",
|
||||
"LAYOUT_ortho_5x14_1x2uR",
|
||||
"LAYOUT_planck_1x2uC",
|
||||
"LAYOUT_planck_1x2uL",
|
||||
"LAYOUT_planck_1x2uR",
|
||||
"LAYOUT_preonic_1x2uC",
|
||||
"LAYOUT_preonic_1x2uL",
|
||||
"LAYOUT_preonic_1x2uR",
|
||||
"LAYOUT_reviung34_2uL"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
},
|
||||
"layouts": {
|
||||
"type": "object",
|
||||
"propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
|
||||
@@ -53,5 +53,10 @@
|
||||
"type": "string",
|
||||
"description": "asdf"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"keyboard",
|
||||
"layout",
|
||||
"layers"
|
||||
]
|
||||
}
|
||||
@@ -15,11 +15,11 @@
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic_lite": true,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -188,7 +188,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
|
||||
|
||||
# Testing, and Linting, and Formatting (oh my!)
|
||||
|
||||
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-py` subcommands to run these tests:
|
||||
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-python` subcommands to run these tests:
|
||||
|
||||
### Testing and Linting
|
||||
|
||||
@@ -196,7 +196,7 @@ We use nose2, flake8, and yapf to test, lint, and format code. You can use the `
|
||||
|
||||
### Formatting
|
||||
|
||||
qmk format-py
|
||||
qmk format-python
|
||||
|
||||
## Formatting Details
|
||||
|
||||
|
||||
@@ -361,6 +361,8 @@ Configure the hardware via your `config.h`:
|
||||
#define DRIVER_LED_TOTAL 70
|
||||
```
|
||||
|
||||
?> There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information.
|
||||
|
||||
---
|
||||
|
||||
### APA102 :id=apa102
|
||||
@@ -526,7 +528,7 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
|
||||
|
||||
`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MODE_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.
|
||||
|
||||
?> `RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions-idfunctions) should be used instead.
|
||||
?> `RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
|
||||
|
||||
|
||||
!> By default, if you have both the [RGB Light](feature_rgblight.md) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
|
||||
|
||||
@@ -22,6 +22,8 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n
|
||||
RGBLIGHT_ENABLE = yes
|
||||
```
|
||||
|
||||
?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information.
|
||||
|
||||
For APA102 LEDs, add the following to your `rules.mk`:
|
||||
|
||||
```make
|
||||
|
||||
+30
-4
@@ -25,6 +25,11 @@ Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` target in QMK (recommended command line)
|
||||
```
|
||||
dfu-programmer <mcu> erase --force
|
||||
dfu-programmer <mcu> flash --force <filename>
|
||||
dfu-programmer <mcu> reset
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -73,8 +78,11 @@ BOOTLOADER = caterina
|
||||
Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
|
||||
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
|
||||
```
|
||||
avrdude -p <mcu> -c avr109 -P <serialport> -U flash:w:<filename>:i
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -106,8 +114,11 @@ BOOTLOADER = halfkay
|
||||
Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
|
||||
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
|
||||
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
|
||||
```
|
||||
teensy_loader_cli -v -mmcu=<mcu> <filename>
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -133,8 +144,11 @@ BOOTLOADER = usbasploader
|
||||
Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
|
||||
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
|
||||
```
|
||||
avrdude -p <mcu> -c usbasp -U flash:w:<filename>:i
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -159,8 +173,11 @@ BOOTLOADER = bootloadhid
|
||||
Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadhid` target in QMK (recommended command line)
|
||||
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash)
|
||||
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadhid` target in QMK (recommended command line)
|
||||
```
|
||||
bootloadHID -r <filename>
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -232,6 +249,9 @@ Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
|
||||
```
|
||||
dfu-util -a 0 -d 0483:DF11 -s 0x8000000:leave -D <filename>
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -265,6 +285,9 @@ Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
|
||||
```
|
||||
dfu-util -a 2 -d 1EAF:0003 -D <filename>
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
@@ -286,6 +309,9 @@ Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
|
||||
```
|
||||
dfu-util -a 0 -d 1C11:B007 -D <filename>
|
||||
```
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
|
||||
@@ -275,14 +275,14 @@ $ qmk kle2json -f kle.txt -f
|
||||
Ψ Wrote out to info.json
|
||||
```
|
||||
|
||||
## `qmk format-py`
|
||||
## `qmk format-python`
|
||||
|
||||
このコマンドは `qmk_firmware` 内の python コードを整形します。
|
||||
|
||||
**使用法**:
|
||||
|
||||
```
|
||||
qmk format-py
|
||||
qmk format-python
|
||||
```
|
||||
|
||||
## `qmk pytest`
|
||||
|
||||
@@ -192,7 +192,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
|
||||
|
||||
# テスト、リントおよびフォーマット
|
||||
|
||||
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest` と `format-py` サブコマンドを使うことができます。
|
||||
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest` と `format-python` サブコマンドを使うことができます。
|
||||
|
||||
### テストとリント
|
||||
|
||||
@@ -200,7 +200,7 @@ nose2、flake8 および yapf を使ってコードをテスト、リントお
|
||||
|
||||
### フォーマット
|
||||
|
||||
qmk format-py
|
||||
qmk format-python
|
||||
|
||||
## フォーマットの詳細
|
||||
|
||||
|
||||
+4
-2
@@ -132,7 +132,7 @@ The main part of this file is the `keymaps[]` definition. This is where you list
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
After this you'll find a list of LAYOUT() macros. A LAYOUT() is simply a list of keys to define a single layer. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
|
||||
After this you'll find the layer definitions. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
|
||||
|
||||
`keymaps[][MATRIX_ROWS][MATRIX_COLS]` in QMK holds the 16 bit action code (sometimes referred as the quantum keycode) in it. For the keycode representing typical keys, its high byte is 0 and its low byte is the USB HID usage ID for keyboard.
|
||||
|
||||
@@ -153,7 +153,9 @@ Here is an example of the Clueboard's base layer:
|
||||
|
||||
Some interesting things to note about this:
|
||||
|
||||
* From a C source point of view it's only a single array, but we have embedded whitespace to more easily visualize where each key is on the physical device.
|
||||
* The layer is defined using the LAYOUT macro, traditionally defined in the keyboard's `.h` file.
|
||||
* The LAYOUT macro takes a single list of keycodes, but we have written it in the C source using embedded whitespace and newlines to visualize where each key is on the physical device.
|
||||
* The LAYOUT macro hides and handles the mapping to the hardware's key scan matrix.
|
||||
* Plain keyboard scancodes are prefixed with KC_, while "special" keys are not.
|
||||
* The upper left key activates custom function 0 (`F(0)`)
|
||||
* The "Fn" key is defined with `MO(_FL)`, which moves to the `_FL` layer while that key is being held down.
|
||||
|
||||
@@ -145,7 +145,7 @@ In most situations you will want to answer `y` to all of the prompts.
|
||||
?>**Note on Debian, Ubuntu and their derivatives**:
|
||||
It's possible, that you will get an error saying something like: `bash: qmk: command not found`.
|
||||
This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) Debian introduced with their Bash 4.4 release, which removed `$HOME/.local/bin` from the PATH. This bug was later fixed on Debian and Ubuntu.
|
||||
Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
|
||||
Sadly, Ubuntu reintroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
|
||||
Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc`
|
||||
|
||||
### ** FreeBSD **
|
||||
|
||||
@@ -50,7 +50,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||
- valid maintainer
|
||||
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
|
||||
- `readme.md`
|
||||
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/avr/readme.md)
|
||||
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
|
||||
- flash command is present, and has `:flash` at end
|
||||
- valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided.
|
||||
- clear instructions on how to reset the board into bootloader mode
|
||||
|
||||
@@ -34,7 +34,7 @@ Largest in size is "magic" -- the QMK magic keycodes -- which control things lik
|
||||
|
||||
If you've done all of that, and you don't want to disable features like RGB, Audio, OLEDs, etc, there are some additional options that you can add to your config.h that can help.
|
||||
|
||||
Starting with Lock Key support. If you have an Cherry MX Lock switch (lucky you!), you don't want to do this. But chances are, you don't. In that case, add this to your `config.h`:
|
||||
Starting with Lock Key support. If you have a Cherry MX Lock switch (lucky you!), you don't want to do this. But chances are, you don't. In that case, add this to your `config.h`:
|
||||
```c
|
||||
#undef LOCKING_SUPPORT_ENABLE
|
||||
#undef LOCKING_RESYNC_ENABLE
|
||||
|
||||
@@ -8,27 +8,22 @@ This document attempts to explain how the QMK firmware works from a very high le
|
||||
|
||||
## Startup
|
||||
|
||||
You can think of QMK as no different from any other computer program. It is started, performs its tasks, and then ends. The entry point for the program is the `main()` function, just like it is on any other C program. However, for a newcomer to QMK it can be confusing because the `main()` function appears in multiple places, and it can be hard to tell which one to look at.
|
||||
You can think of QMK as no different from any other computer program. It is started and performs its tasks, but this program never finishes. Like other C programs, the entry point is the `main()` function. For QMK, the `main()` function is found in [`quantum/main.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L55).
|
||||
|
||||
The reason for this is the different platforms that QMK supports. The most common platform is `lufa`, which runs on AVR processors such at the atmega32u4. We also support `chibios` and `vusb`.
|
||||
If you browse through the `main()` function you'll find that it starts by initializing any hardware that has been configured (including USB to the host). The most common platform for QMK is `lufa`, which runs on AVR processors such as the atmega32u4. When compiled for that platform, it will invoke for example `platform_setup()` in [`platforms/avr/platform.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/platforms/avr/platform.c#L19) and `protocol_setup()` in [`tmk_core/protocol/lufa/lufa.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/tmk_core/protocol/lufa/lufa.c#L1066). It will use other implementations when compiled for other platforms like `chibios` and `vusb`. At first glance, it can look like a lot of functionality but most of the time the code will be disabled by `#define`s.
|
||||
|
||||
We'll focus on AVR processors for the moment, which use the `lufa` platform. You can find the `main()` function in [tmk_core/protocol/lufa/lufa.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/protocol/lufa/lufa.c#L1028). If you browse through that function you'll find that it initializes any hardware that has been configured (including USB to the host) and then it starts the core part of the program with a [`while(1)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/protocol/lufa/lufa.c#L1069). This is [The Main Loop](#the-main-loop).
|
||||
The `main()` function will then start the core part of the program with a [`while (true)`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L63). This is [The Main Loop](#the-main-loop).
|
||||
|
||||
## The Main Loop
|
||||
|
||||
This section of code is called "The Main Loop" because it's responsible for looping over the same set of instructions forever. This is where QMK dispatches out to the functions responsible for making the keyboard do everything it is supposed to do. At first glance it can look like a lot of functionality but most of the time the code will be disabled by `#define`'s.
|
||||
This section of code is called "The Main Loop" because it's responsible for looping over the same set of instructions forever, without ever reaching the end. This is where QMK dispatches out to the functions responsible for making the keyboard do everything it is supposed to do.
|
||||
|
||||
```
|
||||
keyboard_task();
|
||||
```
|
||||
|
||||
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/keyboard.c#L216), and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
|
||||
The main loop will call [`protocol_task()`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L38), which in turn will call `keyboard_task()` in [`quantum/keyboard.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/keyboard.c#L377). This is where all the keyboard specific functionality is dispatched, and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
|
||||
|
||||
Within `keyboard_task()` you'll find code to handle:
|
||||
|
||||
* [Matrix Scanning](#matrix-scanning)
|
||||
* Mouse Handling
|
||||
* Serial Link(s)
|
||||
* Keyboard status LEDs (Caps Lock, Num Lock, Scroll Lock)
|
||||
|
||||
#### Matrix Scanning
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#include "analog.h"
|
||||
#include "gpio.h"
|
||||
#include "wait.h"
|
||||
#include "timer.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
// Set Parameters
|
||||
uint16_t minAxisValue = ANALOG_JOYSTICK_AXIS_MIN;
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
// Copyright 2022 peepeetee (@peepeetee)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "ada1800mini.h"
|
||||
@@ -0,0 +1,38 @@
|
||||
/* Copyright 2022 peepeetee
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#define LAYOUT( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, K2D, K2E, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3C, K3D, K3E, K3B, \
|
||||
K40, K41, K42, K43, K46, K47, K48, K4D, K4E, K4A, K4B, K4C \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, XXX, K2C, K2D, K2E }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D, K3E }, \
|
||||
{ K40, K41, K42, K43, XXX, XXX, K46, K47, K48, XXX, K4A, K4B, K4C, K4D, K4E }, \
|
||||
}
|
||||
|
||||
// generated by KBFirmware JSON to QMK Parser
|
||||
// https://noroadsleft.github.io/kbf_qmk_converter/
|
||||
@@ -0,0 +1,70 @@
|
||||
/* Copyright 2022 peepeetee
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xADA0
|
||||
#define PRODUCT_ID 0x1800
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Ada
|
||||
#define PRODUCT ada1800mini
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||
#define MATRIX_COL_PINS { F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, B3, B2, B1 }
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
|
||||
//TODO: implement RGB matrix when I get the hardware
|
||||
#define RGB_DI_PIN F0
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 100
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
|
||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
#endif
|
||||
|
||||
// generated by KBFirmware JSON to QMK Parser
|
||||
// https://noroadsleft.github.io/kbf_qmk_converter/
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"keyboard_name": "ada1800mini",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "K00 (D0,F1)", "x": 0, "y": 0 },
|
||||
{ "label": "K01 (D0,F4)", "x": 1.25, "y": 0 },
|
||||
{ "label": "K02 (D0,F5)", "x": 2.25, "y": 0 },
|
||||
{ "label": "K03 (D0,F6)", "x": 3.25, "y": 0 },
|
||||
{ "label": "K04 (D0,F7)", "x": 4.5, "y": 0 },
|
||||
{ "label": "K05 (D0,C7)", "x": 5.5, "y": 0 },
|
||||
{ "label": "K06 (D0,C6)", "x": 6.5, "y": 0 },
|
||||
{ "label": "K07 (D0,B6)", "x": 7.5, "y": 0 },
|
||||
{ "label": "K08 (D0,B5)", "x": 8.75, "y": 0 },
|
||||
{ "label": "K09 (D0,B4)", "x": 9.75, "y": 0 },
|
||||
{ "label": "K0A (D0,D7)", "x": 10.75, "y": 0 },
|
||||
{ "label": "K0B (D0,D6)", "x": 12, "y": 0 },
|
||||
{ "label": "K0C (D0,B3)", "x": 13.5, "y": 0 },
|
||||
{ "label": "K0D (D0,B2)", "x": 14.5, "y": 0 },
|
||||
{ "label": "K0E (D0,B1)", "x": 15.5, "y": 0 },
|
||||
{ "label": "K10 (D1,F1)", "x": 0, "y": 1.25, "w": 1.5 },
|
||||
{ "label": "K11 (D1,F4)", "x": 1.5, "y": 1.25 },
|
||||
{ "label": "K12 (D1,F5)", "x": 2.5, "y": 1.25 },
|
||||
{ "label": "K13 (D1,F6)", "x": 3.5, "y": 1.25 },
|
||||
{ "label": "K14 (D1,F7)", "x": 4.5, "y": 1.25 },
|
||||
{ "label": "K15 (D1,C7)", "x": 5.5, "y": 1.25 },
|
||||
{ "label": "K16 (D1,C6)", "x": 6.5, "y": 1.25 },
|
||||
{ "label": "K17 (D1,B6)", "x": 7.5, "y": 1.25 },
|
||||
{ "label": "K18 (D1,B5)", "x": 8.5, "y": 1.25 },
|
||||
{ "label": "K19 (D1,B4)", "x": 9.5, "y": 1.25 },
|
||||
{ "label": "K1A (D1,D7)", "x": 10.5, "y": 1.25 },
|
||||
{ "label": "K1B (D1,D6)", "x": 11.5, "y": 1.25, "w": 1.5 },
|
||||
{ "label": "K1C (D1,B3)", "x": 13.5, "y": 1.25 },
|
||||
{ "label": "K1D (D1,B2)", "x": 14.5, "y": 1.25 },
|
||||
{ "label": "K1E (D1,B1)", "x": 15.5, "y": 1.25 },
|
||||
{ "label": "K20 (D2,F1)", "x": 0, "y": 2.25, "w": 1.75 },
|
||||
{ "label": "K21 (D2,F4)", "x": 1.75, "y": 2.25 },
|
||||
{ "label": "K22 (D2,F5)", "x": 2.75, "y": 2.25 },
|
||||
{ "label": "K23 (D2,F6)", "x": 3.75, "y": 2.25 },
|
||||
{ "label": "K24 (D2,F7)", "x": 4.75, "y": 2.25 },
|
||||
{ "label": "K25 (D2,C7)", "x": 5.75, "y": 2.25 },
|
||||
{ "label": "K26 (D2,C6)", "x": 6.75, "y": 2.25 },
|
||||
{ "label": "K27 (D2,B6)", "x": 7.75, "y": 2.25 },
|
||||
{ "label": "K28 (D2,B5)", "x": 8.75, "y": 2.25 },
|
||||
{ "label": "K29 (D2,B4)", "x": 9.75, "y": 2.25 },
|
||||
{ "label": "K2A (D2,D7)", "x": 10.75, "y": 2.25, "w": 2.25 },
|
||||
{ "label": "K2C (D2,B3)", "x": 13.5, "y": 2.25 },
|
||||
{ "label": "K2D (D2,B2)", "x": 14.5, "y": 2.25 },
|
||||
{ "label": "K2E (D2,B1)", "x": 15.5, "y": 2.25 },
|
||||
{ "label": "K30 (D3,F1)", "x": 0, "y": 3.25, "w": 2.25 },
|
||||
{ "label": "K31 (D3,F4)", "x": 2.25, "y": 3.25 },
|
||||
{ "label": "K32 (D3,F5)", "x": 3.25, "y": 3.25 },
|
||||
{ "label": "K33 (D3,F6)", "x": 4.25, "y": 3.25 },
|
||||
{ "label": "K34 (D3,F7)", "x": 5.25, "y": 3.25 },
|
||||
{ "label": "K35 (D3,C7)", "x": 6.25, "y": 3.25 },
|
||||
{ "label": "K36 (D3,C6)", "x": 7.25, "y": 3.25 },
|
||||
{ "label": "K37 (D3,B6)", "x": 8.25, "y": 3.25 },
|
||||
{ "label": "K38 (D3,B5)", "x": 9.25, "y": 3.25 },
|
||||
{ "label": "K39 (D3,B4)", "x": 10.25, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "K3C (D3,B3)", "x": 13.5, "y": 3.25 },
|
||||
{ "label": "K3D (D3,B2)", "x": 14.5, "y": 3.25 },
|
||||
{ "label": "K3E (D3,B1)", "x": 15.5, "y": 3.25 },
|
||||
{ "label": "K3B (D3,D6)", "x": 12.25, "y": 3.5 },
|
||||
{ "label": "K40 (D5,F1)", "x": 0, "y": 4.25, "w": 1.25 },
|
||||
{ "label": "K41 (D5,F4)", "x": 1.25, "y": 4.25, "w": 1.25 },
|
||||
{ "label": "K42 (D5,F5)", "x": 2.5, "y": 4.25, "w": 1.25 },
|
||||
{ "label": "K43 (D5,F6)", "x": 3.75, "y": 4.25, "w": 2.75 },
|
||||
{ "label": "K46 (D5,C6)", "x": 6.5, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "K47 (D5,B6)", "x": 8.75, "y": 4.25 },
|
||||
{ "label": "K48 (D5,B5)", "x": 9.75, "y": 4.25, "w": 1.25 },
|
||||
{ "label": "K4D (D5,B2)", "x": 14.5, "y": 4.25 },
|
||||
{ "label": "K4E (D5,B1)", "x": 15.5, "y": 4.25 },
|
||||
{ "label": "K4A (D5,D7)", "x": 11.25, "y": 4.5 },
|
||||
{ "label": "K4B (D5,D6)", "x": 12.25, "y": 4.5 },
|
||||
{ "label": "K4C (D5,B3)", "x": 13.25, "y": 4.5 }
|
||||
]
|
||||
}
|
||||
}
|
||||
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/* Copyright 2022 peepeetee
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_NLCK,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_P7, KC_P8, KC_P9,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_LSFT, KC_P1, KC_P2, KC_P3, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LALT, KC_LCTL, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_DEL, _______, _______, _______,
|
||||
_______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_MOD, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, KC_VOLU,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
# The default keymap for ada1800mini
|
||||
@@ -0,0 +1,27 @@
|
||||
# ada1800mini
|
||||
|
||||

|
||||
|
||||
A per key RGB mini 1800 keyboard
|
||||
|
||||
* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
|
||||
* Hardware Supported: ada1800mini
|
||||
* Hardware Availability: no longer avaliable - future groupbuy possible
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ada/ada1800mini:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ada/ada1800mini: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
|
||||
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
|
||||
@@ -0,0 +1,22 @@
|
||||
# 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 = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = no # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
|
||||
# generated by KBFirmware JSON to QMK Parser
|
||||
# https://noroadsleft.github.io/kbf_qmk_converter/
|
||||
@@ -16,6 +16,5 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Increase polling rates and scan quantity for improved performance */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Increase scan quantity for improved performance */
|
||||
#define QMK_KEYS_PER_SCAN 12
|
||||
@@ -16,6 +16,5 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* Increase polling rates and scan quantity for improved performance */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Increase scan quantity for improved performance */
|
||||
#define QMK_KEYS_PER_SCAN 12
|
||||
@@ -17,26 +17,34 @@
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define XXX KC_NO
|
||||
|
||||
/* ┌───┐
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐│1E │ ┌───────┐
|
||||
* │00 │01 │02 │03 │04 │05 │06 │ │07 │08 │09 │0A │0B │0C │0D │0E │└┬──┴┐ │0D │ 2u Backspace
|
||||
* ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───┴┐│2E │ └───────┘
|
||||
* │10 │11 │12 │13 │14 │15 │ │16 │17 │18 │19 │1A │1B │1C │1D │└┬──┴┐
|
||||
* ┌┴─────┼───┼───┼───┼───┼───┤ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┴┐│3E │
|
||||
* │20 │21 │22 │23 │24 │25 │ │26 │27 │28 │29 │2A │2B │2C │└───┘
|
||||
* ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘
|
||||
* │30 │31 │32 │33 │34 │35 │ │46 │36 │37 │38 │39 │3A │3B │┌───┐
|
||||
* ├─────┬──┴───┼───┴─┬─┴───┴─┬─┴─┐ ┌─┴───┴───┴┬──┴──┬┴───┴───┴──────┘│3D │
|
||||
* │40 │ │42 │44 │45 │ │47 │49 │ ┌───┼───┼───┐
|
||||
* └─────┘ └─────┴───────┴───┘ └──────────┴─────┘ │4C │4D │4E │
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2E, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
|
||||
k40, k42, k44, k45, k46, k47, k49, k4C, k4D, k4E \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k1E, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k3E, \
|
||||
k30, k31, k32, k33, k34, k35, k46, k36, k37, k38, k39, k3A, k3B, k3D, \
|
||||
k40, k42, k44, k45, k47, k49, k4C, k4D, k4E \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
|
||||
{ k40, XXX, k42, XXX, k44, k45, k46, k47, XXX, k49, XXX, XXX, k4C, k4D, k4E } \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
|
||||
{ k40, XXX, k42, XXX, k44, k45, k46, k47, XXX, k49, XXX, XXX, k4C, k4D, k4E } \
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"keyboard_name": "atlas-65",
|
||||
"url": "https://github.com/ryanstevensmith/atlas-65",
|
||||
"maintainer": "Joshua Nguyen",
|
||||
"maintainer": "ryanstevensmith, Joshua Nguyen",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
||||
@@ -17,33 +17,33 @@
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LNUM,
|
||||
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_B, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LNUM,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
) ,
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
) ,
|
||||
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
) ,
|
||||
[3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
} ;
|
||||
@@ -17,33 +17,33 @@
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_LNUM,
|
||||
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_B, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LNUM,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
) ,
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
) ,
|
||||
|
||||
[2] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
) ,
|
||||
[3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
} ;
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
A version of an Alice Keyboard with a full sized backspace and an extra B key.
|
||||
|
||||
* Keyboard Maintainer: Joshua Nguyen
|
||||
* Keyboard Maintainer: [Ryan Smith](https://github.com/ryanstevensmith), Joshua Nguyen
|
||||
* Hardware Supported: atlas-65 keyboards
|
||||
* Hardware Availability: Message Josh
|
||||
|
||||
@@ -23,4 +23,4 @@ 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
|
||||
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
|
||||
@@ -40,7 +40,6 @@
|
||||
|
||||
#define SOFT_SERIAL_PIN D0
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define MASTER_RIGHT
|
||||
|
||||
// RGB matrix support
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
#define F_SCL 400000L
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define MASTER_RIGHT
|
||||
|
||||
// RGB matrix support
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
#define LAYOUT_tkl_f13_ansi_tsangan( \
|
||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \
|
||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
|
||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{
|
||||
"keyboard_name": "glacier",
|
||||
"url": "",
|
||||
"maintainer": "Tim",
|
||||
"maintainer": "Timliuzhaolu",
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1.25, "y":0},
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
@@ -16,3 +16,5 @@ NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
AUDIO_ENABLE = no # Enable keyboard RGB underglow
|
||||
RGBLIGHT_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = tkl_f13_ansi_tsangan
|
||||
@@ -22,7 +22,6 @@
|
||||
#define VENDOR_ID 0xD60D
|
||||
#define MANUFACTURER Hoksi Technology
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define WAIT_US_TIMER GPTD3
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#define VENDOR_ID 0xD60D
|
||||
#define MANUFACTURER Hoksi Technology
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define WAIT_US_TIMER GPTD3
|
||||
|
||||
/* key matrix size (rows in specific keyboard variant) */
|
||||
@@ -41,7 +40,6 @@
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
// #define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
|
||||
|
||||
@@ -100,7 +100,6 @@
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define WAIT_FOR_USB
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 3
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"keyboard_name": "Gizmo Engineering GK6",
|
||||
"keyboard_folder": "gk6",
|
||||
"url": "https://gizmo.engineering/",
|
||||
"maintainer": "federicoweber",
|
||||
"layouts": {
|
||||
|
||||
@@ -114,9 +114,6 @@
|
||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
/* 1000Hz USB polling - it's the default on stock firmware */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Send up to 4 key press events per scan */
|
||||
#define QMK_KEYS_PER_SCAN 4
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
/* Copyright 2022 dari-studios (@dari-studios)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x6473
|
||||
#define PRODUCT_ID 0x4C50
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER dari-studios
|
||||
#define PRODUCT lemonpad
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 2
|
||||
#define MATRIX_COLS 3
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
|
||||
#define DIRECT_PINS { \
|
||||
{ E6, D7, C6 }, \
|
||||
{ B4, B5, D4 } \
|
||||
}
|
||||
#define UNUSED_PINS
|
||||
|
||||
//#define BACKLIGHT_PIN B7
|
||||
//#define BACKLIGHT_LEVELS 3
|
||||
//#define BACKLIGHT_BREATHING
|
||||
|
||||
//#define RGB_DI_PIN E2
|
||||
//#ifdef RGB_DI_PIN
|
||||
//# define RGBLED_NUM 16
|
||||
//# define RGBLIGHT_HUE_STEP 8
|
||||
//# define RGBLIGHT_SAT_STEP 8
|
||||
//# define RGBLIGHT_VAL_STEP 8
|
||||
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
/*== all animations enable ==*/
|
||||
//# define RGBLIGHT_ANIMATIONS
|
||||
/*== or choose animations ==*/
|
||||
//# define RGBLIGHT_EFFECT_BREATHING
|
||||
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
//# define RGBLIGHT_EFFECT_SNAKE
|
||||
//# define RGBLIGHT_EFFECT_KNIGHT
|
||||
//# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
//# define RGBLIGHT_EFFECT_RGB_TEST
|
||||
//# define RGBLIGHT_EFFECT_ALTERNATING
|
||||
/*== customize breathing effect ==*/
|
||||
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||
/*==== use exp() and sin() ====*/
|
||||
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
//#endif
|
||||
|
||||
/* 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 useful 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
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/* disable these deprecated features by default */
|
||||
#define NO_ACTION_MACRO
|
||||
#define NO_ACTION_FUNCTION
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
//#define BOOTMAGIC_LITE_ROW 0
|
||||
//#define BOOTMAGIC_LITE_COLUMN 0
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"keyboard_name": "lemonpad",
|
||||
"url": "",
|
||||
"maintainer": "dari-studios",
|
||||
"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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2022 dari-studios (@dari-studios)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
/* Defines names for use in layer keycodes and the keymap*/
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_A, KC_B, KC_C,
|
||||
KC_D, KC_E, KC_F
|
||||
),
|
||||
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
# The default keymap for lemonpad
|
||||
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2022 dari-studios (@dari-studios)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 9
|
||||
@@ -0,0 +1,78 @@
|
||||
/* Copyright 2022 dari-studios (@dari-studios)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
/* Defines names for use in layer keycodes and the keymap */
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_EMPTY1,
|
||||
_EMPTY2,
|
||||
_EMPTY3,
|
||||
_EMPTY4,
|
||||
_EMPTY5,
|
||||
_EMPTY6,
|
||||
_EMPTY7,
|
||||
_EMPTY8
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_A, KC_B, KC_C,
|
||||
KC_D, KC_E, KC_F
|
||||
),
|
||||
|
||||
[_EMPTY1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY2] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY4] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY5] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY6] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY7] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_EMPTY8] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
# Basic VIA config, 9 layers.
|
||||
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2022 dari-studios (@dari-studios)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "lemonpad.h"
|
||||
@@ -0,0 +1,38 @@
|
||||
/* Copyright 2022 dari-studios (@dari-studios)
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
//Top 3 on the usb port side, bottom 3 on the opposite side
|
||||
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, \
|
||||
k10, k11, k12 \
|
||||
) { \
|
||||
{ k00, k01, k02 }, \
|
||||
{ k10, k11, k12 }, \
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
# lemonpad
|
||||
|
||||

|
||||
|
||||
This is a QMK and VIA implementation for an atmega32u4 based adaptation of the Adafruit Lemon Keypad. By default it uses a Pro Micro, if you would like to use a different microcontroller please make sure you have the correct bootloader set.
|
||||
|
||||
* Keyboard Maintainer: [dari-studios](https://github.com/dari-studios)
|
||||
* Hardware Supported: atmega32u4 based boards with the Caterina bootloader
|
||||
* Hardware Availability: https://learn.adafruit.com/qtpy-lemon-mechanical-keypad-macropad
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/lemonpad:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make handwired/lemonpad: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
|
||||
@@ -10,10 +10,11 @@ BOOTLOADER = caterina
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
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
|
||||
|
||||
LTO_ENABLE = yes
|
||||
@@ -43,7 +43,6 @@
|
||||
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4, B0 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define LAYER_STATE_8BIT
|
||||
#define USB_POLLING_INTERVAL_MS 1 //1000Hz polling rate
|
||||
#define QMK_KEYS_PER_SCAN 12 // moar gaming code
|
||||
#define RGB_DI_PIN D3
|
||||
#ifdef RGB_DI_PIN
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0},
|
||||
{"x": 1, "y": 0},
|
||||
{"x": 2, "y": 0},
|
||||
{"x": 3, "y": 0},
|
||||
|
||||
{"x": 0, "y": 1},
|
||||
{"x": 1, "y": 1},
|
||||
{"x": 2, "y": 1},
|
||||
{"x": 3, "y": 1},
|
||||
|
||||
{"x": 0, "y": 1},
|
||||
{"x": 2, "y": 1}
|
||||
{"x": 0, "y": 2},
|
||||
{"x": 4, "y": 2}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 13
|
||||
#define DEBOUNCE 10
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* layer optimization */
|
||||
#define LAYER_STATE_8BIT
|
||||
#define MAX_LAYER 2
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
Copyright 2015 Jack Humbert
|
||||
Copyright 2018 MakotoKurauchi
|
||||
|
||||
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
|
||||
@@ -28,6 +29,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_LED_STATE_ENABLE
|
||||
|
||||
/* Use I2C or Serial */
|
||||
#define USE_SERIAL
|
||||
//#define USE_MATRIX_I2C
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef SPLIT_KEYBOARD
|
||||
# error This is helix local split_util.h.
|
||||
# error This header file is used only when SPLIT_KEYBOARD=no.
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "eeconfig.h"
|
||||
|
||||
@@ -14,7 +19,3 @@ void split_keyboard_setup(void);
|
||||
bool is_helix_master(void);
|
||||
|
||||
void matrix_master_OLED_init (void);
|
||||
|
||||
// stubs as this is handled by legacy code
|
||||
static inline void split_pre_init(void){}
|
||||
static inline void split_post_init(void){}
|
||||
@@ -15,14 +15,6 @@
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "bootloader.h"
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "lufa.h"
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
LTO_ENABLE = yes # if firmware size over limit, try this option
|
||||
|
||||
# Helix Spacific Build Options
|
||||
|
||||
@@ -9,4 +9,4 @@ void render_layer_state(void);
|
||||
void render_logo(void);
|
||||
void render_mode_icon(bool is_windows);
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation);
|
||||
void oled_task_user(void);
|
||||
bool oled_task_user(void);
|
||||
@@ -15,15 +15,7 @@
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "util.h"
|
||||
#include "bootloader.h"
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "lufa.h"
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef CONSOLE_ENABLE
|
||||
#include <print.h>
|
||||
#endif
|
||||
|
||||
#include "layer_number.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# CONSOLE_ENABLE and COMMAND_ENABLE
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
|
||||
# See TOP/docs/config_options.md for more information.
|
||||
#
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
LTO_ENABLE = no # if firmware size over limit, try this option
|
||||
|
||||
# Helix Spacific Build Options
|
||||
|
||||
@@ -6,40 +6,24 @@
|
||||
#
|
||||
|
||||
KEYBOARD_LOCAL_FEATURES_MK :=
|
||||
-include $(strip $(HELIX_TOP_DIR)/rev2/override_helix_options.mk) ## File dedicated to maintenance
|
||||
|
||||
define HELIX_CUSTOMISE_MSG
|
||||
$(info Helix Spacific Build Options)
|
||||
$(info - OLED_ENABLE = $(OLED_ENABLE))
|
||||
$(info - OLED_SELECT = $(OLED_SELECT))
|
||||
$(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE))
|
||||
$(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
|
||||
$(info - LED_ANIMATIONS = $(LED_ANIMATIONS))
|
||||
$(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE))
|
||||
$(info )
|
||||
endef
|
||||
|
||||
define HELIX_HELP_MSG
|
||||
$(info Helix keyboard convenient command line option)
|
||||
$(info - make HELIX=<options> helix:<keymap>)
|
||||
$(info - option= oled | core-oled | local-oled | no-oled )
|
||||
$(info - back | no-back | under | na | no-ani )
|
||||
$(info - ios | sc | split-common | scan | verbose)
|
||||
$(info - eg.)
|
||||
$(info - make HELIX=no-oled helix:<keymap>)
|
||||
$(info - make HELIX=oled,no-back helix:<keymap>)
|
||||
$(info - make HELIX=oled,under helix:<keymap>)
|
||||
$(info - make HELIX=oled,back,na helix:<keymap>)
|
||||
$(info - make HELIX=oled,back,ios helix:<keymap>)
|
||||
$(info )
|
||||
endef
|
||||
|
||||
ifneq ($(strip $(HELIX)),)
|
||||
# Parse 'HELIX=xx,yy,zz' option
|
||||
ifneq ($(strip $(HELIX)),)
|
||||
# make HELIX=ios helix/pico:AKEYMAP
|
||||
# make HELIX=no-ani helix/pico:AKEYMAP
|
||||
# make HELIX=no-oled helix/pico:AKEYMAP
|
||||
# make HELIX=ios,no-ani,no-oled helix/pico:AKEYMAP
|
||||
define HELIX_OPTION_PARSE
|
||||
# parce 'oled' 'back' 'under' 'ios' etc.
|
||||
$(if $(SHOW_PARCE),$(info parse .$1.)) #debug
|
||||
# parce 'no-ani' 'ios' 'no-oled'
|
||||
$(if $(SHOW_PARCE),$(info parse .$1.)) #debug
|
||||
$(if $(HELIX_OVERRIDE_PARSE),$(call HELIX_OVERRIDE_PARSE,$1))
|
||||
|
||||
ifeq ($(strip $1),help)
|
||||
HELP=on
|
||||
ifeq ($(strip $1),ios)
|
||||
IOS_DEVICE_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter na no_ani no-ani,$(strip $1)),)
|
||||
LED_ANIMATIONS = no
|
||||
endif
|
||||
ifneq ($(filter nooled no-oled,$(strip $1)),)
|
||||
OLED_ENABLE = no
|
||||
@@ -47,68 +31,17 @@ endef
|
||||
ifeq ($(strip $1),oled)
|
||||
OLED_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
|
||||
OLED_ENABLE = yes
|
||||
OLED_SELECT = core
|
||||
endif
|
||||
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
|
||||
OLED_ENABLE = yes
|
||||
OLED_SELECT = local
|
||||
endif
|
||||
ifneq ($(filter noback no-back nounder no-under,$(strip $1)),)
|
||||
LED_BACK_ENABLE = no
|
||||
LED_UNDERGLOW_ENABLE = no
|
||||
endif
|
||||
ifeq ($(strip $1),back)
|
||||
LED_BACK_ENABLE = yes
|
||||
LED_UNDERGLOW_ENABLE = no
|
||||
endif
|
||||
ifeq ($(strip $1),under)
|
||||
LED_BACK_ENABLE = no
|
||||
LED_UNDERGLOW_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter na no_ani no-ani,$(strip $1)),)
|
||||
LED_ANIMATIONS = no
|
||||
endif
|
||||
ifeq ($(strip $1),ios)
|
||||
IOS_DEVICE_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter sc split-common split_common,$(strip $1)),)
|
||||
SPLIT_KEYBOARD = yes
|
||||
endif
|
||||
ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
|
||||
SPLIT_KEYBOARD = no
|
||||
endif
|
||||
ifeq ($(strip $1),scan)
|
||||
# use DEBUG_MATRIX_SCAN_RATE
|
||||
# see docs/newbs_testing_debugging.md
|
||||
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
|
||||
CONSOLE_ENABLE = yes
|
||||
SHOW_VERBOSE_INFO = yes
|
||||
endif
|
||||
ifeq ($(strip $1),verbose)
|
||||
SHOW_VERBOSE_INFO = yes
|
||||
endif
|
||||
ifeq ($(strip $1),lto)
|
||||
LTO_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
|
||||
LTO_ENABLE = no
|
||||
endif
|
||||
endef # end of HELIX_OPTION_PARSE
|
||||
|
||||
COMMA=,
|
||||
$(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \
|
||||
$(call HELIX_OPTION_PARSE,$(A_OPTION_NAME))))
|
||||
|
||||
ifeq ($(strip $(HELP)),on)
|
||||
$(eval $(call HELIX_HELP_MSG))
|
||||
$(error )
|
||||
endif
|
||||
SHOW_HELIX_OPTIONS = yes
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SPLIT_KEYBOARD)), yes)
|
||||
# In the very near future, all keymaps will be compatible with split_common and this block will be removed.
|
||||
SRC += local_drivers/serial.c
|
||||
KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers
|
||||
|
||||
@@ -119,9 +52,10 @@ ifneq ($(strip $(SPLIT_KEYBOARD)), yes)
|
||||
|
||||
CUSTOM_MATRIX = yes
|
||||
|
||||
SRC += rev2/matrix.c
|
||||
SRC += rev2/split_util.c
|
||||
SRC += rev2/split_scomm.c
|
||||
SRC += rev2/custom/matrix.c
|
||||
SRC += rev2/custom/split_util.c
|
||||
SRC += rev2/custom/split_scomm.c
|
||||
KEYBOARD_PATHS += $(HELIX_TOP_DIR)/rev2/custom
|
||||
endif
|
||||
|
||||
########
|
||||
@@ -139,7 +73,6 @@ ifeq ($(strip $(LED_BACK_ENABLE)), yes)
|
||||
RGBLIGHT_ENABLE = yes
|
||||
OPT_DEFS += -DRGBLED_BACK
|
||||
ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
|
||||
$(eval $(call HELIX_CUSTOMISE_MSG))
|
||||
$(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes')
|
||||
endif
|
||||
else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
|
||||
@@ -164,6 +97,8 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
|
||||
OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
|
||||
endif
|
||||
else
|
||||
|
||||
# In the very near future, all keymaps will be compatible with QMK standard oled_driver and this block will be removed.
|
||||
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
|
||||
$(info Helix/rev2: The following combinations are not supported.)
|
||||
$(info - SPLIT_KEYBOARD = $(SPLIT_KEYBOARD)) # yes
|
||||
@@ -188,15 +123,21 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
|
||||
$(eval $(call HELIX_CUSTOMISE_MSG))
|
||||
ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
|
||||
$(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
|
||||
$(info -- OLED_DRIVER = $(OLED_DRIVER))
|
||||
$(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE))
|
||||
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
|
||||
$(info -- OPT_DEFS = $(OPT_DEFS))
|
||||
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
|
||||
$(info -- LTO_ENABLE = $(LTO_ENABLE))
|
||||
$(info )
|
||||
endif
|
||||
$(info Helix Spacific Build Options)
|
||||
$(info - OLED_ENABLE = $(OLED_ENABLE))
|
||||
$(info - OLED_SELECT = $(OLED_SELECT))
|
||||
$(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE))
|
||||
$(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
|
||||
$(info - LED_ANIMATIONS = $(LED_ANIMATIONS))
|
||||
$(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE))
|
||||
$(info )
|
||||
$(info QMK Build Options)
|
||||
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
|
||||
$(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
|
||||
$(info -- OLED_DRIVER = $(OLED_DRIVER))
|
||||
$(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE))
|
||||
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
|
||||
$(info -- OPT_DEFS = $(OPT_DEFS))
|
||||
$(info -- LTO_ENABLE = $(LTO_ENABLE))
|
||||
$(info )
|
||||
endif
|
||||
@@ -0,0 +1,46 @@
|
||||
ifneq ($(strip $(HELIX)),)
|
||||
$(info -------------------------)
|
||||
$(info override_helix_options.mk)
|
||||
$(info -------------------------)
|
||||
endif
|
||||
|
||||
define HELIX_OVERRIDE_PARSE
|
||||
ifeq ($(strip $1),back)
|
||||
LED_BACK_ENABLE = yes
|
||||
LED_UNDERGLOW_ENABLE = no
|
||||
endif
|
||||
ifeq ($(strip $1),under)
|
||||
LED_BACK_ENABLE = no
|
||||
LED_UNDERGLOW_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter led-off led_off noback no-back nounder no-under,$(strip $1)),)
|
||||
LED_BACK_ENABLE = no
|
||||
LED_UNDERGLOW_ENABLE = no
|
||||
endif
|
||||
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
|
||||
OLED_ENABLE = yes
|
||||
OLED_SELECT = core
|
||||
endif
|
||||
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
|
||||
OLED_ENABLE = yes
|
||||
OLED_SELECT = local
|
||||
endif
|
||||
ifneq ($(filter sc split-common split_common,$(strip $1)),)
|
||||
SPLIT_KEYBOARD = yes
|
||||
endif
|
||||
ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
|
||||
SPLIT_KEYBOARD = no
|
||||
endif
|
||||
ifeq ($(strip $1),scan)
|
||||
DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
|
||||
endif
|
||||
ifeq ($(strip $1),scan-api)
|
||||
DEBUG_MATRIX_SCAN_RATE_ENABLE = api
|
||||
endif
|
||||
ifeq ($(strip $1),lto)
|
||||
LTO_ENABLE = yes
|
||||
endif
|
||||
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
|
||||
LTO_ENABLE = no
|
||||
endif
|
||||
endef # end of HELIX_OVERRIDE_PARSE
|
||||
@@ -1,3 +1,18 @@
|
||||
/* Copyright 2018 MakotoKurauchi
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "helix.h"
|
||||
|
||||
// Each keymap.c should use is_keyboard_master() instead of 'is_master'.
|
||||
|
||||
@@ -1,3 +1,18 @@
|
||||
/* Copyright 2018 MakotoKurauchi
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "helix.h"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk
|
||||
|
||||
# SPLIT_KEYBOARD = yes
|
||||
|
||||
# Helix Spacific Build Options default values
|
||||
HELIX_ROWS = 5 # Helix Rows is 4 or 5
|
||||
OLED_ENABLE = yes # OLED_ENABLE
|
||||
|
||||
@@ -45,8 +45,7 @@
|
||||
/* Forcing to use NKRO instead 6KRO */
|
||||
#define FORCE_NKRO
|
||||
|
||||
/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Change larger keys per scan for elite gaming */
|
||||
#define QMK_KEYS_PER_SCAN 12
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
@@ -45,8 +45,7 @@
|
||||
/* Forcing to use NKRO instead 6KRO */
|
||||
#define FORCE_NKRO
|
||||
|
||||
/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Change larger keys per scan for elite gaming */
|
||||
#define QMK_KEYS_PER_SCAN 12
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
@@ -46,8 +46,7 @@
|
||||
/* Forcing to use NKRO instead 6KRO */
|
||||
#define FORCE_NKRO
|
||||
|
||||
/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Change larger keys per scan for elite gaming */
|
||||
#define QMK_KEYS_PER_SCAN 12
|
||||
|
||||
/* EEPROM size */
|
||||
|
||||
@@ -154,5 +154,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
//#define BOOTMAGIC_LITE_ROW 0
|
||||
//#define BOOTMAGIC_LITE_COLUMN 0
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define QMK_KEYS_PER_SCAN 4
|
||||
@@ -16,5 +16,4 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define QMK_KEYS_PER_SCAN 4
|
||||
@@ -16,5 +16,4 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
#define QMK_KEYS_PER_SCAN 12
|
||||
@@ -4,7 +4,87 @@
|
||||
"maintainer": "swiftrax",
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"0,0", "x":1.25, "y":0}, {"label":"1,0", "x":2.5, "y":0.25}, {"label":"0,1", "x":3.5, "y":0.25}, {"label":"1,1", "x":4.5, "y":0.25}, {"label":"0,2", "x":5.5, "y":0.25}, {"label":"1,2", "x":6.5, "y":0.25}, {"label":"0,3", "x":7.5, "y":0.25}, {"label":"1,3", "x":8.5, "y":0.25}, {"label":"0,4", "x":9.5, "y":0.25}, {"label":"1,4", "x":10.5, "y":0.25}, {"label":"0,5", "x":11.5, "y":0.25}, {"label":"1,5", "x":12.5, "y":0.25}, {"label":"0,6", "x":13.5, "y":0.25}, {"label":"1,6", "x":14.5, "y":0.25}, {"label":"0,7", "x":15.5, "y":0.25}, {"label":"1,7", "x":16.5, "y":0.25}, {"label":"2,0", "x":1.25, "y":1.25}, {"label":"3,0", "x":2.5, "y":1.25, "w":1.5}, {"label":"2,1", "x":4, "y":1.25}, {"label":"3,1", "x":5, "y":1.25}, {"label":"2,2", "x":6, "y":1.25}, {"label":"3,2", "x":7, "y":1.25}, {"label":"2,3", "x":8, "y":1.25}, {"label":"3,3", "x":9, "y":1.25}, {"label":"2,4", "x":10, "y":1.25}, {"label":"3,4", "x":11, "y":1.25}, {"label":"2,5", "x":12, "y":1.25}, {"label":"3,5", "x":13, "y":1.25}, {"label":"2,6", "x":14, "y":1.25}, {"label":"3,6", "x":15, "y":1.25}, {"label":"2,7", "x":16, "y":1.25, "w":1.5}, {"label":"4,0", "x":1.25, "y":2.25}, {"label":"5,0", "x":2.5, "y":2.25, "w":1.75}, {"label":"4,1", "x":4.25, "y":2.25}, {"label":"5,1", "x":5.25, "y":2.25}, {"label":"4,2", "x":6.25, "y":2.25}, {"label":"5,2", "x":7.25, "y":2.25}, {"label":"4,3", "x":8.25, "y":2.25}, {"label":"5,3", "x":9.25, "y":2.25}, {"label":"4,4", "x":10.25, "y":2.25}, {"label":"5,4", "x":11.25, "y":2.25}, {"label":"4,5", "x":12.25, "y":2.25}, {"label":"5,5", "x":13.25, "y":2.25}, {"label":"4,6", "x":14.25, "y":2.25}, {"label":"5,6", "x":15.25, "y":2.25}, {"label":"4,7", "x":16.25, "y":2.25, "w":1.25}, {"label":"5,7", "x":17.5, "y":2.25}, {"label":"6,0", "x":1.25, "y":3.25}, {"label":"7,0", "x":2.5, "y":3.25, "w":1.25}, {"label":"6,1", "x":3.75, "y":3.25}, {"label":"7,1", "x":4.75, "y":3.25}, {"label":"6,2", "x":5.75, "y":3.25}, {"label":"7,2", "x":6.75, "y":3.25}, {"label":"6,3", "x":7.75, "y":3.25}, {"label":"7,3", "x":8.75, "y":3.25}, {"label":"6,4", "x":9.75, "y":3.25}, {"label":"7,4", "x":10.75, "y":3.25}, {"label":"6,5", "x":11.75, "y":3.25}, {"label":"7,5", "x":12.75, "y":3.25}, {"label":"6,6", "x":13.75, "y":3.25}, {"label":"7,6", "x":14.75, "y":3.25, "w":1.75}, {"label":"6,7", "x":16.5, "y":3.25}, {"label":"7,7", "x":17.5, "y":3.25}, {"label":"8,0", "x":1.25, "y":4.25}, {"label":"9,0", "x":2.5, "y":4.25, "w":1.25}, {"label":"8,1", "x":3.75, "y":4.25, "w":1.25}, {"label":"9,1", "x":5, "y":4.25, "w":1.25}, {"label":"8,2", "x":6.25, "y":4.25, "w":2.75}, {"label":"8,3", "x":9, "y":4.25, "w":1.25}, {"label":"8,4", "x":10.25, "y":4.25, "w":2.25}, {"label":"9,5", "x":12.5, "y":4.25}, {"label":"8,6", "x":13.5, "y":4.25, "w":1.5}, {"label":"9,6", "x":15.5, "y":4.25}, {"label":"8,7", "x":16.5, "y":4.25}, {"label":"9,7", "x":17.5, "y":4.25}]
|
||||
"layout": [
|
||||
{"label":"Mute", "x":0, "y":0},
|
||||
{"label":"Esc", "x":1.25, "y":0.25},
|
||||
{"label":"1", "x":2.25, "y":0.25},
|
||||
{"label":"2", "x":3.25, "y":0.25},
|
||||
{"label":"3", "x":4.25, "y":0.25},
|
||||
{"label":"4", "x":5.25, "y":0.25},
|
||||
{"label":"5", "x":6.25, "y":0.25},
|
||||
{"label":"6", "x":7.25, "y":0.25},
|
||||
{"label":"7", "x":8.25, "y":0.25},
|
||||
{"label":"8", "x":9.25, "y":0.25},
|
||||
{"label":"9", "x":10.25, "y":0.25},
|
||||
{"label":"0", "x":11.25, "y":0.25},
|
||||
{"label":"-_", "x":12.25, "y":0.25},
|
||||
{"label":"=+", "x":13.25, "y":0.25},
|
||||
{"label":"Backspace", "x":14.25, "y":0.25},
|
||||
{"label":"Backspace", "x":15.25, "y":0.25},
|
||||
|
||||
{"label":"F13", "x":0, "y":1.25},
|
||||
{"label":"Tab", "x":1.25, "y":1.25, "w":1.5},
|
||||
{"label":"Q", "x":2.75, "y":1.25},
|
||||
{"label":"W", "x":3.75, "y":1.25},
|
||||
{"label":"E", "x":4.75, "y":1.25},
|
||||
{"label":"R", "x":5.75, "y":1.25},
|
||||
{"label":"T", "x":6.75, "y":1.25},
|
||||
{"label":"Y", "x":7.75, "y":1.25},
|
||||
{"label":"U", "x":8.75, "y":1.25},
|
||||
{"label":"I", "x":9.75, "y":1.25},
|
||||
{"label":"O", "x":10.75, "y":1.25},
|
||||
{"label":"P", "x":11.75, "y":1.25},
|
||||
{"label":"[{", "x":12.75, "y":1.25},
|
||||
{"label":"]}", "x":13.75, "y":1.25},
|
||||
{"label":"\\|", "x":14.75, "y":1.25, "w":1.5},
|
||||
|
||||
{"label":"F14", "x":0, "y":2.25},
|
||||
{"label":"Caps Lock", "x":1.25, "y":2.25, "w":1.75},
|
||||
{"label":"A", "x":3, "y":2.25},
|
||||
{"label":"S", "x":4, "y":2.25},
|
||||
{"label":"D", "x":5, "y":2.25},
|
||||
{"label":"F", "x":6, "y":2.25},
|
||||
{"label":"G", "x":7, "y":2.25},
|
||||
{"label":"H", "x":8, "y":2.25},
|
||||
{"label":"J", "x":9, "y":2.25},
|
||||
{"label":"K", "x":10, "y":2.25},
|
||||
{"label":"L", "x":11, "y":2.25},
|
||||
{"label":";:", "x":12, "y":2.25},
|
||||
{"label":"'\"", "x":13, "y":2.25},
|
||||
{"label":"Enter", "x":14, "y":2.25},
|
||||
{"label":"Enter", "x":15, "y":2.25, "w":1.25},
|
||||
{"label":"Insert", "x":16.25, "y":2.25},
|
||||
|
||||
{"label":"F15", "x":0, "y":3.25},
|
||||
{"label":"Shift", "x":1.25, "y":3.25, "w":1.25},
|
||||
{"label":"\\|", "x":2.5, "y":3.25},
|
||||
{"label":"Z", "x":3.5, "y":3.25},
|
||||
{"label":"X", "x":4.5, "y":3.25},
|
||||
{"label":"C", "x":5.5, "y":3.25},
|
||||
{"label":"V", "x":6.5, "y":3.25},
|
||||
{"label":"B", "x":7.5, "y":3.25},
|
||||
{"label":"N", "x":8.5, "y":3.25},
|
||||
{"label":"M", "x":9.5, "y":3.25},
|
||||
{"label":",<", "x":10.5, "y":3.25},
|
||||
{"label":".>", "x":11.5, "y":3.25},
|
||||
{"label":"/?", "x":12.5, "y":3.25},
|
||||
{"label":"Shift", "x":13.5, "y":3.25, "w":1.75},
|
||||
{"label":"\u2191", "x":15.25, "y":3.25},
|
||||
{"label":"Delete", "x":16.25, "y":3.25},
|
||||
|
||||
{"label":"F16", "x":0, "y":4.25},
|
||||
{"label":"Ctrl", "x":1.25, "y":4.25, "w":1.25},
|
||||
{"label":"GUI", "x":2.5, "y":4.25, "w":1.25},
|
||||
{"label":"Alt", "x":3.75, "y":4.25, "w":1.25},
|
||||
{"label":"Fn", "x":5, "y":4.25, "w":2.75},
|
||||
{"label":"Space", "x":7.75, "y":4.25, "w":1.25},
|
||||
{"label":"Fn", "x":9, "y":4.25, "w":2.25},
|
||||
{"label":"Fn", "x":11.25, "y":4.25},
|
||||
{"label":"Fn", "x":12.25, "y":4.25, "w":1.5},
|
||||
{"label":"\u2190", "x":14.25, "y":4.25},
|
||||
{"label":"\u2193", "x":15.25, "y":4.25},
|
||||
{"label":"\u2192", "x":16.25, "y":4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,10 +41,6 @@
|
||||
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// Reduce input latency by lowering the USB polling interval
|
||||
// from its 10ms default to the 1ms minimum that USB 1.x (Full Speed) allows:
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
// The Teensy 2++ consumes about 60 mA of current at its full speed of 16 MHz as
|
||||
// per https://www.pjrc.com/teensy/low_power.html
|
||||
#define USB_MAX_POWER_CONSUMPTION 100
|
||||
@@ -59,10 +59,6 @@
|
||||
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// Reduce input latency by lowering the USB polling interval
|
||||
// from its 10ms default to the 1ms minimum that USB 1.x (Full Speed) allows:
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
// The Teensy 3.6 consumes about 80 mA of current at its full speed of 180 MHz:
|
||||
// https://forum.pjrc.com/threads/47256-What-is-the-power-consumption-of-the-Teensy-3-6
|
||||
#define USB_MAX_POWER_CONSUMPTION 100
|
||||
|
||||
@@ -86,10 +86,6 @@
|
||||
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// Reduce input latency by lowering the USB polling interval
|
||||
// from its 10ms default to the 125μs minimum that USB 2.x (High Speed) allows:
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
// The Teensy 4.1 consumes about 100 mA of current at its full speed of 600 MHz
|
||||
// as per https://www.pjrc.com/store/teensy41.html
|
||||
#define USB_MAX_POWER_CONSUMPTION 100
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 3
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 3
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
@@ -23,8 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MANUFACTURER Lx3
|
||||
#define PRODUCT FAVE-87
|
||||
|
||||
/* Set 1 kHz polling rate and force USB NKRO */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Force USB NKRO */
|
||||
#define FORCE_NKRO
|
||||
|
||||
/* key matrix size */
|
||||
|
||||
@@ -23,8 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MANUFACTURER Lx3
|
||||
#define PRODUCT Whale-75
|
||||
|
||||
/* Set 1 kHz polling rate and force USB NKRO */
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
/* Force USB NKRO */
|
||||
#define FORCE_NKRO
|
||||
|
||||
/* key matrix size */
|
||||
|
||||
@@ -46,9 +46,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
|
||||
#define LED_NUM_LOCK_PIN D7
|
||||
#define LED_CAPS_LOCK_PIN D6
|
||||
#define LED_SCROLL_LOCK_PIN B4
|
||||
|
||||
@@ -36,9 +36,6 @@
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
|
||||
#define LED_NUM_LOCK_PIN D7
|
||||
#define LED_CAPS_LOCK_PIN D6
|
||||
#define LED_SCROLL_LOCK_PIN B4
|
||||
|
||||
@@ -45,9 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
|
||||
#define LED_NUM_LOCK_PIN D7
|
||||
#define LED_CAPS_LOCK_PIN D6
|
||||
#define LED_SCROLL_LOCK_PIN B4
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2022 Kyle McCreery
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "bde.h"
|
||||
@@ -0,0 +1,26 @@
|
||||
/* Copyright 2022 Kyle McCreery
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef KEYBOARD_mechwild_bde_rev2
|
||||
#include "rev2.h"
|
||||
#elif KEYBOARD_mechwild_bde_lefty
|
||||
#include "lefty.h"
|
||||
#elif KEYBOARD_mechwild_bde_righty
|
||||
#include "righty.h"
|
||||
#endif
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
Copyright 2022 Kyle McCreery
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"keyboard_name": "MechWild BDE Righty",
|
||||
"keyboard_name": "MechWild BDE Rev2",
|
||||
"url": "mechwild.com",
|
||||
"maintainer": "kylemccreery",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"7", "x":11, "y":0}, {"label":"8", "x":12, "y":0}, {"label":"9", "x":13, "y":0},
|
||||
{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":"ESC", "x":9, "y":1}, {"label":"Enter", "x":10, "y":1, "h":2}, {"label":"4", "x":11, "y":1}, {"label":"5", "x":12, "y":1}, {"label":"6", "x":13, "y":1},
|
||||
{"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"BS", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"ENT", "x":9, "y":2}, {"label":"1", "x":11, "y":2}, {"label":"2", "x":12, "y":2}, {"label":"3", "x":13, "y":2}
|
||||
{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"7", "x":10, "y":0}, {"label":"8", "x":11, "y":0}, {"label":"9", "x":12, "y":0}, {"label":"Mute", "x":13, "y":0},
|
||||
{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":"ESC", "x":9, "y":1}, {"label":"4", "x":10, "y":1}, {"label":"5", "x":11, "y":1}, {"label":"6", "x":12, "y":1}, {"label":"0", "x":13, "y":1,},
|
||||
{"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"BS", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"ENT", "x":9, "y":2}, {"label":"1", "x":10, "y":2}, {"label":"2", "x":11, "y":2}, {"label":"3", "x":12, "y":2}, {"label":"EQL", "x":13, "y":2,}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/* Copyright 2022 Kyle McCreery
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define FN1_BSPC LT(1, KC_BSPC)
|
||||
#define FN2_SPC LT(2, KC_SPC)
|
||||
#define FN3_B LT(3, KC_B)
|
||||
#define CTL_Z CTL_T(KC_Z)
|
||||
#define ALT_X ALT_T(KC_X)
|
||||
#define ALT_N ALGR_T(KC_N)
|
||||
#define CTL_M RCTL_T(KC_M)
|
||||
#define SFT_ENT RSFT_T(KC_ENT)
|
||||
#define WIN_C LGUI_T(KC_C)
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_P7, KC_P8, KC_P9, KC_MUTE,
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC, KC_P4, KC_P5, KC_P6, KC_P0,
|
||||
CTL_Z, ALT_X, WIN_C, KC_V, FN1_BSPC, FN2_SPC, FN3_B, ALT_N, CTL_M, SFT_ENT, KC_P1, KC_P2, KC_P3, KC_MINS
|
||||
),
|
||||
[_FN1] = LAYOUT(
|
||||
_______, _______, _______, RESET, _______, _______, KC_PSCR, KC_LBRC, KC_RBRC, KC_BSLS, KC_7, KC_8, KC_9, KC_NLCK,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_SCLN, KC_QUOT, KC_4, KC_5, KC_6, KC_0,
|
||||
_______, _______, _______, _______, _______, KC_TAB, KC_LGUI, KC_COMM, KC_DOT, KC_SLSH, KC_1, KC_2, KC_3, KC_EQL
|
||||
),
|
||||
[_FN2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, KC_AMPR, KC_ASTR, KC_LPRN, KC_CLCK,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_TILD, KC_COLN, KC_DQUO, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN,
|
||||
_______, _______, _______, _______, KC_DEL, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_EXLM, KC_AT, KC_HASH, KC_PLUS
|
||||
),
|
||||
[_FN3] = LAYOUT(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
File renamed without changes.
File renamed without changes.
Loaded 100 of 202 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user