forked from mirrors/qmk_firmware
Compare commits
111 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
65f7bfcc8d | ||
|
|
4da241968c | ||
|
|
dd2b793c0c | ||
|
|
ef33befa06 | ||
|
|
2bddfb986d | ||
|
|
667045b492 | ||
|
|
f5209aa4e9 | ||
|
|
eb5d267e63 | ||
|
|
eaed517c0b | ||
|
|
ba628a28bc | ||
|
|
a1452db98a | ||
|
|
9b9a0f0bcb | ||
|
|
6b17067b15 | ||
|
|
055e940f06 | ||
|
|
3dd43d9cab | ||
|
|
6e710426a4 | ||
|
|
d11238f748 | ||
|
|
95c24bbaf8 | ||
|
|
1b0854fdca | ||
|
|
1fcd0b2578 | ||
|
|
619ee543b8 | ||
|
|
b6d8840915 | ||
|
|
d6e6feb377 | ||
|
|
919d69266e | ||
|
|
1e670f5e67 | ||
|
|
bf397fdd9f | ||
|
|
5153580698 | ||
|
|
3a69232213 | ||
|
|
2a6cb426ef | ||
|
|
2081c5e40e | ||
|
|
48cac9e3c8 | ||
|
|
537b8713e5 | ||
|
|
61cd180163 | ||
|
|
b69b1ad4fc | ||
|
|
bb652314be | ||
|
|
9b4052e5a3 | ||
|
|
58d27cf404 | ||
|
|
44168baaa7 | ||
|
|
c7b2d60a23 | ||
|
|
c58f7857bd | ||
|
|
e80fdbf3dc | ||
|
|
83be1aed76 | ||
|
|
c293d9049a | ||
|
|
f609e125e4 | ||
|
|
94ea13e73d | ||
|
|
240e1ef6fd | ||
|
|
1b8cb95f2e | ||
|
|
390a4fdc9d | ||
|
|
1034df577d | ||
|
|
869ce2f500 | ||
|
|
af03ff145d | ||
|
|
be7d70b15c | ||
|
|
b89e35bdd3 | ||
|
|
2ce3025be2 | ||
|
|
ff5742da9f | ||
|
|
5cb83dd5d7 | ||
|
|
b187139f64 | ||
|
|
9bbce7a231 | ||
|
|
21d6cb18ed | ||
|
|
09b4457bf2 | ||
|
|
b6917c782f | ||
|
|
08cd996839 | ||
|
|
8b9d4fd341 | ||
|
|
81ec3b5f81 | ||
|
|
8f47e62b36 | ||
|
|
e905d86fc5 | ||
|
|
c6f47b5bd7 | ||
|
|
70309bef3d | ||
|
|
2d051d8de3 | ||
|
|
578f54ee94 | ||
|
|
7d7bb5bf82 | ||
|
|
b1b52c37c7 | ||
|
|
af77912d2d | ||
|
|
9397bffd01 | ||
|
|
7f388b6553 | ||
|
|
e34af631c2 | ||
|
|
dff4f13c19 | ||
|
|
051faf4b64 | ||
|
|
2d94e02ea1 | ||
|
|
013ac11c95 | ||
|
|
dc2ed13a1c | ||
|
|
6e463c8084 | ||
|
|
3cd7cb81d4 | ||
|
|
d5e0f21798 | ||
|
|
1290039d7e | ||
|
|
e7541faadc | ||
|
|
6bcaf01c3f | ||
|
|
e7f4d56592 | ||
|
|
71493b2f9b | ||
|
|
86ad4988fe | ||
|
|
10975bd4c0 | ||
|
|
8d8f2d09cc | ||
|
|
9ce186860e | ||
|
|
4b2d3288d0 | ||
|
|
7b0200660e | ||
|
|
57a6ea11df | ||
|
|
89e8e0d277 | ||
|
|
d7c5cf6e5b | ||
|
|
a41e6804fc | ||
|
|
da1dc28d31 | ||
|
|
b42ca9bc5f | ||
|
|
42cb78f98e | ||
|
|
dc3a8ddb6b | ||
|
|
472060d333 | ||
|
|
5b80e10b82 | ||
|
|
7f8b0906c6 | ||
|
|
fa73d43818 | ||
|
|
5a86db2259 | ||
|
|
a5337b3495 | ||
|
|
cd379c69a0 | ||
|
|
156fd4e969 |
19
.travis.yml
19
.travis.yml
@@ -12,6 +12,18 @@ env:
|
||||
- MAKEFLAGS="-j3 --output-sync"
|
||||
services:
|
||||
- docker
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-7
|
||||
packages:
|
||||
- pandoc
|
||||
- diffutils
|
||||
- dos2unix
|
||||
- doxygen
|
||||
- clang-format-7
|
||||
- libstdc++-7-dev
|
||||
install:
|
||||
- npm install -g moxygen
|
||||
script:
|
||||
@@ -20,13 +32,6 @@ script:
|
||||
- bash util/travis_test.sh
|
||||
- bash util/travis_build.sh
|
||||
- bash util/travis_docs.sh
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- pandoc
|
||||
- diffutils
|
||||
- dos2unix
|
||||
- doxygen
|
||||
after_script:
|
||||
bash util/travis_compiled_push.sh
|
||||
notifications:
|
||||
|
||||
@@ -61,7 +61,7 @@ endif
|
||||
|
||||
ifeq ($(strip $(STENO_ENABLE)), yes)
|
||||
OPT_DEFS += -DSTENO_ENABLE
|
||||
VIRTSER_ENABLE := yes
|
||||
VIRTSER_ENABLE ?= yes
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c
|
||||
endif
|
||||
|
||||
@@ -257,13 +257,11 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/backlight/backlight.c
|
||||
OPT_DEFS += -DBACKLIGHT_ENABLE
|
||||
|
||||
ifeq ($(strip $(BACKLIGHT_DRIVER)), software)
|
||||
ifeq ($(strip $(BACKLIGHT_DRIVER)), custom)
|
||||
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
|
||||
else ifeq ($(strip $(BACKLIGHT_DRIVER)), software)
|
||||
SRC += $(QUANTUM_DIR)/backlight/backlight_soft.c
|
||||
else
|
||||
ifeq ($(strip $(BACKLIGHT_DRIVER)), custom)
|
||||
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),AVR)
|
||||
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
|
||||
else
|
||||
@@ -280,6 +278,8 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
|
||||
$(error WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
|
||||
endif
|
||||
|
||||
OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
|
||||
|
||||
ifeq ($(strip $(WS2812_DRIVER)), bitbang)
|
||||
SRC += ws2812.c
|
||||
else
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
* [I2C Driver](i2c_driver.md)
|
||||
* [WS2812 Driver](ws2812_driver.md)
|
||||
* [GPIO Controls](internals_gpio_control.md)
|
||||
* [Custom Matrix](custom_matrix.md)
|
||||
* [Proton C Conversion](proton_c_conversion.md)
|
||||
|
||||
* For a Deeper Understanding
|
||||
|
||||
@@ -309,6 +309,18 @@ FIXME(username): Revisit this code when the frob feature is done.
|
||||
|
||||
...where username is your GitHub username.
|
||||
|
||||
# Unit Tests
|
||||
# Testing
|
||||
|
||||
These are good. We should have some one day.
|
||||
We use a combination of Integration and Unit testing to ensure that the our code is as bug-free as possible. All the tests can be found in `lib/python/qmk/tests/`. You can run all the tests with `qmk pytest`.
|
||||
|
||||
At the time of this writing our tests are not very comprehensive. Looking at the current tests and writing new test cases for untested situations is a great way to both familiarize yourself with the codebase and contribute to QMK.
|
||||
|
||||
## Integration Tests
|
||||
|
||||
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.5/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
|
||||
|
||||
## Unit Tests
|
||||
|
||||
The other `test_*.py` files in `lib/python/qmk/tests/` contain unit tests. You can write tests for individual functions inside `lib/python/qmk/` here. Generally these files are named after the module, with dots replaced by underscores.
|
||||
|
||||
At the time of this writing we do not do any mocking for our tests. If you would like to help us change this please [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and start a conversation there.
|
||||
|
||||
@@ -143,10 +143,14 @@ If you define these options you will enable the associated feature, which may in
|
||||
* `#define IGNORE_MOD_TAP_INTERRUPT`
|
||||
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the `TAPPING_TERM` for both keys.
|
||||
* See [Mod tap interrupt](feature_advanced_keycodes.md#ignore-mod-tap-interrupt) for details
|
||||
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
|
||||
* enables handling for per key `IGNORE_MOD_TAP_INTERRUPT` settings
|
||||
* `#define TAPPING_FORCE_HOLD`
|
||||
* makes it possible to use a dual role key as modifier shortly after having been tapped
|
||||
* See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold)
|
||||
* Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
|
||||
* `#define TAPPING_FORCE_HOLD_PER_KEY`
|
||||
* enables handling for per key `TAPPING_FORCE_HOLD` settings
|
||||
* `#define LEADER_TIMEOUT 300`
|
||||
* how long before the leader key times out
|
||||
* If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
|
||||
|
||||
108
docs/custom_matrix.md
Normal file
108
docs/custom_matrix.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Custom Matrix
|
||||
|
||||
QMK provides a mechanism to supplement or replace the default matrix scanning routine with your own code.
|
||||
|
||||
The reasons to use this feature include:
|
||||
|
||||
* Extra hardware between the keyboard's switches and MCU pins
|
||||
* I/O multiplexer
|
||||
* Line decoder
|
||||
* Irregular switch matrix
|
||||
* Simultaneous use of `COL2ROW` and `ROW2COL`
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Implementing custom matrix usually involves compilation of an additional source file. It is recommended that for consistency, this file is called `matrix.c`.
|
||||
|
||||
Add a new file to your keyboard directory:
|
||||
```text
|
||||
keyboards/<keyboard>/matrix.c
|
||||
```
|
||||
|
||||
And to configure compilation for the new file, add this to your `rules.mk`:
|
||||
```make
|
||||
SRC += matrix.c
|
||||
```
|
||||
|
||||
## 'lite'
|
||||
|
||||
Provides a default implementation for various scanning functions, reducing the boilerplate code when implementing custom matrix.
|
||||
To configure it, add this to your `rules.mk`:
|
||||
|
||||
```make
|
||||
CUSTOM_MATRIX = lite
|
||||
```
|
||||
|
||||
And implement the following functions in a `matrix.c` file in your keyboard folder:
|
||||
|
||||
```c
|
||||
void matrix_init_custom(void) {
|
||||
// TODO: initialize hardware here
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
bool matrix_has_changed = false;
|
||||
|
||||
// TODO: add matrix scanning routine here
|
||||
|
||||
return matrix_has_changed;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Full Replacement
|
||||
|
||||
When more control over the scanning routine is required, you can choose to implement the full scanning routine.
|
||||
To configure it, add this to your rules.mk:
|
||||
|
||||
```make
|
||||
CUSTOM_MATRIX = yes
|
||||
```
|
||||
|
||||
And implement the following functions in a `matrix.c` file in your keyboard folder:
|
||||
|
||||
```c
|
||||
matrix_row_t matrix_get_row(uint8_t row) {
|
||||
// TODO: return the requested row data
|
||||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
// TODO: use print() to dump the current matrix state to console
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
// TODO: initialize hardware and global matrix state here
|
||||
|
||||
// Unless hardware debouncing - Init the configured debounce routine
|
||||
debounce_init(MATRIX_ROWS);
|
||||
|
||||
// This *must* be called for correct keyboard behavior
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
uint8_t matrix_scan(void) {
|
||||
bool matrix_has_changed = false;
|
||||
|
||||
// TODO: add matrix scanning routine here
|
||||
|
||||
// Unless hardware debouncing - use the configured debounce routine
|
||||
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
|
||||
|
||||
// This *must* be called for correct keyboard behavior
|
||||
matrix_scan_quantum();
|
||||
|
||||
return matrix_has_changed;
|
||||
}
|
||||
```
|
||||
|
||||
And also provide defaults for the following callbacks:
|
||||
|
||||
```c
|
||||
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
|
||||
|
||||
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
|
||||
|
||||
__attribute__((weak)) void matrix_init_user(void) {}
|
||||
|
||||
__attribute__((weak)) void matrix_scan_user(void) {}
|
||||
```
|
||||
@@ -489,14 +489,24 @@ The `val` is the value of the data that you want to write to EEPROM. And the `e
|
||||
|
||||
# Custom Tapping Term
|
||||
|
||||
By default, the tapping term is defined globally, and is not configurable by key. For most users, this is perfectly fine. But in come cases, dual function keys would be greatly improved by different timeouts than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable `TAPPING_TERM`.
|
||||
By default, the tapping term and related options (such as `IGNORE_MOD_TAP_INTERRUPT`) are defined globally, and are not configurable by key. For most users, this is perfectly fine. But in some cases, dual function keys would be greatly improved by different timeout behaviors than `LT` keys, or because some keys may be easier to hold than others. Instead of using custom key codes for each, this allows for per key configurable timeout behaviors.
|
||||
|
||||
To enable this functionality, you need to add `#define TAPPING_TERM_PER_KEY` to your `config.h`, first.
|
||||
There are two configurable options to control per-key timeout behaviors:
|
||||
|
||||
- `TAPPING_TERM_PER_KEY`
|
||||
- `IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
|
||||
|
||||
You need to add `#define` lines to your `config.h` for each feature you want.
|
||||
|
||||
```
|
||||
#define TAPPING_TERM_PER_KEY
|
||||
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
|
||||
```
|
||||
|
||||
|
||||
## Example `get_tapping_term` Implementation
|
||||
|
||||
To change the `TAPPING TERM` based on the keycode, you'd want to add something like the following to your `keymap.c` file:
|
||||
To change the `TAPPING_TERM` based on the keycode, you'd want to add something like the following to your `keymap.c` file:
|
||||
|
||||
```c
|
||||
uint16_t get_tapping_term(uint16_t keycode) {
|
||||
@@ -511,6 +521,21 @@ uint16_t get_tapping_term(uint16_t keycode) {
|
||||
}
|
||||
```
|
||||
|
||||
### `get_tapping_term` Function Documentation
|
||||
## Example `get_ignore_mod_tap_interrupt` Implementation
|
||||
|
||||
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard level function. Only a user level function is useful here, so no need to mark it as such.
|
||||
To change the `IGNORE_MOD_TAP_INTERRUPT` value based on the keycode, you'd want to add something like the following to your `keymap.c` file:
|
||||
|
||||
```c
|
||||
bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case SFT_T(KC_SPC):
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## `get_tapping_term` / `get_ignore_mod_tap_interrupt` Function Documentation
|
||||
|
||||
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard level function. Only user level functions are useful here, so no need to mark them as such.
|
||||
|
||||
@@ -291,6 +291,25 @@ Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` ena
|
||||
|
||||
?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
|
||||
|
||||
For more granular control of this feature, you can add the following to your `config.h`:
|
||||
|
||||
```c
|
||||
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
|
||||
```
|
||||
|
||||
You can then add the following function to your keymap:
|
||||
|
||||
```c
|
||||
bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case SFT_T(KC_SPC):
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tapping Force Hold
|
||||
|
||||
To enable `tapping force hold`, add the following to your `config.h`:
|
||||
@@ -315,6 +334,25 @@ With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allo
|
||||
|
||||
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).
|
||||
|
||||
For more granular control of this feature, you can add the following to your `config.h`:
|
||||
|
||||
```c
|
||||
#define TAPPING_FORCE_HOLD_PER_KEY
|
||||
```
|
||||
|
||||
You can then add the following function to your keymap:
|
||||
|
||||
```c
|
||||
bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case LT(1, KC_BSPC):
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Retro Tapping
|
||||
|
||||
To enable `retro tapping`, add the following to your `config.h`:
|
||||
|
||||
@@ -380,6 +380,10 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
|
||||
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
|
||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
|
||||
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
|
||||
#define RGB_MATRIX_STARTUP_HUE 0 // Sets the default hue value, if none has been set
|
||||
#define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set
|
||||
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
|
||||
#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set
|
||||
```
|
||||
|
||||
## EEPROM storage
|
||||
|
||||
@@ -135,7 +135,7 @@ As there is no standard split communication driver for ARM-based split keyboards
|
||||
|
||||
`CUSTOM_MATRIX`
|
||||
|
||||
Lets you replace the default matrix scanning routine with your own code. You will need to provide your own implementations of matrix_init() and matrix_scan().
|
||||
Lets you replace the default matrix scanning routine with your own code. For further details, see the [Custom Matrix page](custom_matrix.md).
|
||||
|
||||
`DEBOUNCE_TYPE`
|
||||
|
||||
|
||||
@@ -17,18 +17,8 @@
|
||||
|`DEBUG` | |Toggle debug mode |
|
||||
|`EEPROM_RESET` |`EEP_RST` |Resets EEPROM state by reinitializing it |
|
||||
|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>`</code> when pressed with Shift or GUI|
|
||||
|`KC_LSPO` | |Left Shift when held, `(` when tapped |
|
||||
|`KC_RSPC` | |Right Shift when held, `)` when tapped |
|
||||
|`KC_LCPO` | |Left Control when held, `(` when tapped |
|
||||
|`KC_RCPC` | |Right Control when held, `)` when tapped |
|
||||
|`KC_LAPO` | |Left Alt when held, `(` when tapped |
|
||||
|`KC_RAPC` | |Right Alt when held, `)` when tapped |
|
||||
|`KC_SFTENT` | |Right Shift when held, Enter when tapped |
|
||||
|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
|
||||
|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
|
||||
|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
|
||||
|`M(n)` | |Call macro `n` |
|
||||
|`MACROTAP(n)` | |Macro-tap `n` idk FIXME |
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
@@ -148,6 +148,8 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
|
||||
* `#define IGNORE_MOD_TAP_INTERRUPT`
|
||||
* 両方のキーに `TAPPING_TERM` を適用することで、ホールド時に他のキーに変換するキーを使ってローリングコンボ (zx) をすることができるようにします
|
||||
* 詳細は [Mod tap interrupt](ja/feature_advanced_keycodes.md#ignore-mod-tap-interrupt) を見てください
|
||||
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
|
||||
* キーごとの `IGNORE_MOD_TAP_INTERRUPT` 設定の処理を有効にします
|
||||
* `#define TAPPING_FORCE_HOLD`
|
||||
* タップされた直後に、デュアルロールキーを修飾子として使用できるようにします
|
||||
* [Hold after tap](ja/feature_advanced_keycodes.md#tapping-force-hold)を見てください
|
||||
|
||||
@@ -214,18 +214,8 @@ This is a reference only. Each group of keys links to the page documenting their
|
||||
|`DEBUG` | |Toggle debug mode |
|
||||
|`EEPROM_RESET` |`EEP_RST` |Resets EEPROM state by reinitializing it |
|
||||
|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>`</code> when pressed with Shift or GUI|
|
||||
|`KC_LSPO` | |Left Shift when held, `(` when tapped |
|
||||
|`KC_RSPC` | |Right Shift when held, `)` when tapped |
|
||||
|`KC_LCPO` | |Left Control when held, `(` when tapped |
|
||||
|`KC_RCPC` | |Right Control when held, `)` when tapped |
|
||||
|`KC_LAPO` | |Left Alt when held, `(` when tapped |
|
||||
|`KC_RAPC` | |Right Alt when held, `)` when tapped |
|
||||
|`KC_SFTENT` | |Right Shift when held, Enter when tapped |
|
||||
|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
|
||||
|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
|
||||
|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
|
||||
|`M(n)` | |Call macro `n` |
|
||||
|`MACROTAP(n)` | |Macro-tap `n` idk FIXME |
|
||||
|
||||
## [Audio Keys](feature_audio.md)
|
||||
|
||||
@@ -461,6 +451,18 @@ This is a reference only. Each group of keys links to the page documenting their
|
||||
|`OSM(mod)` |Hold `mod` for one keypress |
|
||||
|`OSL(layer)`|Switch to `layer` for one keypress|
|
||||
|
||||
## [Space Cadet](feature_space_cadet.md)
|
||||
|
||||
|Key |Description |
|
||||
|-----------|----------------------------------------|
|
||||
|`KC_LCPO` |Left Control when held, `(` when tapped |
|
||||
|`KC_RCPC` |Right Control when held, `)` when tapped|
|
||||
|`KC_LSPO` |Left Shift when held, `(` when tapped |
|
||||
|`KC_RSPC` |Right Shift when held, `)` when tapped |
|
||||
|`KC_LAPO` |Left Alt when held, `(` when tapped |
|
||||
|`KC_RAPC` |Right Alt when held, `)` when tapped |
|
||||
|`KC_SFTENT`|Right Shift when held, Enter when tapped|
|
||||
|
||||
## [Swap Hands](feature_swap_hands.md)
|
||||
|
||||
|Key |Description |
|
||||
|
||||
@@ -14,15 +14,5 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
|
||||
|`DEBUG` | |Toggle debug mode |
|
||||
|`EEPROM_RESET` |`EEP_RST` |Resets EEPROM state by reinitializing it |
|
||||
|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>`</code> when pressed with Shift or GUI|
|
||||
|`KC_LSPO` | |Left Shift when held, `(` when tapped |
|
||||
|`KC_RSPC` | |Right Shift when held, `)` when tapped |
|
||||
|`KC_LCPO` | |Left Control when held, `(` when tapped |
|
||||
|`KC_RCPC` | |Right Control when held, `)` when tapped |
|
||||
|`KC_LAPO` | |Left Alt when held, `(` when tapped |
|
||||
|`KC_RAPC` | |Right Alt when held, `)` when tapped |
|
||||
|`KC_SFTENT` | |Right Shift when held, Enter when tapped |
|
||||
|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
|
||||
|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
|
||||
|`FUNC(n)` |`F(n)` |Call `fn_action(n)` (deprecated) |
|
||||
|`M(n)` | |Call macro `n` |
|
||||
|`MACROTAP(n)` | |Macro-tap `n` idk FIXME |
|
||||
|
||||
@@ -217,7 +217,7 @@ void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
||||
|
||||
// If any of the transactions fail we risk writing dirty PG0,
|
||||
// refresh page 0 just in case.
|
||||
if (!IS31FL3733_write_pwm_buffer(addr, g_pwm_buffer[index])){
|
||||
if (!IS31FL3733_write_pwm_buffer(addr, g_pwm_buffer[index])) {
|
||||
g_led_control_registers_update_required[index] = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* number of backlight levels */
|
||||
#define BACKLIGHT_PIN B5
|
||||
#ifdef BACKLIGHT_PIN
|
||||
|
||||
@@ -34,6 +34,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
|
||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5 }
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
|
||||
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 }
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define SOFT_SERIAL_PIN D0
|
||||
|
||||
/* define tapping term */
|
||||
|
||||
@@ -35,6 +35,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* define if matrix has ghost */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
|
||||
@@ -17,27 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "ares.h"
|
||||
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
void backlight_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// Turn out the lights
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// Turn on the lights
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D1);
|
||||
writePinHigh(D1);
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -37,7 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
#define NO_UART 1
|
||||
|
||||
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = no
|
||||
WS2812_DRIVER = i2c
|
||||
|
||||
|
||||
@@ -1,39 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
|
||||
# Options to pass to dfu-util when flashing
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -p df11 -v 0483
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
|
||||
@@ -17,30 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "bfake.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// Turn out the lights
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// Turn on the lights
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D1);
|
||||
writePinHigh(D1);
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef BFAKE_CONFIG_H
|
||||
#define BFAKE_CONFIG_H
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
@@ -38,9 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
#define NO_UART 1
|
||||
|
||||
#endif
|
||||
|
||||
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = no
|
||||
WS2812_DRIVER = i2c
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
#define MATRIX_COL_PINS { D0, D1, D2, F7, F6, F5, F4, F1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
|
||||
73
keyboards/bm60rgb/bm60rgb.c
Normal file
73
keyboards/bm60rgb/bm60rgb.c
Normal file
@@ -0,0 +1,73 @@
|
||||
/* Copyright 2020 MechMerlin
|
||||
*
|
||||
* 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 "bm60rgb.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
|
||||
led_config_t g_led_config = { {
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
|
||||
{ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
|
||||
{ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42 },
|
||||
{ NO_LED, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56 },
|
||||
{ 57, 58, 59, NO_LED, NO_LED, NO_LED, NO_LED, 60, NO_LED, NO_LED, 61, 62, 63, 64}
|
||||
}, {
|
||||
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
|
||||
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
|
||||
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
|
||||
{ 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
|
||||
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
|
||||
{ 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
|
||||
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
|
||||
{ 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 },
|
||||
// Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
|
||||
{ 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
|
||||
}, {
|
||||
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
// Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1
|
||||
} };
|
||||
36
keyboards/bm60rgb/bm60rgb.h
Normal file
36
keyboards/bm60rgb/bm60rgb.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Copyright 2020 MechMerlin
|
||||
*
|
||||
* 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 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, \
|
||||
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ 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 }, \
|
||||
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ KC_NO, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D }, \
|
||||
}
|
||||
|
||||
// generated by KBFirmware JSON to QMK Parser
|
||||
// https://noroadsleft.github.io/kbf_qmk_converter/
|
||||
|
||||
59
keyboards/bm60rgb/config.h
Normal file
59
keyboards/bm60rgb/config.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
Copyright 2020 MechMerlin
|
||||
|
||||
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 0xFEED
|
||||
#define PRODUCT_ID 0xEF8C
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER KP Republic
|
||||
#define PRODUCT BM60 RGB
|
||||
#define DESCRIPTION A 60% hotswap inswitch rgb board
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
/*
|
||||
* 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)
|
||||
*
|
||||
*/
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 A B C D
|
||||
#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 }
|
||||
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7 }
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define RGB_DI_PIN E2
|
||||
#define DRIVER_LED_TOTAL 69
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 69
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#endif
|
||||
|
||||
// generated by KBFirmware JSON to QMK Parser
|
||||
// https://noroadsleft.github.io/kbf_qmk_converter/
|
||||
79
keyboards/bm60rgb/info.json
Normal file
79
keyboards/bm60rgb/info.json
Normal file
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"keyboard_name": "BM60 RGB",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 63,
|
||||
"layout": [
|
||||
{"label":"K00 (B0,D0)", "x":0, "y":0},
|
||||
{"label":"K01 (B0,D1)", "x":1, "y":0},
|
||||
{"label":"K02 (B0,D2)", "x":2, "y":0},
|
||||
{"label":"K03 (B0,D3)", "x":3, "y":0},
|
||||
{"label":"K04 (B0,D5)", "x":4, "y":0},
|
||||
{"label":"K05 (B0,D4)", "x":5, "y":0},
|
||||
{"label":"K06 (B0,D6)", "x":6, "y":0},
|
||||
{"label":"K07 (B0,D7)", "x":7, "y":0},
|
||||
{"label":"K08 (B0,B4)", "x":8, "y":0},
|
||||
{"label":"K09 (B0,B5)", "x":9, "y":0},
|
||||
{"label":"K0A (B0,B6)", "x":10, "y":0},
|
||||
{"label":"K0B (B0,C6)", "x":11, "y":0},
|
||||
{"label":"K0C (B0,C7)", "x":12, "y":0},
|
||||
{"label":"K0D (B0,F7)", "x":13, "y":0, "w":2},
|
||||
{"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11 (B1,D1)", "x":1.5, "y":1},
|
||||
{"label":"K12 (B1,D2)", "x":2.5, "y":1},
|
||||
{"label":"K13 (B1,D3)", "x":3.5, "y":1},
|
||||
{"label":"K14 (B1,D5)", "x":4.5, "y":1},
|
||||
{"label":"K15 (B1,D4)", "x":5.5, "y":1},
|
||||
{"label":"K16 (B1,D6)", "x":6.5, "y":1},
|
||||
{"label":"K17 (B1,D7)", "x":7.5, "y":1},
|
||||
{"label":"K18 (B1,B4)", "x":8.5, "y":1},
|
||||
{"label":"K19 (B1,B5)", "x":9.5, "y":1},
|
||||
{"label":"K1A (B1,B6)", "x":10.5, "y":1},
|
||||
{"label":"K1B (B1,C6)", "x":11.5, "y":1},
|
||||
{"label":"K1C (B1,C7)", "x":12.5, "y":1},
|
||||
{"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K22 (B2,D2)", "x":1.75, "y":2},
|
||||
{"label":"K23 (B2,D3)", "x":2.75, "y":2},
|
||||
{"label":"K24 (B2,D5)", "x":3.75, "y":2},
|
||||
{"label":"K25 (B2,D4)", "x":4.75, "y":2},
|
||||
{"label":"K26 (B2,D6)", "x":5.75, "y":2},
|
||||
{"label":"K27 (B2,D7)", "x":6.75, "y":2},
|
||||
{"label":"K28 (B2,B4)", "x":7.75, "y":2},
|
||||
{"label":"K29 (B2,B5)", "x":8.75, "y":2},
|
||||
{"label":"K2A (B2,B6)", "x":9.75, "y":2},
|
||||
{"label":"K2B (B2,C6)", "x":10.75, "y":2},
|
||||
{"label":"K2C (B2,C7)", "x":11.75, "y":2},
|
||||
{"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"K31 (B3,D1)", "x":0, "y":3, "w":2.25},
|
||||
{"label":"K32 (B3,D2)", "x":2.25, "y":3},
|
||||
{"label":"K33 (B3,D3)", "x":3.25, "y":3},
|
||||
{"label":"K34 (B3,D5)", "x":4.25, "y":3},
|
||||
{"label":"K35 (B3,D4)", "x":5.25, "y":3},
|
||||
{"label":"K36 (B3,D6)", "x":6.25, "y":3},
|
||||
{"label":"K37 (B3,D7)", "x":7.25, "y":3},
|
||||
{"label":"K38 (B3,B4)", "x":8.25, "y":3},
|
||||
{"label":"K39 (B3,B5)", "x":9.25, "y":3},
|
||||
{"label":"K3A (B3,B6)", "x":10.25, "y":3},
|
||||
{"label":"K3B (B3,C6)", "x":11.25, "y":3, "w":1.75},
|
||||
{"label":"K3C (B3,C7)", "x":13, "y":3},
|
||||
{"label":"K3D (B3,F7)", "x":14, "y":3},
|
||||
{"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25},
|
||||
{"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K49 (E6,B5)", "x":10, "y":4},
|
||||
{"label":"K4A (E6,B6)", "x":11, "y":4},
|
||||
{"label":"K4B (E6,C6)", "x":12, "y":4},
|
||||
{"label":"K4C (E6,C7)", "x":13, "y":4},
|
||||
{"label":"K4D (E6,F7)", "x":14, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
||||
}
|
||||
|
||||
34
keyboards/bm60rgb/keymaps/default/keymap.c
Normal file
34
keyboards/bm60rgb/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2020 MechMerlin
|
||||
*
|
||||
* 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
1
keyboards/bm60rgb/keymaps/default/readme.md
Normal file
1
keyboards/bm60rgb/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for bm60rgb
|
||||
13
keyboards/bm60rgb/readme.md
Normal file
13
keyboards/bm60rgb/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# BM60 RGB
|
||||
|
||||
A 60% hotswap inswitch RGB keyboard from KP Republic.
|
||||
|
||||
* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
|
||||
* Hardware Supported: BM60 RGB
|
||||
* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-60-gh60-hot-swappable-pcb-programmed-qmk-firmware-type-c)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bm60rgb:default
|
||||
|
||||
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).
|
||||
38
keyboards/bm60rgb/rules.mk
Normal file
38
keyboards/bm60rgb/rules.mk
Normal file
@@ -0,0 +1,38 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
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
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
||||
RGB_MATRIX_ENABLE = WS2812
|
||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||
|
||||
# partially generated by KBFirmware JSON to QMK Parser
|
||||
# https://noroadsleft.github.io/kbf_qmk_converter/
|
||||
@@ -1,37 +1,5 @@
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
|
||||
# Cortex version
|
||||
MCU = cortex-m0
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
|
||||
# Vector table for application
|
||||
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
|
||||
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
||||
# OPT_DEFS = -DCORTEX_VTOR_INIT=0x08005000
|
||||
OPT_DEFS =
|
||||
|
||||
# Options to pass to dfu-util when flashing
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -p DF11 -v 0483
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
|
||||
@@ -1,35 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
@@ -40,8 +10,6 @@ VPATH += keyboards/cannonkeys/stm32f072
|
||||
SRC = keyboard.c \
|
||||
led.c
|
||||
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
|
||||
@@ -1,35 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
@@ -40,8 +10,6 @@ VPATH += keyboards/cannonkeys/stm32f072
|
||||
SRC = keyboard.c \
|
||||
led.c
|
||||
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
|
||||
@@ -1,39 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
|
||||
# Options to pass to dfu-util when flashing
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -p DF11 -v 0483
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
|
||||
@@ -1,35 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
@@ -40,9 +10,6 @@ VPATH += keyboards/cannonkeys/stm32f072
|
||||
SRC = keyboard.c \
|
||||
led.c
|
||||
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -v 0483 -p DF11
|
||||
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
|
||||
@@ -1,46 +1,18 @@
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
# MCU name
|
||||
MCU = STM32F103
|
||||
|
||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||
BOARD = GENERIC_STM32_F103
|
||||
|
||||
# OPT_DEFS =
|
||||
# MCU_LDSCRIPT = STM32F103x8
|
||||
# BOARD = GENERIC_STM32_F103
|
||||
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f1xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m3
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
DFU_ARGS = -d 1eaf:0003 -a2 -R
|
||||
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
|
||||
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
|
||||
@@ -1,46 +1,18 @@
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
# MCU name
|
||||
MCU = STM32F103
|
||||
|
||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||
BOARD = GENERIC_STM32_F103
|
||||
|
||||
# OPT_DEFS =
|
||||
# MCU_LDSCRIPT = STM32F103x8
|
||||
# BOARD = GENERIC_STM32_F103
|
||||
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f1xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m3
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
DFU_ARGS = -d 1eaf:0003 -a2 -R
|
||||
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
|
||||
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
|
||||
@@ -1,47 +1,18 @@
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
# MCU name
|
||||
MCU = STM32F103
|
||||
|
||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||
BOARD = GENERIC_STM32_F103
|
||||
|
||||
# OPT_DEFS =
|
||||
# MCU_LDSCRIPT = STM32F103x8
|
||||
# BOARD = GENERIC_STM32_F103
|
||||
DFU_ARGS = -d 1eaf:0003 -a2 -R
|
||||
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
|
||||
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f1xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m3
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
|
||||
DFU_ARGS = -d 1eaf:0003 -a 2 -R
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
|
||||
@@ -1,46 +1,18 @@
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
# MCU name
|
||||
MCU = STM32F103
|
||||
|
||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||
BOARD = GENERIC_STM32_F103
|
||||
|
||||
# OPT_DEFS =
|
||||
# MCU_LDSCRIPT = STM32F103x8
|
||||
# BOARD = GENERIC_STM32_F103
|
||||
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f1xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m3
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
DFU_ARGS = -d 1eaf:0003 -a2 -R
|
||||
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
|
||||
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
|
||||
@@ -1,46 +1,18 @@
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
# MCU name
|
||||
MCU = STM32F103
|
||||
|
||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||
BOARD = GENERIC_STM32_F103
|
||||
|
||||
# OPT_DEFS =
|
||||
# MCU_LDSCRIPT = STM32F103x8
|
||||
# BOARD = GENERIC_STM32_F103
|
||||
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f1xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m3
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
DFU_ARGS = -d 1eaf:0003 -a2 -R
|
||||
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
|
||||
|
||||
# project specific files
|
||||
VPATH += keyboards/cannonkeys/bluepill
|
||||
SRC = led.c \
|
||||
keyboard.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
|
||||
@@ -1,35 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
|
||||
@@ -1,35 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
@@ -40,9 +10,6 @@ VPATH += keyboards/cannonkeys/stm32f072
|
||||
SRC = keyboard.c \
|
||||
led.c
|
||||
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -v 0483 -p DF11
|
||||
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
|
||||
@@ -1,43 +1,5 @@
|
||||
# project specific files
|
||||
# SRC = ssd1306.c
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
MCU_LDSCRIPT = STM32F072xB
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f0xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
BOARD = ST_STM32F072B_DISCOVERY
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m0
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
#
|
||||
|
||||
# Options to pass to dfu-util when flashing
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -p DF11 -v 0483
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
@@ -48,9 +10,6 @@ VPATH += keyboards/cannonkeys/stm32f072
|
||||
SRC = keyboard.c \
|
||||
led.c
|
||||
|
||||
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
|
||||
DFU_SUFFIX_ARGS = -v 0483 -p DF11
|
||||
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
|
||||
@@ -1,43 +1,15 @@
|
||||
SRC = matrix.c
|
||||
# MCU name
|
||||
MCU = STM32F103
|
||||
|
||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||
BOARD = GENERIC_STM32_F103
|
||||
|
||||
# OPT_DEFS =
|
||||
# MCU_LDSCRIPT = STM32F103x8
|
||||
# BOARD = GENERIC_STM32_F103
|
||||
DFU_ARGS = -d 1eaf:0003 -a2 -R
|
||||
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
|
||||
|
||||
## chip/board settings
|
||||
# the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
# linker script to use
|
||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <this_dir>/ld/
|
||||
# startup code to use
|
||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP = stm32f1xx
|
||||
# it should exist either in <chibios>/os/hal/boards/
|
||||
# or <this_dir>/boards
|
||||
# Cortex version
|
||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||
MCU = cortex-m3
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||
# a custom board definition that you plan to reuse).
|
||||
# If you're not setting it here, leave it commented out.
|
||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||
# This also requires a patch to chibios:
|
||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||
|
||||
DFU_ARGS = -d 1eaf:0003 -a 2
|
||||
SRC = matrix.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
|
||||
@@ -23,25 +23,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */
|
||||
[LAYER_LOWER] = LAYOUT(
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||
_______, _______, _______, KC_PIPE, KC_TILD, KC_DEL, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
|
||||
_______, _______, _______, KC_BSLS, KC_GRV, KC_INS, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||
_______, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, KC_DEL, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
|
||||
_______, _______, _______, _______, _______, KC_APP, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */
|
||||
[LAYER_RAISE] = LAYOUT(
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_PGUP,
|
||||
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_END, KC_PGDN,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, _______,
|
||||
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */
|
||||
[LAYER_ADJUST] = LAYOUT(
|
||||
KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, KC_PSCR, KC_SLCK, KC_PAUS, _______,
|
||||
_______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_HUI, RGB_SAI,
|
||||
_______, _______, _______, KC_MUTE, _______, _______, RGB_SPD, RGB_SPI, _______, _______, RGB_HUD, RGB_SAD,
|
||||
KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______,
|
||||
_______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______,
|
||||
_______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______,
|
||||
_______, _______, _______, RGB_TOG, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
@@ -13,18 +13,18 @@ more details on the principles that went into the layout.
|
||||
|
||||
## Lower layer
|
||||
|
||||

|
||||

|
||||
|
||||
([KLE](http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0))
|
||||
|
||||
## Raise layer
|
||||
|
||||

|
||||

|
||||
|
||||
([KLE](http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7))
|
||||
|
||||
## Adjust layer
|
||||
|
||||

|
||||

|
||||
|
||||
([KLE](http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee))
|
||||
|
||||
@@ -32,6 +32,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define RGBLED_NUM 18
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
|
||||
@@ -16,32 +16,22 @@
|
||||
|
||||
#include "budget96.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
// initialize pins D0, D1, D4 and D6 as output
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// turn backlight LEDs off
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D0, !led_state.num_lock);
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -37,5 +37,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
@@ -15,7 +15,7 @@ BOOTLOADER = bootloadHID
|
||||
BOOTMAGIC_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
||||
|
||||
@@ -46,11 +46,6 @@ __attribute__ ((weak))
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
void backlight_init_ports(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void indicator_init_ports(void) {
|
||||
|
||||
// Num LED
|
||||
|
||||
@@ -3,7 +3,4 @@
|
||||
# dfu-programmer atmega32u4 reset
|
||||
|
||||
# run this in the qmk_firmware directory
|
||||
make dz60:billiams
|
||||
dfu-programmer atmega32u4 erase --force && \
|
||||
dfu-programmer atmega32u4 flash dz60_billiams.hex && \
|
||||
dfu-programmer atmega32u4 reset
|
||||
make dz60:billiams_layout2:flash
|
||||
48
keyboards/dz60/keymaps/billiams_layout2/keymap.c
Normal file
48
keyboards/dz60/keymaps/billiams_layout2/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | ESC |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | Alt | Cmd | Space | Cmd | Alt | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
LAYOUT_60_2_function(
|
||||
KC_GRAVE, 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_BSLS, KC_DEL,
|
||||
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_BSPC,
|
||||
MO(1), 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_ESCAPE,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(1)
|
||||
),
|
||||
|
||||
/* FN Layer
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | Mute| Prev | Next |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | Left| Down| Up |Right| | | Play/Pause |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |Scr- |Scr+ | | | |RESET|
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
LAYOUT_60_2_function(
|
||||
_______, 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__VOLDOWN, KC__VOLUP,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, KC_MUTE, KC_MRWD, KC_MFFD,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, RESET,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
68
keyboards/dz60/keymaps/billiams_layout2/readme.md
Normal file
68
keyboards/dz60/keymaps/billiams_layout2/readme.md
Normal file
@@ -0,0 +1,68 @@
|
||||
## Billiam's DZ60 60_2 layout (KBDFANS Layout 2 with split backspace and split right shift)
|
||||
|
||||
This layout is optimized for MacOS and is for a Build 2 DZ60 with a 2U left shift, 1.75U right shift and no arrow cluster. Don't use this layout if you didn't get Build 2, you will enter a world of pain Donny.
|
||||
|
||||
Settings:
|
||||
|
||||
* The `CAPS LOCK` key is a function key.
|
||||
* The `ALT` and `CMD` keys are swapped to replicate the Mac layout.
|
||||
* RESET is available as `Fn`+ ` ESC`
|
||||
* Underglow toggle is available as `Fn` + `Q`. Yes your keyboard has lights even if you didn't get the LEDs. Bonus!
|
||||
* vim-style arrow key bindings H J K L in layer 1
|
||||
|
||||
### Initial Installation
|
||||
|
||||
I found the instructions to be longer than they had to be, and I ended up having to Google some steps anyway. These are the steps I took to get my keyboard setup, in case you are new to the process.
|
||||
|
||||
1. Clone the qmk_firmware repo locally
|
||||
```
|
||||
# Choose one:
|
||||
git clone git@github.com:qmk/qmk_firmware.git # OR
|
||||
git clone https://github.com/qmk/qmk_firmware.git
|
||||
```
|
||||
2. Customize your layout by starting with a [keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps). I copied [StephenGrier](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps/stephengrier)'s and modified it for DZ60 Build 4 and changed a few things, like the `grave` key, `ESC` and `/`.
|
||||
|
||||
3. Build your hex file
|
||||
```
|
||||
make dz60:billiams_layout2 # be in the qmk_firmware directory to do this
|
||||
```
|
||||
A hex file `dz60_billiams_layout2.hex` will be created in the base qmk_firmware directory
|
||||
|
||||
4. Before plugging in your keyboard into your computer, hold `SPACE` and `B` keys down
|
||||
5. Holding those keys down, plug the keyboard into your computer, which will put the keyboard in bootlegger mode
|
||||
6. If you are using [QMK toolbox](https://github.com/qmk/qmk_toolbox/releases), upload the .hex file you made above, select it and hit the flash button. For the love of all that is good and holy on Earth, don't hit the load button, that will load the default keymap and that's not what you want! Unless it is, in which case click away.
|
||||
|
||||
Note: If you didn't follow my instructions in 4 and accidentally loaded the default keymap, then to `RESET` the keyboard and kick it into bootleg mode again, hold the `down arrow` key and `\`. The default layout is Build 1 and sets the `MENU` key on that build to `Fn`. `MENU` corresponds to `down arrow` in build 4. Note that you don't have to unplug the keyboard.
|
||||
|
||||
Hope this helps!
|
||||
|
||||
### 0 Qwerty
|
||||
```
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | DEL |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | ESC |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Ctrl | Alt | Cmd | Space | Cmd | Alt | Ctrl | Fn |
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
### 1 Fn Layer
|
||||
```
|
||||
FN Layer
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | Mute | Prev | Next |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | Left| Down| Up |Right| | | Play/Pause |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | | |Scr- |Scr+ | | | | RESET |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
```
|
||||
6
keyboards/dz60/keymaps/billiams_layout4/build_flash.sh
Normal file
6
keyboards/dz60/keymaps/billiams_layout4/build_flash.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
# dfu-programmer atmega32u4 erase --force
|
||||
# dfu-programmer atmega32u4 flash /path/to/firmware.hex
|
||||
# dfu-programmer atmega32u4 reset
|
||||
|
||||
# run this in the qmk_firmware directory
|
||||
make dz60:billiams_layout4:flash
|
||||
1
keyboards/dz60/keymaps/billiams_layout4/config.h
Normal file
1
keyboards/dz60/keymaps/billiams_layout4/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#define GRAVE_ESC_GUI_OVERRIDE # Always send Escape if GUI is pressed
|
||||
48
keyboards/dz60/keymaps/billiams_layout4/keymap.c
Normal file
48
keyboards/dz60/keymaps/billiams_layout4/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . |Tap(/) Shft| U | ESC |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | Alt | Cmd | Space | Alt | Fn | L | D | R |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
LAYOUT_directional(
|
||||
KC_GRAVE, 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,
|
||||
MO(1), 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, _______, RSFT_T(KC_SLSH) , KC_UP, KC_ESCAPE,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
/* FN Layer
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| Mute | Vol-| Vol+| Prev | Next |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | Left| Down| Up |Right| | | Play/Pause |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |Scr- |Scr+ | |PG_UP|RESET|
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | HOME|PG_DN| END |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
LAYOUT_directional(
|
||||
_______, 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_DEL,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_MUTE, KC__VOLDOWN, KC__VOLUP, KC_MRWD, KC_MFFD,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
|
||||
KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, KC_PGUP, RESET,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDOWN, KC_END
|
||||
),
|
||||
};
|
||||
71
keyboards/dz60/keymaps/billiams_layout4/readme.md
Normal file
71
keyboards/dz60/keymaps/billiams_layout4/readme.md
Normal file
@@ -0,0 +1,71 @@
|
||||
## Billiam's DZ60 Directional layout
|
||||
|
||||
This layout is optimized for MacOS and is for a Build 4 DZ60 with a 2U left shift, 2U right shift and an arrow
|
||||
cluster in the bottom right. Don't use this layout if you didn't get Build 4, you will enter a world of pain Donny.
|
||||
|
||||
Settings:
|
||||
|
||||
* The `CAPS LOCK` key is replaced with a second function key.
|
||||
* The `ALT` and `CMD` keys are swapped to replicate the Mac layout.
|
||||
* Del is available as `Fn` + `Backspace`
|
||||
* `/ ?` are available when you tap the right shift. Otherwise RShift is shift when held down
|
||||
* RESET is available as `Fn`+ ` ESC`
|
||||
* Underglow toggle is available as `Fn` + `Q`. Yes your keyboard has lights even if you didn't get the LEDs. Bonus!
|
||||
* vim-style arrow key bindings H J K L in layer 1
|
||||
|
||||
### Initial Installation
|
||||
|
||||
I found the instructions to be longer than they had to be, and I ended up having to Google some steps anyway. These are the steps I took to get my keyboard setup, in case you are new to the process.
|
||||
|
||||
1. Clone the qmk_firmware repo locally
|
||||
```
|
||||
# Choose one:
|
||||
git clone git@github.com:qmk/qmk_firmware.git # OR
|
||||
git clone https://github.com/qmk/qmk_firmware.git
|
||||
```
|
||||
2. Customize your layout by starting with a [keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps). I copied [StephenGrier](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps/stephengrier)'s and modified it for DZ60 Build 4 and changed a few things, like the `grave` key, `ESC` and `/`.
|
||||
|
||||
3. Build your hex file
|
||||
```
|
||||
make dz60:billiams_layout4 # be in the qmk_firmware directory to do this
|
||||
```
|
||||
A hex file `dz60_billiams_layout4.hex` will be created in the base qmk_firmware directory
|
||||
|
||||
4. Before plugging in your keyboard into your computer, hold `SPACE` and `B` keys down
|
||||
5. Holding those keys down, plug the keyboard into your computer, which will put the keyboard in bootlegger mode
|
||||
6. If you are using [QMK toolbox](https://github.com/qmk/qmk_toolbox/releases), upload the .hex file you made above, select it and hit the flash button. For the love of all that is good and holy on Earth, don't hit the load button, that will load the default keymap and that's not what you want! Unless it is, in which case click away.
|
||||
|
||||
Note: If you didn't follow my instructions in 4 and accidentally loaded the default keymap, then to `RESET` the keyboard and kick it into bootleg mode again, hold the `down arrow` key and `\`. The default layout is Build 1 and sets the `MENU` key on that build to `Fn`. `MENU` corresponds to `down arrow` in build 4. Note that you don't have to unplug the keyboard.
|
||||
|
||||
Hope this helps!
|
||||
|
||||
### 0 Qwerty
|
||||
```
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Shift | Z | X | C | V | B | N | M | , | . | Tap:/ RSh | U | ESC |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Ctrl | Alt | Cmd | Space | Alt | Fn | L | D | R |
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
### 1 Fn Layer
|
||||
```
|
||||
FN Layer
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| Mute | Vol-| Vol+| Prev | Next |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | Left| Down| Up |Right| | | Play/Pause |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | | |Scr- |Scr+ | | PG_UP |RESET|
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | HOME | PG_DN | END |
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
```
|
||||
@@ -1,120 +1,112 @@
|
||||
#include "dz60rgb.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{0, K_14, J_14, L_14},
|
||||
{0, K_13, J_13, L_13},
|
||||
{0, K_12, J_12, L_12},
|
||||
{0, K_11, J_11, L_11},
|
||||
{0, K_10, J_10, L_10},
|
||||
{0, K_9, J_9, L_9},
|
||||
{0, K_8, J_8, L_8},
|
||||
{0, K_7, J_7, L_7},
|
||||
{0, K_6, J_6, L_6},
|
||||
{0, K_5, J_5, L_5},
|
||||
{0, K_4, J_4, L_4},
|
||||
{0, K_3, J_3, L_3},
|
||||
{0, K_2, J_2, L_2},
|
||||
{0, K_1, J_1, L_1},
|
||||
{0, H_14, G_14, I_14},
|
||||
{0, H_13, G_13, I_13},
|
||||
{0, H_12, G_12, I_12},
|
||||
{0, H_11, G_11, I_11},
|
||||
{0, H_10, G_10, I_10},
|
||||
{0, H_9, G_9, I_9},
|
||||
{0, H_8, G_8, I_8},
|
||||
{0, H_7, G_7, I_7},
|
||||
{0, H_6, G_6, I_6},
|
||||
{0, H_5, G_5, I_5},
|
||||
{0, H_4, G_4, I_4},
|
||||
{0, H_3, G_3, I_3},
|
||||
{0, H_2, G_2, I_2},
|
||||
{0, H_1, G_1, I_1},
|
||||
{0, E_14, D_14, F_14},
|
||||
{0, E_12, D_12, F_12},
|
||||
{0, E_11, D_11, F_11},
|
||||
{0, E_10, D_10, F_10},
|
||||
{0, E_9, D_9, F_9},
|
||||
{0, E_8, D_8, F_8},
|
||||
{0, E_7, D_7, F_7},
|
||||
{0, E_6, D_6, F_6},
|
||||
{0, E_5, D_5, F_5},
|
||||
{0, E_4, D_4, F_4},
|
||||
{0, E_3, D_3, F_3},
|
||||
{0, E_2, D_2, F_2},
|
||||
{0, E_1, D_1, F_1},
|
||||
{0, B_14, A_14, C_14},
|
||||
{0, B_13, A_13, C_13},
|
||||
{0, B_11, A_11, C_11},
|
||||
{0, B_10, A_10, C_10},
|
||||
{0, B_9, A_9, C_9},
|
||||
{0, B_8, A_8, C_8},
|
||||
{0, B_7, A_7, C_7},
|
||||
{0, B_6, A_6, C_6},
|
||||
{0, B_5, A_5, C_5},
|
||||
{0, B_4, A_4, C_4},
|
||||
{0, B_3, A_3, C_3},
|
||||
{0, B_2, A_2, C_2},
|
||||
{0, B_1, A_1, C_1},
|
||||
{0, B_15, A_15, C_15},
|
||||
{0, E_13, D_13, F_13},
|
||||
{0, B_12, A_12, C_12},
|
||||
{0, E_15, D_15, F_15},
|
||||
{0, H_15, G_15, I_15},
|
||||
{0, B_16, A_16, C_16},
|
||||
{0, E_16, D_16, F_16},
|
||||
{0, H_16, G_16, I_16},
|
||||
{0, K_16, J_16, L_16},
|
||||
{ 0, K_14, J_14, L_14 },
|
||||
{ 0, K_13, J_13, L_13 },
|
||||
{ 0, K_12, J_12, L_12 },
|
||||
{ 0, K_11, J_11, L_11 },
|
||||
{ 0, K_10, J_10, L_10 },
|
||||
{ 0, K_9, J_9, L_9 },
|
||||
{ 0, K_8, J_8, L_8 },
|
||||
{ 0, K_7, J_7, L_7 },
|
||||
{ 0, K_6, J_6, L_6 },
|
||||
{ 0, K_5, J_5, L_5 },
|
||||
{ 0, K_4, J_4, L_4 },
|
||||
{ 0, K_3, J_3, L_3 },
|
||||
{ 0, K_2, J_2, L_2 },
|
||||
{ 0, K_1, J_1, L_1 },
|
||||
|
||||
{ 0, H_14, G_14, I_14 },
|
||||
{ 0, H_13, G_13, I_13 },
|
||||
{ 0, H_12, G_12, I_12 },
|
||||
{ 0, H_11, G_11, I_11 },
|
||||
{ 0, H_10, G_10, I_10 },
|
||||
{ 0, H_9, G_9, I_9 },
|
||||
{ 0, H_8, G_8, I_8 },
|
||||
{ 0, H_7, G_7, I_7 },
|
||||
{ 0, H_6, G_6, I_6 },
|
||||
{ 0, H_5, G_5, I_5 },
|
||||
{ 0, H_4, G_4, I_4 },
|
||||
{ 0, H_3, G_3, I_3 },
|
||||
{ 0, H_2, G_2, I_2 },
|
||||
{ 0, H_1, G_1, I_1 },
|
||||
|
||||
{ 0, E_14, D_14, F_14 },
|
||||
{ 0, E_12, D_12, F_12 },
|
||||
{ 0, E_11, D_11, F_11 },
|
||||
{ 0, E_10, D_10, F_10 },
|
||||
{ 0, E_9, D_9, F_9 },
|
||||
{ 0, E_8, D_8, F_8 },
|
||||
{ 0, E_7, D_7, F_7 },
|
||||
{ 0, E_6, D_6, F_6 },
|
||||
{ 0, E_5, D_5, F_5 },
|
||||
{ 0, E_4, D_4, F_4 },
|
||||
{ 0, E_3, D_3, F_3 },
|
||||
{ 0, E_2, D_2, F_2 },
|
||||
{ 0, E_1, D_1, F_1 },
|
||||
|
||||
{ 0, B_14, A_14, C_14 },
|
||||
{ 0, B_13, A_13, C_13 },
|
||||
{ 0, B_11, A_11, C_11 },
|
||||
{ 0, B_10, A_10, C_10 },
|
||||
{ 0, B_9, A_9, C_9 },
|
||||
{ 0, B_8, A_8, C_8 },
|
||||
{ 0, B_7, A_7, C_7 },
|
||||
{ 0, B_6, A_6, C_6 },
|
||||
{ 0, B_5, A_5, C_5 },
|
||||
{ 0, B_4, A_4, C_4 },
|
||||
{ 0, B_3, A_3, C_3 },
|
||||
{ 0, B_2, A_2, C_2 },
|
||||
{ 0, B_1, A_1, C_1 },
|
||||
|
||||
{ 0, B_15, A_15, C_15 },
|
||||
{ 0, E_13, D_13, F_13 },
|
||||
{ 0, B_12, A_12, C_12 },
|
||||
{ 0, E_15, D_15, F_15 },
|
||||
{ 0, H_15, G_15, I_15 },
|
||||
{ 0, B_16, A_16, C_16 },
|
||||
{ 0, E_16, D_16, F_16 },
|
||||
{ 0, H_16, G_16, I_16 },
|
||||
{ 0, K_16, J_16, L_16 }
|
||||
};
|
||||
|
||||
led_config_t g_led_config = { {
|
||||
{ 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
|
||||
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
|
||||
{ 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
|
||||
{ 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
|
||||
{ 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
|
||||
}, {
|
||||
{ 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
|
||||
{ 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
|
||||
{ 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 224, 48 },
|
||||
{ 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 }, { 224, 64 }, { 208, 64 },
|
||||
{ 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
|
||||
}, {
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
|
||||
1, 1, 1, 4, 1, 1, 1
|
||||
} };
|
||||
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
{ 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
|
||||
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
|
||||
{ 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
|
||||
{ 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
|
||||
{ 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
|
||||
}, {
|
||||
{ 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
|
||||
{ 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
|
||||
{ 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
|
||||
{ 224, 48 }, { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 },
|
||||
{ 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
|
||||
}, {
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 1, 1, 1, 1, 4, 1, 1, 1
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
void suspend_power_down_kb(void)
|
||||
{
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
||||
void suspend_wakeup_init_kb(void)
|
||||
{
|
||||
void suspend_wakeup_init_kb(void) {
|
||||
rgb_matrix_set_suspend_state(false);
|
||||
suspend_wakeup_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void rgb_matrix_indicators_user(void)
|
||||
{
|
||||
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK))
|
||||
{
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
#pragma once
|
||||
#define XXX KC_NO
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#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, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D \
|
||||
) { \
|
||||
{ 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 }, \
|
||||
|
||||
@@ -4,12 +4,18 @@
|
||||
|
||||
A hotswap 60% RGB keyboard.
|
||||
|
||||
Keyboard Maintainer: DZtech
|
||||
Hardware Supported: DZtech dz60rgb, dz60rgb-ansi
|
||||
Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
||||
* Hardware Supported: DZtech DZ60RGB V1 and V2
|
||||
* Hardware Availability: [KBDfans](https://kbdfans.com/)
|
||||
|
||||
There are two versions of the DZ60RGB. Please use the appropriate firmware for your board.
|
||||
|
||||
* V1: STM32F303 (Arm), takes .bin files
|
||||
* V2: ATmega32U4 (AVR), takes .hex files
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make dztech/dz60rgb:default
|
||||
make dztech/dz60rgb/v1:default # Arm (STM32F303)
|
||||
make dztech/dz60rgb/v2:default # AVR (ATmega32U4)
|
||||
|
||||
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).
|
||||
|
||||
@@ -1,118 +1,110 @@
|
||||
#include "dz60rgb_ansi.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{0, K_14, J_14, L_14},
|
||||
{0, K_13, J_13, L_13},
|
||||
{0, K_12, J_12, L_12},
|
||||
{0, K_11, J_11, L_11},
|
||||
{0, K_10, J_10, L_10},
|
||||
{0, K_9, J_9, L_9},
|
||||
{0, K_8, J_8, L_8},
|
||||
{0, K_7, J_7, L_7},
|
||||
{0, K_6, J_6, L_6},
|
||||
{0, K_5, J_5, L_5},
|
||||
{0, K_4, J_4, L_4},
|
||||
{0, K_3, J_3, L_3},
|
||||
{0, K_2, J_2, L_2},
|
||||
{0, K_1, J_1, L_1},
|
||||
{0, H_14, G_14, I_14},
|
||||
{0, H_13, G_13, I_13},
|
||||
{0, H_12, G_12, I_12},
|
||||
{0, H_11, G_11, I_11},
|
||||
{0, H_10, G_10, I_10},
|
||||
{0, H_9, G_9, I_9},
|
||||
{0, H_8, G_8, I_8},
|
||||
{0, H_7, G_7, I_7},
|
||||
{0, H_6, G_6, I_6},
|
||||
{0, H_5, G_5, I_5},
|
||||
{0, H_4, G_4, I_4},
|
||||
{0, H_3, G_3, I_3},
|
||||
{0, H_2, G_2, I_2},
|
||||
{0, H_1, G_1, I_1},
|
||||
{0, E_14, D_14, F_14},
|
||||
{0, E_12, D_12, F_12},
|
||||
{0, E_11, D_11, F_11},
|
||||
{0, E_10, D_10, F_10},
|
||||
{0, E_9, D_9, F_9},
|
||||
{0, E_8, D_8, F_8},
|
||||
{0, E_7, D_7, F_7},
|
||||
{0, E_6, D_6, F_6},
|
||||
{0, E_5, D_5, F_5},
|
||||
{0, E_4, D_4, F_4},
|
||||
{0, E_3, D_3, F_3},
|
||||
{0, E_2, D_2, F_2},
|
||||
{0, E_1, D_1, F_1},
|
||||
{0, B_13, A_13, C_13},
|
||||
{0, B_11, A_11, C_11},
|
||||
{0, B_10, A_10, C_10},
|
||||
{0, B_9, A_9, C_9},
|
||||
{0, B_8, A_8, C_8},
|
||||
{0, B_7, A_7, C_7},
|
||||
{0, B_6, A_6, C_6},
|
||||
{0, B_5, A_5, C_5},
|
||||
{0, B_4, A_4, C_4},
|
||||
{0, B_3, A_3, C_3},
|
||||
{0, B_2, A_2, C_2},
|
||||
{0, B_1, A_1, C_1},
|
||||
{0, B_15, A_15, C_15},
|
||||
{0, E_13, D_13, F_13},
|
||||
{0, B_12, A_12, C_12},
|
||||
{0, E_15, D_15, F_15},
|
||||
{0, B_16, A_16, C_16},
|
||||
{0, E_16, D_16, F_16},
|
||||
{0, H_16, G_16, I_16},
|
||||
{0, K_16, J_16, L_16},
|
||||
{ 0, K_14, J_14, L_14 },
|
||||
{ 0, K_13, J_13, L_13 },
|
||||
{ 0, K_12, J_12, L_12 },
|
||||
{ 0, K_11, J_11, L_11 },
|
||||
{ 0, K_10, J_10, L_10 },
|
||||
{ 0, K_9, J_9, L_9 },
|
||||
{ 0, K_8, J_8, L_8 },
|
||||
{ 0, K_7, J_7, L_7 },
|
||||
{ 0, K_6, J_6, L_6 },
|
||||
{ 0, K_5, J_5, L_5 },
|
||||
{ 0, K_4, J_4, L_4 },
|
||||
{ 0, K_3, J_3, L_3 },
|
||||
{ 0, K_2, J_2, L_2 },
|
||||
{ 0, K_1, J_1, L_1 },
|
||||
|
||||
{ 0, H_14, G_14, I_14 },
|
||||
{ 0, H_13, G_13, I_13 },
|
||||
{ 0, H_12, G_12, I_12 },
|
||||
{ 0, H_11, G_11, I_11 },
|
||||
{ 0, H_10, G_10, I_10 },
|
||||
{ 0, H_9, G_9, I_9 },
|
||||
{ 0, H_8, G_8, I_8 },
|
||||
{ 0, H_7, G_7, I_7 },
|
||||
{ 0, H_6, G_6, I_6 },
|
||||
{ 0, H_5, G_5, I_5 },
|
||||
{ 0, H_4, G_4, I_4 },
|
||||
{ 0, H_3, G_3, I_3 },
|
||||
{ 0, H_2, G_2, I_2 },
|
||||
{ 0, H_1, G_1, I_1 },
|
||||
|
||||
{ 0, E_14, D_14, F_14 },
|
||||
{ 0, E_12, D_12, F_12 },
|
||||
{ 0, E_11, D_11, F_11 },
|
||||
{ 0, E_10, D_10, F_10 },
|
||||
{ 0, E_9, D_9, F_9 },
|
||||
{ 0, E_8, D_8, F_8 },
|
||||
{ 0, E_7, D_7, F_7 },
|
||||
{ 0, E_6, D_6, F_6 },
|
||||
{ 0, E_5, D_5, F_5 },
|
||||
{ 0, E_4, D_4, F_4 },
|
||||
{ 0, E_3, D_3, F_3 },
|
||||
{ 0, E_2, D_2, F_2 },
|
||||
{ 0, E_1, D_1, F_1 },
|
||||
|
||||
{ 0, B_13, A_13, C_13 },
|
||||
{ 0, B_11, A_11, C_11 },
|
||||
{ 0, B_10, A_10, C_10 },
|
||||
{ 0, B_9, A_9, C_9 },
|
||||
{ 0, B_8, A_8, C_8 },
|
||||
{ 0, B_7, A_7, C_7 },
|
||||
{ 0, B_6, A_6, C_6 },
|
||||
{ 0, B_5, A_5, C_5 },
|
||||
{ 0, B_4, A_4, C_4 },
|
||||
{ 0, B_3, A_3, C_3 },
|
||||
{ 0, B_2, A_2, C_2 },
|
||||
{ 0, B_1, A_1, C_1 },
|
||||
|
||||
{ 0, B_15, A_15, C_15 },
|
||||
{ 0, E_13, D_13, F_13 },
|
||||
{ 0, B_12, A_12, C_12 },
|
||||
{ 0, E_15, D_15, F_15 },
|
||||
{ 0, B_16, A_16, C_16 },
|
||||
{ 0, E_16, D_16, F_16 },
|
||||
{ 0, H_16, G_16, I_16 },
|
||||
{ 0, K_16, J_16, L_16 }
|
||||
};
|
||||
|
||||
led_config_t g_led_config = { {
|
||||
{ 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
|
||||
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
|
||||
{ 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
|
||||
{ 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
|
||||
{ 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
|
||||
}, {
|
||||
{ 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
|
||||
{ 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
|
||||
{ 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
|
||||
{ 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
|
||||
{ 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
|
||||
}, {
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
|
||||
1, 4, 1, 1, 1
|
||||
} };
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
{ 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
|
||||
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
|
||||
{ 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
|
||||
{ 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
|
||||
{ 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
|
||||
}, {
|
||||
{ 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
|
||||
{ 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
|
||||
{ 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
|
||||
{ 210, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 },
|
||||
{ 222, 64 }, { 202, 64 }, { 182, 64 }, { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
|
||||
}, {
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 1, 1, 1, 4, 1, 1, 1
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
void suspend_power_down_kb(void)
|
||||
{
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
||||
void suspend_wakeup_init_kb(void)
|
||||
{
|
||||
void suspend_wakeup_init_kb(void) {
|
||||
rgb_matrix_set_suspend_state(false);
|
||||
suspend_wakeup_init_user();
|
||||
}
|
||||
|
||||
|
||||
__attribute__ ((weak))
|
||||
void rgb_matrix_indicators_user(void)
|
||||
{
|
||||
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK))
|
||||
{
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
#pragma once
|
||||
#define XXX KC_NO
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#define LAYOUT_60_ansi( \
|
||||
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, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
|
||||
K40, K41, K42, K45, K49, K4A, K4B, K4D \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
|
||||
K40, K41, K42, K45, K49, K4A, K4B, K4D \
|
||||
) { \
|
||||
{ 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 }, \
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
# DZ60RGB
|
||||
# DZ60RGB-ANSI
|
||||
|
||||

|
||||
|
||||
A hotswap 60% RGB keyboard.
|
||||
|
||||
Keyboard Maintainer: DZtech
|
||||
Hardware Supported: DZtech dz60rgb, dz60rgb-ansi
|
||||
Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
||||
* Hardware Supported: DZtech DZ60RGB-ANSI V1 and V2
|
||||
* Hardware Availability: [KBDfans](https://kbdfans.com/)
|
||||
|
||||
There are two versions of the DZ60RGB-ANSI. Please use the appropriate firmware for your board.
|
||||
|
||||
* V1: STM32F303 (Arm), takes .bin files
|
||||
* V2: ATmega32U4 (AVR), takes .hex files
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make dztech/dz60rgb:default
|
||||
make dztech/dz60rgb_ansi/v1:default # Arm (STM32F303)
|
||||
make dztech/dz60rgb_ansi/v2:default # AVR (ATmega32U4)
|
||||
|
||||
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).
|
||||
|
||||
@@ -1,116 +1,111 @@
|
||||
#include "dz60rgb_wkl.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{0, H_15, G_15, I_15},
|
||||
{0, K_14, J_14, L_14},
|
||||
{0, K_13, J_13, L_13},
|
||||
{0, K_12, J_12, L_12},
|
||||
{0, K_11, J_11, L_11},
|
||||
{0, K_10, J_10, L_10},
|
||||
{0, K_9, J_9, L_9},
|
||||
{0, K_8, J_8, L_8},
|
||||
{0, K_7, J_7, L_7},
|
||||
{0, K_6, J_6, L_6},
|
||||
{0, K_5, J_5, L_5},
|
||||
{0, K_4, J_4, L_4},
|
||||
{0, K_3, J_3, L_3},
|
||||
{0, K_2, J_2, L_2},
|
||||
{0, K_1, J_1, L_1},
|
||||
{0, H_14, G_14, I_14},
|
||||
{0, H_13, G_13, I_13},
|
||||
{0, H_12, G_12, I_12},
|
||||
{0, H_11, G_11, I_11},
|
||||
{0, H_10, G_10, I_10},
|
||||
{0, H_9, G_9, I_9},
|
||||
{0, H_8, G_8, I_8},
|
||||
{0, H_7, G_7, I_7},
|
||||
{0, H_6, G_6, I_6},
|
||||
{0, H_5, G_5, I_5},
|
||||
{0, H_4, G_4, I_4},
|
||||
{0, H_3, G_3, I_3},
|
||||
{0, H_2, G_2, I_2},
|
||||
{0, H_1, G_1, I_1},
|
||||
{0, E_14, D_14, F_14},
|
||||
{0, E_12, D_12, F_12},
|
||||
{0, E_11, D_11, F_11},
|
||||
{0, E_10, D_10, F_10},
|
||||
{0, E_9, D_9, F_9},
|
||||
{0, E_8, D_8, F_8},
|
||||
{0, E_7, D_7, F_7},
|
||||
{0, E_6, D_6, F_6},
|
||||
{0, E_5, D_5, F_5},
|
||||
{0, E_4, D_4, F_4},
|
||||
{0, E_3, D_3, F_3},
|
||||
{0, E_2, D_2, F_2},
|
||||
{0, E_1, D_1, F_1},
|
||||
{0, B_14, A_14, C_14},
|
||||
{0, B_13, A_13, C_13},
|
||||
{0, B_11, A_11, C_11},
|
||||
{0, B_10, A_10, C_10},
|
||||
{0, B_9, A_9, C_9},
|
||||
{0, B_8, A_8, C_8},
|
||||
{0, B_7, A_7, C_7},
|
||||
{0, B_6, A_6, C_6},
|
||||
{0, B_5, A_5, C_5},
|
||||
{0, B_4, A_4, C_4},
|
||||
{0, B_3, A_3, C_3},
|
||||
{0, B_2, A_2, C_2},
|
||||
{0, B_1, A_1, C_1},
|
||||
{0, B_15, A_15, C_15},
|
||||
{0, E_13, D_13, F_13},
|
||||
{0, B_12, A_12, C_12},
|
||||
{0, B_16, A_16, C_16},
|
||||
{0, E_16, D_16, F_16},
|
||||
{0, H_16, G_16, I_16},
|
||||
{0, K_16, J_16, L_16},
|
||||
{ 0, H_15, G_15, I_15 },
|
||||
{ 0, K_14, J_14, L_14 },
|
||||
{ 0, K_13, J_13, L_13 },
|
||||
{ 0, K_12, J_12, L_12 },
|
||||
{ 0, K_11, J_11, L_11 },
|
||||
{ 0, K_10, J_10, L_10 },
|
||||
{ 0, K_9, J_9, L_9 },
|
||||
{ 0, K_8, J_8, L_8 },
|
||||
{ 0, K_7, J_7, L_7 },
|
||||
{ 0, K_6, J_6, L_6 },
|
||||
{ 0, K_5, J_5, L_5 },
|
||||
{ 0, K_4, J_4, L_4 },
|
||||
{ 0, K_3, J_3, L_3 },
|
||||
{ 0, K_2, J_2, L_2 },
|
||||
{ 0, K_1, J_1, L_1 },
|
||||
|
||||
{ 0, H_14, G_14, I_14 },
|
||||
{ 0, H_13, G_13, I_13 },
|
||||
{ 0, H_12, G_12, I_12 },
|
||||
{ 0, H_11, G_11, I_11 },
|
||||
{ 0, H_10, G_10, I_10 },
|
||||
{ 0, H_9, G_9, I_9 },
|
||||
{ 0, H_8, G_8, I_8 },
|
||||
{ 0, H_7, G_7, I_7 },
|
||||
{ 0, H_6, G_6, I_6 },
|
||||
{ 0, H_5, G_5, I_5 },
|
||||
{ 0, H_4, G_4, I_4 },
|
||||
{ 0, H_3, G_3, I_3 },
|
||||
{ 0, H_2, G_2, I_2 },
|
||||
{ 0, H_1, G_1, I_1 },
|
||||
|
||||
{ 0, E_14, D_14, F_14 },
|
||||
{ 0, E_12, D_12, F_12 },
|
||||
{ 0, E_11, D_11, F_11 },
|
||||
{ 0, E_10, D_10, F_10 },
|
||||
{ 0, E_9, D_9, F_9 },
|
||||
{ 0, E_8, D_8, F_8 },
|
||||
{ 0, E_7, D_7, F_7 },
|
||||
{ 0, E_6, D_6, F_6 },
|
||||
{ 0, E_5, D_5, F_5 },
|
||||
{ 0, E_4, D_4, F_4 },
|
||||
{ 0, E_3, D_3, F_3 },
|
||||
{ 0, E_2, D_2, F_2 },
|
||||
{ 0, E_1, D_1, F_1 },
|
||||
|
||||
{ 0, B_14, A_14, C_14 },
|
||||
{ 0, B_13, A_13, C_13 },
|
||||
{ 0, B_11, A_11, C_11 },
|
||||
{ 0, B_10, A_10, C_10 },
|
||||
{ 0, B_9, A_9, C_9 },
|
||||
{ 0, B_8, A_8, C_8 },
|
||||
{ 0, B_7, A_7, C_7 },
|
||||
{ 0, B_6, A_6, C_6 },
|
||||
{ 0, B_5, A_5, C_5 },
|
||||
{ 0, B_4, A_4, C_4 },
|
||||
{ 0, B_3, A_3, C_3 },
|
||||
{ 0, B_2, A_2, C_2 },
|
||||
{ 0, B_1, A_1, C_1 },
|
||||
|
||||
{ 0, B_15, A_15, C_15 },
|
||||
{ 0, E_13, D_13, F_13 },
|
||||
{ 0, B_12, A_12, C_12 },
|
||||
{ 0, B_16, A_16, C_16 },
|
||||
{ 0, E_16, D_16, F_16 },
|
||||
{ 0, H_16, G_16, I_16 },
|
||||
{ 0, K_16, J_16, L_16 }
|
||||
};
|
||||
|
||||
led_config_t g_led_config = { {
|
||||
{ 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
|
||||
{ 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
|
||||
{ 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 },
|
||||
{ 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
|
||||
{ 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
|
||||
}, {
|
||||
{ 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
|
||||
{ 0, 0 }, { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
|
||||
{ 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
|
||||
{ 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
|
||||
{ 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
|
||||
}, {
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 4, 1, 1, 1
|
||||
} };
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
{ 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
|
||||
{ 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
|
||||
{ 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 },
|
||||
{ 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
|
||||
{ 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
|
||||
}, {
|
||||
{ 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
|
||||
{ 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
|
||||
{ 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
|
||||
{ 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 },
|
||||
{ 218, 64 }, { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
|
||||
}, {
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 1, 1, 4, 1, 1, 1
|
||||
}
|
||||
};
|
||||
#endif
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
void suspend_power_down_kb(void)
|
||||
{
|
||||
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
||||
void suspend_wakeup_init_kb(void)
|
||||
{
|
||||
void suspend_wakeup_init_kb(void) {
|
||||
rgb_matrix_set_suspend_state(false);
|
||||
suspend_wakeup_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void rgb_matrix_indicators_user(void)
|
||||
{
|
||||
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK))
|
||||
{
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
rgb_matrix_set_color(41, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
#pragma once
|
||||
#define XXX KC_NO
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#define LAYOUT_60_tsangan_hhkb( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C,\
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,\
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D,\
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D,\
|
||||
K40, K41, K42, K45, K4A, K4B, K4D \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K45, K4A, K4B, K4D \
|
||||
) { \
|
||||
{ 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 }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
|
||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D } \
|
||||
{ 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 }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
|
||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_HHKB LAYOUT_60_tsangan_hhkb
|
||||
|
||||
@@ -4,12 +4,18 @@
|
||||
|
||||
A hotswap 60% RGB keyboard.
|
||||
|
||||
Keyboard Maintainer: DZtech
|
||||
Hardware Supported: DZtech dz60rgb, dz60rgb-ansi
|
||||
Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
||||
* Hardware Supported: DZtech DZ60RGB-WKL V1 and V2
|
||||
* Hardware Availability: [KBDfans](https://kbdfans.com/)
|
||||
|
||||
There are two versions of the DZ60RGB-WKL. Please use the appropriate firmware for your board.
|
||||
|
||||
* V1: STM32F303 (Arm), takes .bin files
|
||||
* V2: ATmega32U4 (AVR), takes .hex files
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make dztech/dz60rgb:default
|
||||
make dztech/dz60rgb_wkl/v1:default # Arm (STM32F303)
|
||||
make dztech/dz60rgb_wkl/v2:default # AVR (ATmega32U4)
|
||||
|
||||
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).
|
||||
|
||||
@@ -1,129 +1,117 @@
|
||||
#include "dz65rgb.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{ 0, C8_8, C7_8, C6_8 },
|
||||
{ 0, C9_8, C7_7, C6_7 },
|
||||
{ 0, C9_7, C8_7, C6_6 },
|
||||
{ 0, C9_6, C8_6, C7_6 },
|
||||
{ 0, C9_5, C8_5, C7_5 },
|
||||
{ 0, C9_4, C8_4, C7_4 },
|
||||
{ 0, C9_3, C8_3, C7_3 },
|
||||
{ 0, C9_2, C8_2, C7_2 },
|
||||
{ 0, C9_1, C8_1, C7_1 },
|
||||
{ 0, C2_9, C3_9, C4_9 },
|
||||
{ 0, C1_9, C3_10, C4_10 },
|
||||
{ 0, C1_10, C2_10, C4_11 },
|
||||
{ 0, C1_11, C2_11, C3_11 },
|
||||
{ 0, C1_13, C2_13, C3_13 },
|
||||
{ 0, C1_14, C2_14, C3_14 },
|
||||
|
||||
{0, C8_8, C7_8, C6_8}, // LA17
|
||||
{0, C9_8, C7_7, C6_7}, // LA16
|
||||
{0, C9_7, C8_7, C6_6}, // LA15
|
||||
{0, C9_6, C8_6, C7_6}, // LA14
|
||||
{0, C9_5, C8_5, C7_5}, // LA13
|
||||
{0, C9_4, C8_4, C7_4}, // LA12
|
||||
{0, C9_3, C8_3, C7_3}, // LA11
|
||||
{0, C9_2, C8_2, C7_2}, // LA10
|
||||
{0, C9_1, C8_1, C7_1}, // LA9
|
||||
{0, C2_9, C3_9, C4_9}, // LB0
|
||||
{0, C1_9, C3_10, C4_10}, // LB1
|
||||
{0, C1_10, C2_10, C4_11}, // LB2
|
||||
{0, C1_11, C2_11, C3_11}, // LB3
|
||||
{0, C1_13, C2_13, C3_13}, // LB5
|
||||
{0, C1_14, C2_14, C3_14}, // LB6
|
||||
{ 0, C1_7, C2_7, C3_7 },
|
||||
{ 0, C1_6, C2_6, C3_6 },
|
||||
{ 0, C1_5, C2_5, C3_5 },
|
||||
{ 0, C1_4, C2_4, C3_4 },
|
||||
{ 0, C1_3, C2_3, C3_3 },
|
||||
{ 0, C1_2, C2_2, C4_3 },
|
||||
{ 0, C1_1, C3_2, C4_2 },
|
||||
{ 0, C2_1, C3_1, C4_1 },
|
||||
{ 0, C9_9, C8_9, C7_9 },
|
||||
{ 0, C9_10, C8_10, C7_10 },
|
||||
{ 0, C9_11, C8_11, C7_11 },
|
||||
{ 0, C9_12, C8_12, C7_12 },
|
||||
{ 0, C9_13, C8_13, C7_13 },
|
||||
{ 0, C9_14, C8_14, C7_14 },
|
||||
{ 0, C1_15, C2_15, C3_15 },
|
||||
|
||||
{0, C1_7, C2_7, C3_7}, // LA7
|
||||
{0, C1_6, C2_6, C3_6}, // LA6
|
||||
{0, C1_5, C2_5, C3_5}, // LA5
|
||||
{0, C1_4, C2_4, C3_4}, // LA4
|
||||
{0, C1_3, C2_3, C3_3}, // LA3
|
||||
{0, C1_2, C2_2, C4_3}, // LA2
|
||||
{0, C1_1, C3_2, C4_2}, // LA1
|
||||
{0, C2_1, C3_1, C4_1}, // LA0
|
||||
{0, C9_9, C8_9, C7_9}, // LB9
|
||||
{0, C9_10, C8_10, C7_10}, // LB10
|
||||
{0, C9_11, C8_11, C7_11}, // LB11
|
||||
{0, C9_12, C8_12, C7_12}, // LB12
|
||||
{0, C9_13, C8_13, C7_13}, // LB13
|
||||
{0, C9_14, C8_14, C7_14}, // LB14
|
||||
{0, C1_15, C2_15, C3_15}, // LB7
|
||||
{ 0, C1_8, C2_8, C3_8 },
|
||||
{ 1, C9_6, C8_6, C7_6 },
|
||||
{ 1, C9_5, C8_5, C7_5 },
|
||||
{ 1, C9_4, C8_4, C7_4 },
|
||||
{ 1, C9_3, C8_3, C7_3 },
|
||||
{ 1, C9_2, C8_2, C7_2 },
|
||||
{ 1, C9_1, C8_1, C7_1 },
|
||||
{ 1, C2_9, C3_9, C4_9 },
|
||||
{ 1, C1_9, C3_10, C4_10 },
|
||||
{ 1, C1_10, C2_10, C4_11 },
|
||||
{ 1, C1_11, C2_11, C3_11 },
|
||||
{ 1, C1_12, C2_12, C3_12 },
|
||||
{ 1, C1_13, C2_13, C3_13 },
|
||||
{ 0, C1_16, C2_16, C3_16 },
|
||||
|
||||
{0, C1_8, C2_8, C3_8}, // LA8
|
||||
{1, C9_6, C8_6, C7_6}, // LC14
|
||||
{1, C9_5, C8_5, C7_5}, // LC13
|
||||
{1, C9_4, C8_4, C7_4}, // LC12
|
||||
{1, C9_3, C8_3, C7_3}, // LC11
|
||||
{1, C9_2, C8_2, C7_2}, // LC10
|
||||
{1, C9_1, C8_1, C7_1}, // LC9
|
||||
{1, C2_9, C3_9, C4_9}, // LD0
|
||||
{1, C1_9, C3_10, C4_10}, // LD1
|
||||
{1, C1_10, C2_10, C4_11}, // LD2
|
||||
{1, C1_11, C2_11, C3_11}, // LD3
|
||||
{1, C1_12, C2_12, C3_12}, // LD4
|
||||
{1, C1_13, C2_13, C3_13}, // LD5
|
||||
{0, C1_16, C2_16, C3_16}, // LB8
|
||||
|
||||
{1, C9_8, C7_7, C6_7}, // LC16
|
||||
{1, C1_5, C2_5, C3_5}, // LC5
|
||||
{1, C1_4, C2_4, C3_4}, // LC4
|
||||
{1, C1_3, C2_3, C3_3}, // LC3
|
||||
{1, C1_2, C2_2, C4_3}, // LC2
|
||||
{1, C1_1, C3_2, C4_2}, // LC1
|
||||
{1, C9_9, C8_9, C7_9}, // LD9
|
||||
{1, C9_10, C8_10, C7_10}, // LD10
|
||||
{1, C9_11, C8_11, C7_11}, // LD11
|
||||
{1, C9_12, C8_12, C7_12}, // LD12
|
||||
{1, C1_14, C2_14, C3_14}, // LD6
|
||||
{1, C1_15, C2_15, C3_15}, // LD7
|
||||
{1, C1_16, C2_16, C3_16}, // LD8
|
||||
{0, C9_15, C8_15, C6_14}, // LB15
|
||||
|
||||
{1, C8_8, C7_8, C6_8}, // LC17
|
||||
{1, C1_8, C2_8, C3_8}, // LC8
|
||||
{1, C1_7, C2_7, C3_7}, // LC7
|
||||
{1, C2_1, C3_1, C4_1}, // LC0
|
||||
{1, C9_14, C8_14, C7_14}, // LD14
|
||||
{1, C9_15, C8_15, C6_14}, // LD15
|
||||
{1, C9_16, C7_15, C6_15}, // LD16
|
||||
{1, C8_16, C7_16, C6_16}, // LD17
|
||||
{0, C8_16, C7_16, C6_16}, // LB17
|
||||
{0, C9_16, C7_15, C6_15}, // LB16
|
||||
{ 1, C9_8, C7_7, C6_7 },
|
||||
{ 1, C1_5, C2_5, C3_5 },
|
||||
{ 1, C1_4, C2_4, C3_4 },
|
||||
{ 1, C1_3, C2_3, C3_3 },
|
||||
{ 1, C1_2, C2_2, C4_3 },
|
||||
{ 1, C1_1, C3_2, C4_2 },
|
||||
{ 1, C9_9, C8_9, C7_9 },
|
||||
{ 1, C9_10, C8_10, C7_10 },
|
||||
{ 1, C9_11, C8_11, C7_11 },
|
||||
{ 1, C9_12, C8_12, C7_12 },
|
||||
{ 1, C1_14, C2_14, C3_14 },
|
||||
{ 1, C1_15, C2_15, C3_15 },
|
||||
{ 1, C1_16, C2_16, C3_16 },
|
||||
{ 0, C9_15, C8_15, C6_14 },
|
||||
|
||||
{ 1, C8_8, C7_8, C6_8 },
|
||||
{ 1, C1_8, C2_8, C3_8 },
|
||||
{ 1, C1_7, C2_7, C3_7 },
|
||||
{ 1, C2_1, C3_1, C4_1 },
|
||||
{ 1, C9_14, C8_14, C7_14 },
|
||||
{ 1, C9_15, C8_15, C6_14 },
|
||||
{ 1, C9_16, C7_15, C6_15 },
|
||||
{ 1, C8_16, C7_16, C6_16 },
|
||||
{ 0, C8_16, C7_16, C6_16 },
|
||||
{ 0, C9_16, C7_15, C6_15 }
|
||||
};
|
||||
|
||||
led_config_t g_led_config = { {
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
|
||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
|
||||
{ 44, 45, 46, 47, 48, 49, 59, 51, 52, 53, 54, 55, NO_LED,56, 57 },
|
||||
{ 58, 59, 60, NO_LED,NO_LED,61, NO_LED,NO_LED,62, 63, 64, 65, NO_LED,66, 67 }
|
||||
}, {
|
||||
{0,0}, {15,0}, {30,0}, {45,0}, {60,0}, {75,0}, {90,0}, {105,0}, {120,0}, {135,0}, {150,0}, {165,0}, {180,0}, {203,0},{224,0},
|
||||
{4,16},{23,16},{38,16},{53,16},{68,16}, {83,16}, {98,16}, {113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
|
||||
{6,32},{26,32},{41,32},{56,32},{71,32}, {86,32}, {101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
|
||||
{9,48},{34,48},{49,48},{64,48},{79,48}, {94,48}, {109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
|
||||
{2,64},{21,64},{39,64},{96,64},{150,64},{165,64},{180,64},{195,64},{210,64},{224,64}
|
||||
}, {
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1
|
||||
} };
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
|
||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
|
||||
{ 44, 45, 46, 47, 48, 49, 59, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
|
||||
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
|
||||
}, {
|
||||
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
|
||||
{ 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
|
||||
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
|
||||
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
|
||||
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
|
||||
}, {
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
void suspend_power_down_kb(void)
|
||||
{
|
||||
void suspend_power_down_kb(void) {
|
||||
rgb_matrix_set_suspend_state(true);
|
||||
suspend_power_down_user();
|
||||
}
|
||||
|
||||
void suspend_wakeup_init_kb(void)
|
||||
{
|
||||
void suspend_wakeup_init_kb(void) {
|
||||
rgb_matrix_set_suspend_state(false);
|
||||
suspend_wakeup_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void rgb_matrix_indicators_user(void)
|
||||
{
|
||||
if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK))
|
||||
{
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
#pragma once
|
||||
#define XXX KC_NO
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#define LAYOUT_65_ansi( \
|
||||
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, K2B, K2D, K2E, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, K4E \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, K4E \
|
||||
) { \
|
||||
{ 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 }, \
|
||||
|
||||
19
keyboards/dztech/dz65rgb/keymaps/adi/keymap.c
Normal file
19
keyboards/dztech/dz65rgb/keymaps/adi/keymap.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_65_ansi(
|
||||
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_GRV,
|
||||
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,
|
||||
LCTL_T(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_PGUP,
|
||||
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_PGDN,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_65_ansi(
|
||||
KC_GESC, 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_DEL, KC_HOME,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_PGUP,
|
||||
LCTL_T(KC_CAPS), RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_PGDN,
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_VOLU, KC_MUTE,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
)
|
||||
|
||||
};
|
||||
13
keyboards/dztech/dz65rgb/keymaps/adi/readme.md
Normal file
13
keyboards/dztech/dz65rgb/keymaps/adi/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Adi's DZ65RGB Layout
|
||||

|
||||
|
||||
This layout modifies the extra row on the right and makes some of the key bindings easier to reach on Layer 1.
|
||||
## Step by Step
|
||||
1. Build your Firmware: run build command in directory
|
||||
```make dztech/dz65rgb/v1:adi```
|
||||
2. Flash your Firmware:
|
||||
* Open QMK Toolbox Application
|
||||
* Open firmware file: dztech_dz65rgb_v1_adi.bin
|
||||
* Unplug keyboard USB-C, and hold the ESC key while plugging it back in
|
||||
* Check that QMK Toolbox displays: *** STM32 device connected.
|
||||
* Hit the flash button!
|
||||
@@ -2,13 +2,18 @@
|
||||
|
||||
A customizable 65% RGB keyboard.
|
||||
|
||||
Keyboard Maintainer: [DZtech](http://keyboarddiy.taobao.com)
|
||||
Hardware Supported: [DZtech](http://keyboarddiy.taobao.com)
|
||||
Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
|
||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
|
||||
* Hardware Supported: DZ65RGB V1 and V2
|
||||
* Hardware Availability: [KBDfans](https://kbdfans.com/)
|
||||
|
||||
There are two versions of the DZ65RGB. Please use the appropriate firmware for your board.
|
||||
|
||||
* V1: STM32F303 (Arm), takes .bin files
|
||||
* V2: ATmega32U4 (AVR), takes .hex files
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make dztech/dz65rgb:default
|
||||
make dztech/dz65rgb/v1:default # Arm (STM32F303)
|
||||
make dztech/dz65rgb/v2:default # AVR (ATmega32U4)
|
||||
|
||||
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).
|
||||
|
||||
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
|
||||
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
|
||||
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
@@ -69,6 +71,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGBLIGHT_SPLIT
|
||||
#define RGBLED_SPLIT { 12, 12 } // Number of LEDs
|
||||
|
||||
// The LEDs on the slave half go in reverse order
|
||||
#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, \
|
||||
23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12}
|
||||
|
||||
#define SOFT_SERIAL_PIN D0
|
||||
#define SELECT_SOFT_SERIAL_SPEED 1
|
||||
/*Sets the protocol speed when using serial communication*/
|
||||
|
||||
@@ -25,13 +25,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
|
||||
USB_6KRO_ENABLE = no # USB 6key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
KEYMAP_IN_EEPROM_ENABLE = no # External keymap in eeprom
|
||||
KEYMAP_SECTION_ENABLE = no # Fixed address keymap for keymap editor
|
||||
SOFTPWM_LED_ENABLE = no # Enable SoftPWM to drive backlight
|
||||
FADING_LED_ENABLE = no # Enable fading backlight
|
||||
BREATHING_LED_ENABLE = no # Enable breathing backlight
|
||||
LEDMAP_ENABLE = no # Enable LED mapping
|
||||
LEDMAP_IN_EEPROM_ENABLE = no # Read LED mapping from eeprom
|
||||
SWAP_HANDS_ENABLE = no # Disable Onehand
|
||||
RGBLIGHT_ENABLE = no
|
||||
MIDI_ENABLE = no
|
||||
|
||||
@@ -36,4 +36,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
|
||||
@@ -16,32 +16,19 @@
|
||||
|
||||
#include "meteor.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
// initialize pins D0, D1, D4 and D6 as output
|
||||
setPinOutput(D0);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// turn backlight LEDs off
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -45,5 +45,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, C2, C3, C4, C5, D7 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
|
||||
#define RGBLED_NUM 6
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
@@ -16,32 +16,19 @@
|
||||
|
||||
#include "le_bmc.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
// initialize pins D0, D1, D4 and D6 as output
|
||||
setPinOutput(D0);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// turn backlight LEDs off
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -17,13 +17,13 @@ BOOTLOADER = bootloadHID
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
|
||||
WS2812_DRIVER = i2c
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
|
||||
@@ -45,5 +45,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, C2, C3, C4, C5, D7 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
|
||||
#define RGBLED_NUM 6
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
@@ -16,32 +16,19 @@
|
||||
|
||||
#include "oe_bmc.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
// initialize pins D0, D1, D4 and D6 as output
|
||||
setPinOutput(D0);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// turn backlight LEDs off
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -17,13 +17,13 @@ BOOTLOADER = bootloadHID
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
|
||||
WS2812_DRIVER = i2c
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
|
||||
@@ -39,7 +39,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
#define NO_UART 1
|
||||
|
||||
@@ -15,3 +15,26 @@
|
||||
*/
|
||||
|
||||
#include "exent.h"
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D6);
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D0, !led_state.num_lock);
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
writePin(D6, !led_state.scroll_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
||||
WS2812_DRIVER = i2c
|
||||
|
||||
|
||||
@@ -37,5 +37,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
@@ -17,30 +17,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "facew.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// Turn out the lights
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// Turn on the lights
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ BOOTLOADER = bootloadHID
|
||||
BOOTMAGIC_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
||||
|
||||
@@ -38,7 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
#define BACKLIGHT_PIN D4
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
#define NO_UART 1
|
||||
|
||||
@@ -16,32 +16,22 @@
|
||||
|
||||
#include "mars80.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
// initialize pins D0, D1, D4 and D6 as output
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D6);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// turn backlight LEDs off
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
writePin(D6, !led_state.scroll_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -18,32 +18,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "hb85.h"
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
// initialize pins D0, D1, D4 and D6 as output
|
||||
void keyboard_pre_init_kb(void) {
|
||||
led_init_ports();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D0);
|
||||
setPinOutput(D1);
|
||||
setPinOutput(D4);
|
||||
setPinOutput(D6);
|
||||
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if (level == 0) {
|
||||
// turn backlight LEDs off
|
||||
writePinLow(D0);
|
||||
writePinLow(D1);
|
||||
writePinLow(D4);
|
||||
writePinLow(D6);
|
||||
} else {
|
||||
// turn backlight LEDs on
|
||||
writePinHigh(D0);
|
||||
writePinHigh(D1);
|
||||
writePinHigh(D4);
|
||||
writePinHigh(D6);
|
||||
bool led_update_kb(led_t led_state) {
|
||||
if (led_update_user(led_state)) {
|
||||
writePin(D0, !led_state.num_lock);
|
||||
writePin(D1, !led_state.caps_lock);
|
||||
writePin(D6, !led_state.scroll_lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
||||
WS2812_DRIVER = i2c
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/*
|
||||
* Copyright 2019 John M Daly <jmdaly@gmail.com>
|
||||
/* Copyright 2019 MechMerlin
|
||||
*
|
||||
* 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
|
||||
@@ -17,6 +16,5 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
void backlight_task(void);
|
||||
void breathing_interrupt_disable(void);
|
||||
void breathing_interrupt_enable(void);
|
||||
// place overrides here
|
||||
#define GRAVE_ESC_GUI_OVERRIDE # Always send Escape if GUI is pressed
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user