Compare commits

...

53 Commits

Author SHA1 Message Date
Nick Brassel
33f5e67408 Download relevant toolchain. 2024-07-01 23:04:04 +10:00
Joel Challis
3ffe8d917a Fix 'qmk new-keyboard' processing of development_board (#23996) 2024-06-30 03:39:49 +01:00
Danylo Kondratiev
12379dc1eb Fix ploopy Adept/Madromys link (#24018) 2024-06-30 02:57:35 +01:00
Ryan
d6bfbdb6b1 horrortroll/handwired_k552: fix RGB Matrix LED config (#24014) 2024-06-29 20:56:29 +10:00
Ryan
cc0b2f9814 jels/boaty: adjust layout name (#24013) 2024-06-29 10:20:11 +01:00
Ryan
5624804c68 h0oni/deskpad and hotduck: adjust layout names (#24004) 2024-06-29 10:19:51 +01:00
Ryan
2bde8ce206 ez_maker: adjust layout names (#24015) 2024-06-29 07:54:52 +01:00
Ryan
086e8e938e tzarc/djinn: adjust layout name (#24012) 2024-06-29 16:00:05 +10:00
Ryan
cd374b1500 clueboard/card: Swap layout and alias (#24007) 2024-06-29 04:07:42 +01:00
Danny
9d02ac37f7 Add Nyquist Rev. 5 (#23971)
* Add Nyquist Rev. 5

* Remove unused keymap
2024-06-27 13:37:41 -04:00
David Hoelscher
603586800c [Keyboard] Add Elysian (#23949)
* adding Elysian

* corrections from zvecr
2024-06-26 21:56:16 -06:00
TyraelWasTaken
90b043e01c Add support for Equanimity (#23965)
* Add Equanimity files

* Update keyboard.json format

* Update readme.md

* CRLF to LF

* Force LF and correct rules.mk

* Remove config.h

* Remove rules.mk

* Update keymap.c

* Update keyboard.json

* Update name in readme.md
2024-06-26 21:55:47 -06:00
Ryan
5f794217b4 xelus/snap96: add matrix diagram and some additional layouts (#23992) 2024-06-26 14:35:45 +10:00
Ryan
b71b81d539 hs60/v2/hhkb: Adjust layout name (#23998) 2024-06-26 05:28:45 +01:00
Ryan
17ae6f9b53 helix/pico and rev2: add keyboard.jsons (#23964) 2024-06-26 13:47:36 +10:00
Joel Challis
cebe521b11 Fix docker_cmd.sh when userspace is not configured (#23997) 2024-06-26 11:34:24 +10:00
Joel Challis
0b572a1be6 Remove some redundant 'blank' files (#23995) 2024-06-25 07:38:56 +01:00
Ryan
378dbd32bd custommk/ergostrafer_rgb: move to keyboard.json (#23990) 2024-06-24 18:19:48 +10:00
Nick Brassel
03e688e91f Add support for userspace to docker build commands. (#23988) 2024-06-24 12:29:30 +10:00
Ryan
d5e0562a70 Rename layouts containing keyboard name (#23930) 2024-06-23 19:33:26 +01:00
Ryan
191c8cca33 handwired/symmetric70_proto: add keyboard.json (#23966) 2024-06-23 03:57:50 +01:00
Joel Challis
7aa2ce2b38 Update documentation suggestion in top level readme (#23978) 2024-06-22 05:45:04 +01:00
Joel Challis
6f03d20a92 Fix 'qmk import-kbfirmware' WS2812 config (#23976) 2024-06-22 04:27:57 +01:00
Danny
e5c80fc6b3 Update what's powering QMK docs (#23977) 2024-06-22 04:27:15 +01:00
Kevin Horvat
aa11ef5bcf Fix leftover reference to previous AW20216S EN pin definition (#23974) 2024-06-22 01:53:59 +01:00
Drashna Jaelre
a6ef34cd16 [Keyboard] fixes for ZSA Voyager (#23912) 2024-06-20 09:08:57 +01:00
Joel Challis
4fdde75333 Update 'qmk import-kbfirmware' to use 'keyboard.json' (#23960) 2024-06-20 02:59:29 +01:00
lizaoreo
dafc46f1d1 Update RGB matrix indicator example (#23947)
Changed the example in indicator-examples-2 to use a compound literal, otherwise the code fails to compile.
2024-06-17 20:30:57 +01:00
Ryan
baa564bddf Remove references to bootloadHID flashing page in keyboard readmes (#23942)
* Remove references to bootloadHID flashing page in keyboard readmes

* Remove bootloadHID flashing page
2024-06-17 20:23:45 +01:00
Ryan
3f44231d2d Strip decimals from RGB Matrix layout positions (#23943) 2024-06-17 20:12:26 +10:00
Ryan
4864d5afca Mechwild OBE/Waka60: Fix build warnings (#23929) 2024-06-17 14:47:33 +10:00
Ryan
089a819179 keyboard.json schema: set minimum value for key_unit (#23937)
* keyboard.json schema: set minimum value for `key_unit`

* Fix invalid `matrix_size` in keyboard.json

* Fix bad layout for silverbullet44
2024-06-16 21:57:37 +01:00
Danny
751fbd75d3 Add Chiri CE (#23926)
* Add Chiri CE

* Add more layers for dynamic keymap

* Move EEPROM clear

* Convert to keymap.json

* Change bootmagic matrix position
2024-06-16 12:16:05 -06:00
Ryan
3c868b9316 ergodox_ez/base: Add missing features object (#23935) 2024-06-16 22:52:47 +10:00
Nick Brassel
7ac1a34a34 [CLI] Older python compat. (#23933) 2024-06-16 19:53:03 +10:00
David Hoelscher
ad82c4703a [Keyboard] ErgoStrafer RGB (#22936)
* adding ergostrafer rgb

* removing comment
2024-06-15 21:46:22 -07:00
Nick Brassel
0262161914 [CLI] Don't exit() when certain exceptions occur. (#23442) 2024-06-15 10:37:47 +01:00
Ryan
d4654ab893 Various keyboard fixes (#23919) 2024-06-14 22:58:13 +01:00
ai03
aec7569a04 [Keyboard] Add Altair (#23878)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-06-14 13:26:21 -07:00
ai03
0594121b68 [Keyboard] Add Altair-X (#23879)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2024-06-14 13:26:00 -07:00
Myriam
4e8b740dd7 fix keymap for kprepublic bm60hsrgb_iso (#23733)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-06-14 00:34:06 -07:00
adophoxia
c92becc57e [Keyboard] Enable dip switch for Keychron Q4 (#23889) 2024-06-13 21:10:23 -07:00
Joel Challis
cd565a95a0 Remove suggestion of creating issues for unsupported keyboards. (#23918) 2024-06-14 00:23:57 +01:00
Danny
caf13bb9db Fix order of RGB LEDs to correct one for Iris CE (#23914) 2024-06-13 15:36:26 -07:00
Danny
4a4eda4c3c Add missing encode enable for BAMFK-1 (#23821)
Add missing encode enable
2024-06-13 09:00:42 -04:00
Ryan
942c2a8d5a Fix nonunique anchors (#23910) 2024-06-13 13:31:03 +10:00
Ryan
be9dfe65dd Add API reference section for LED/RGB Matrix docs (#23902) 2024-06-13 12:55:47 +10:00
Joel Challis
fa40356250 Ensure documentation pull requests build (#23908) 2024-06-13 02:59:37 +01:00
Nick Brassel
7247039742 Fixup docs. (#23906) 2024-06-13 02:55:52 +01:00
Nick Brassel
e69d30a9e9 VIA keymap deprecation notice. (#23905) 2024-06-13 09:48:24 +10:00
Nick Brassel
bdd10ef8e7 Remove VIA_ENABLE from default keymaps. (#23903) 2024-06-12 17:43:09 +10:00
4pplet
031ca3b40b [Keyboard] Fix settings for 4pplet/waffling60 (#23862) 2024-06-12 00:11:50 -07:00
Ryan
8041a88f5d Slight clarification of LED/RGB Matrix custom effect docs (#23897) 2024-06-12 01:50:25 +01:00
325 changed files with 4176 additions and 1507 deletions

View File

@@ -7,7 +7,6 @@ on:
push:
branches:
- master
- vitepress
paths:
- 'builddefs/docsgen/**'
- 'tmk_core/**'
@@ -15,6 +14,11 @@ on:
- 'platforms/**'
- 'docs/**'
- '.github/workflows/docs.yml'
pull_request:
paths:
- 'builddefs/docsgen/**'
- 'docs/**'
- '.github/workflows/docs.yml'
defaults:
run:
@@ -25,9 +29,6 @@ jobs:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware' || (github.repository == 'tzarc/qmk_firmware' && github.ref == 'refs/heads/vitepress')
steps:
- uses: actions/checkout@v4
with:
@@ -35,10 +36,10 @@ jobs:
- name: Install dependencies
run: |
apt-get update && apt-get install -y rsync doxygen curl
apt-get update && apt-get install -y rsync doxygen
# install nvm
touch $HOME/.bashrc
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
- name: Install node
run: |
@@ -46,29 +47,15 @@ jobs:
nvm install 20
nvm use 20
corepack enable
npm install -g moxygen
- name: Build docs
run: |
source $HOME/.bashrc
nvm use 20
qmk --verbose generate-docs
touch '.build/docs/.nojekyll'
- name: Set CNAME
if: github.repository == 'qmk/qmk_firmware'
run: |
# Override target CNAME
echo 'docs.qmk.fm' > .build/docs/CNAME
- name: Override CNAME
if: github.repository == 'tzarc/qmk_firmware'
run: |
# Temporarily override target CNAME during development
echo 'vitepress.qmk.fm' > .build/docs/CNAME
- name: Deploy
if: github.repository == 'qmk/qmk_firmware'
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
uses: JamesIves/github-pages-deploy-action@v4.6.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
@@ -76,10 +63,3 @@ jobs:
folder: .build/docs
git-config-name: QMK Bot
git-config-email: hello@qmk.fm
- name: Deploy
if: github.repository == 'tzarc/qmk_firmware'
uses: JamesIves/github-pages-deploy-action@v4.6.1
with:
branch: gh-pages
folder: .build/docs

1
.gitignore vendored
View File

@@ -25,6 +25,7 @@
*.la
*.stackdump
*.sym
qmk_toolchains*
# QMK-specific
api_data/v1

View File

@@ -40,7 +40,8 @@
"pattern": "^[0-9a-z_/\\-]+\\.json$"
},
"key_unit": {
"type": "number"
"type": "number",
"minimum": 0
},
"keyboard": {
"type": "string",

View File

@@ -515,8 +515,8 @@
"minimum": 0
}
},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
"x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
}
@@ -601,8 +601,8 @@
"minimum": 0
}
},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
"x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
}

View File

@@ -2,8 +2,6 @@
"keyboard_name": "%KEYBOARD%",
"maintainer": "%USER_NAME%",
"manufacturer": "%REAL_NAME%",
"processor": "%MCU%",
"bootloader": "%BOOTLOADER%",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["C2"],

View File

@@ -109,6 +109,16 @@ Essentially, changes were made in the internals of how QMK interacts with USB fo
Compliance checks were run against QMK firmwares for the most popular ARM microcontrollers, as well as suspend/resume tests. As far as we can tell, a whole host of hard-to-reproduce issues are mitigated by this change.
## Deprecation Notices
In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
### Migration of VIA keymaps to VIA team control
The QMK team has been in discussion with the VIA maintainers and all VIA-related keymaps in the `qmk_firmware` repository will transition to a `qmk_userspace`-style repository under the VIA team's control at the end of the next breaking changes period. This allows the VIA team to support many more custom keyboard configurations, as well as reduces the turnaround time for any changes to the VIA protocol they wish to make.
At the end of the breaking changes cycle ending 2024-08-25, VIA-enabled keymaps will no longer be accepted into the QMK repository. At the time of migration, any open PRs against `qmk_firmware` which include new VIA-related keymaps will be subsequently be asked to remove those keymaps and instead raise a PR against the userspace repository containing all VIA keymaps.
## Full changelist {#full-changelist}
Core:

View File

@@ -4,6 +4,7 @@
"/cli_dev_configuration": "/cli_configuration",
"/dynamic_macros": "/feature_dynamic_macros",
"/feature_common_shortcuts": "/feature_advanced_keycodes",
"/flashing_bootloadhid": "/flashing",
"/getting_started_build_tools": "/newbs_getting_started",
"/getting_started_getting_help": "/support",
"/glossary": "/reference_glossary",

View File

@@ -64,13 +64,7 @@
"text": "Development Environments",
"items": [{ "text": "Docker Guide", "link": "/getting_started_docker" }]
},
{
"text": "Flashing",
"items": [
{ "text": "Flashing", "link": "/flashing" },
{ "text": "Flashing ATmega32A (ps2avrgb)", "link": "/flashing_bootloadhid" }
]
},
{ "text": "Flashing", "link": "/flashing" },
{
"text": "IDEs",
"items": [
@@ -212,7 +206,8 @@
"text": "Most Recent ChangeLog",
"link": "/ChangeLog/20240526"
},
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" }
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }
]
},

View File

@@ -16,7 +16,9 @@ I'll say that again because it's important:
**MAKE SURE YOU SELECT THE RIGHT VERSION!**
:::
If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own GitHub accounts. Double check for that as well. <!-- FIXME(skullydazed): This feels too wordy and I'm not sure we want to encourage these kinds of issues. Also, should we prompt them to bug the manufacutrer? -->
Unfortunately if your keyboard has been advertised to be powered by QMK but is not in the list, you will **not** be able to use Configurator to customize your keyboard.
Chances are a developer hasn't gotten round to adding support or we haven't had a chance to merge it in yet. If there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard), contact the manufacturer and encourage them to add support.
## Step 2: Select Your Keyboard Layout

View File

@@ -105,7 +105,9 @@ enum my_keycodes {
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:
qmk docs
```
qmk docs
```
and navigating to `http://localhost:5173/`.

View File

@@ -300,18 +300,11 @@ These modes introduce additional logic that can increase firmware size.
## Custom LED Matrix Effects {#custom-led-matrix-effects}
By setting `LED_MATRIX_CUSTOM_USER` (and/or `LED_MATRIX_CUSTOM_KB`) in `rules.mk`, new effects can be defined directly from userspace, without having to edit any QMK core files.
By setting `LED_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defined directly from your keymap or userspace, without having to edit any QMK core files. To declare new effects, create a `led_matrix_user.inc` file in the user keymap directory or userspace folder.
To declare new effects, create a new `led_matrix_user/kb.inc` that looks something like this:
`led_matrix_user.inc` should go in the root of the keymap directory.
`led_matrix_kb.inc` should go in the root of the keyboard directory.
To use custom effects in your code, simply prepend `LED_MATRIX_CUSTOM_` to the effect name specified in `LED_MATRIX_EFFECT()`. For example, an effect declared as `LED_MATRIX_EFFECT(my_cool_effect)` would be referenced with:
```c
led_matrix_mode(led_MATRIX_CUSTOM_my_cool_effect);
```
::: tip
Hardware maintainers who want to limit custom effects to a specific keyboard can create a `led_matrix_kb.inc` file in the root of the keyboard directory, and add `LED_MATRIX_CUSTOM_KB = yes` to the keyboard level `rules.mk`.
:::
```c
// !!! DO NOT ADD #pragma once !!! //
@@ -356,6 +349,12 @@ static bool my_cool_effect2(effect_params_t* params) {
#endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS
```
To switch to your custom effect programmatically, simply call `led_matrix_mode()` and prepend `LED_MATRIX_CUSTOM_` to the effect name your specified in `LED_MATRIX_EFFECT()`. For example, an effect declared as `LED_MATRIX_EFFECT(my_cool_effect)` would be referenced with:
```c
led_matrix_mode(LED_MATRIX_CUSTOM_my_cool_effect);
```
For inspiration and examples, check out the built-in effects under `quantum/led_matrix/animations/`.
@@ -381,55 +380,6 @@ For inspiration and examples, check out the built-in effects under `quantum/led_
The EEPROM for it is currently shared with the RGB Matrix system (it's generally assumed only one feature would be used at a time).
### Direct Operation {#direct-operation}
|Function |Description |
|--------------------------------------------|-------------|
|`led_matrix_set_value_all(v)` |Set all of the LEDs to the given value, where `v` is between 0 and 255 (not written to EEPROM) |
|`led_matrix_set_value(index, v)` |Set a single LED to the given value, where `v` is between 0 and 255, and `index` is between 0 and `LED_MATRIX_LED_COUNT` (not written to EEPROM) |
### Disable/Enable Effects {#disable-enable-effects}
|Function |Description |
|--------------------------------------------|-------------|
|`led_matrix_toggle()` |Toggle effect range LEDs between on and off |
|`led_matrix_toggle_noeeprom()` |Toggle effect range LEDs between on and off (not written to EEPROM) |
|`led_matrix_enable()` |Turn effect range LEDs on, based on their previous state |
|`led_matrix_enable_noeeprom()` |Turn effect range LEDs on, based on their previous state (not written to EEPROM) |
|`led_matrix_disable()` |Turn effect range LEDs off, based on their previous state |
|`led_matrix_disable_noeeprom()` |Turn effect range LEDs off, based on their previous state (not written to EEPROM) |
### Change Effect Mode {#change-effect-mode}
|Function |Description |
|--------------------------------------------|-------------|
|`led_matrix_mode(mode)` |Set the mode, if LED animations are enabled |
|`led_matrix_mode_noeeprom(mode)` |Set the mode, if LED animations are enabled (not written to EEPROM) |
|`led_matrix_step()` |Change the mode to the next LED animation in the list of enabled LED animations |
|`led_matrix_step_noeeprom()` |Change the mode to the next LED animation in the list of enabled LED animations (not written to EEPROM) |
|`led_matrix_step_reverse()` |Change the mode to the previous LED animation in the list of enabled LED animations |
|`led_matrix_step_reverse_noeeprom()` |Change the mode to the previous LED animation in the list of enabled LED animations (not written to EEPROM) |
|`led_matrix_increase_speed()` |Increase the speed of the animations |
|`led_matrix_increase_speed_noeeprom()` |Increase the speed of the animations (not written to EEPROM) |
|`led_matrix_decrease_speed()` |Decrease the speed of the animations |
|`led_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) |
|`led_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 |
|`led_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) |
### Change Value {#change-value}
|Function |Description |
|--------------------------------------------|-------------|
|`led_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value |
|`led_matrix_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) |
|`led_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value |
|`led_matrix_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) |
### Query Current Status {#query-current-status}
|Function |Description |
|---------------------------------|---------------------------|
|`led_matrix_is_enabled()` |Gets current on/off status |
|`led_matrix_get_mode()` |Gets current mode |
|`led_matrix_get_val()` |Gets current val |
|`led_matrix_get_speed()` |Gets current speed |
|`led_matrix_get_suspend_state()` |Gets current suspend state |
## Callbacks {#callbacks}
### Indicators {#indicators}
@@ -453,3 +403,293 @@ void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
return false;
}
```
## API {#api}
### `void led_matrix_toggle(void)` {#api-led-matrix-toggle}
Toggle LED Matrix on or off.
---
### `void led_matrix_toggle_noeeprom(void)` {#api-led-matrix-toggle-noeeprom}
Toggle LED Matrix on or off. New state is not written to EEPROM.
---
### `void led_matrix_enable(void)` {#api-led-matrix-enable}
Turn LED Matrix on.
---
### `void led_matrix_enable_noeeprom(void)` {#api-led-matrix-enable-noeeprom}
Turn LED Matrix on. New state is not written to EEPROM.
---
### `void led_matrix_disable(void)` {#api-led-matrix-disable}
Turn LED Matrix off.
---
### `void led_matrix_disable_noeeprom(void)` {#api-led-matrix-disable-noeeprom}
Turn LED Matrix off. New state is not written to EEPROM.
---
### `bool led_matrix_is_enabled(void)` {#api-led-matrix-is-enabled}
Get the current enabled state of LED Matrix.
#### Return Value {#api-led-matrix-is-enabled-return}
`true` if LED Matrix is enabled.
---
### `void led_matrix_set_value(uint8_t index, uint8_t v)` {#led-matrix-set-value}
Set the brightness of a single LED.
This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame.
#### Arguments {#api-led-matrix-set-value-arguments}
- `uint8_t index`
The LED index, from 0 to `LED_MATRIX_LED_COUNT - 1`.
- `uint8_t v`
The brightness value to set.
---
### `void led_matrix_set_value_all(uint8_t v)` {#api-led-matrix-set-value-all}
Set the brightness of all LEDs.
This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame.
#### Arguments {#api-led-matrix-set-value-all-arguments}
- `uint8_t v`
The brightness value to set.
---
### `void led_matrix_mode(uint8_t mode)` {#api-led-matrix-mode}
Set the currently running effect.
#### Arguments {#api-led-matrix-mode-arguments}
- `uint8_t mode`
The effect to switch to.
---
### `void led_matrix_mode_noeeprom(uint8_t mode)` {#api-led-matrix-mode-noeeprom}
Set the currently running effect. New state is not written to EEPROM.
#### Arguments {#api-led-matrix-mode-noeeprom-arguments}
- `uint8_t mode`
The effect to switch to.
---
### `void led_matrix_step(void)` {#api-led-matrix-step}
Move to the next enabled effect.
---
### `void led_matrix_step_noeeprom(void)` {#api-led-matrix-step-noeeprom}
Move to the next enabled effect. New state is not written to EEPROM.
---
### `void led_matrix_step_reverse(void)` {#api-led-matrix-step-reverse}
Move to the previous enabled effect.
---
### `void led_matrix_step_reverse_noeeprom(void)` {#api-led-matrix-step-reverse-noeeprom}
Move to the previous enabled effect. New state is not written to EEPROM.
---
### `uint8_t led_matrix_get_mode(void)` {#api-led-matrix-get-mode}
Get the currently running effect.
#### Return Value {#api-led-matrix-get-mode-return}
The index of the currently running effect.
---
### `void val_matrix_increase_val(void)` {#api-led-matrix-increase-val}
Increase the global effect brightness.
---
### `void led_matrix_increase_val_noeeprom(void)` {#api-led-matrix-increase-val-noeeprom}
Increase the global effect brightness. New state is not written to EEPROM.
---
### `void led_matrix_decrease_val(void)` {#api-led-matrix-decrease-val}
Decrease the global effect brightness.
---
### `void led_matrix_decrease_val_noeeprom(void)` {#api-led-matrix-decrease-val-noeeprom}
Decrease the global effect brightness. New state is not written to EEPROM.
---
### `uint8_t led_matrix_get_val(void)` {#api-led-matrix-get-val}
Get the current global effect brightness.
#### Return Value {#api-led-matrix-get-val-return}
The current brightness value, from 0 to 255.
---
### `void led_matrix_increase_speed(void)` {#api-led-matrix-increase-speed}
Increase the effect speed.
---
### `void led_matrix_increase_speed_noeeprom(void)` {#api-led-matrix-increase-speed-noeeprom}
Increase the effect speed. New state is not written to EEPROM.
---
### `void led_matrix_decrease_speed(void)` {#api-led-matrix-decrease-speed}
Decrease the effect speed.
---
### `void led_matrix_decrease_speed_noeeprom(void)` {#api-led-matrix-decrease-speed-noeeprom}
Decrease the effect speed. New state is not written to EEPROM.
---
### `void led_matrix_set_speed(uint8_t speed)` {#api-led-matrix-set-speed}
Set the effect speed.
#### Arguments {#api-led-matrix-set-speed-arguments}
- `uint8_t speed`
The new speed to set, from 0 to 255.
---
### `void led_matrix_set_speed_noeeprom(uint8_t speed)` {#api-led-matrix-set-speed-noeeprom}
Set the effect speed. New state is not written to EEPROM.
#### Arguments {#api-led-matrix-set-speed-noeeprom-arguments}
- `uint8_t speed`
The new speed to set, from 0 to 255.
---
### `uint8_t led_matrix_get_speed(void)` {#api-led-matrix-get-speed}
Get the current effect speed.
#### Return Value {#api-led-matrix-get-speed-return}
The current effect speed, from 0 to 255.
---
### `void led_matrix_reload_from_eeprom(void)` {#api-led-matrix-reload-from-eeprom}
Reload the effect configuration (enabled, mode and brightness) from EEPROM.
---
### `bool led_matrix_get_suspend_state(void)` {#api-led-matrix-get-suspend-state}
Get the current suspend state of LED Matrix.
#### Return Value {#api-led-matrix-get-suspend-state-return}
`true` if LED Matrix is currently in the suspended state.
---
### `bool led_matrix_indicators_kb(void)` {#api-led-matrix-indicators-kb}
Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
#### Return Value {#api-led-matrix-indicators-kb-return}
Currently unused.
---
### `bool led_matrix_indicators_user(void)` {#api-led-matrix-indicators-user}
Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
#### Return Value {#api-led-matrix-indicators-user-return}
`true` to continue running the keyboard-level callback.
---
### `bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max)` {#api-led-matrix-indicators-advanced-kb}
Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
### Arguments {#api-led-matrix-indicators-advanced-kb-arguments}
- `uint8_t led_min`
The index of the first LED in this batch.
- `uint8_t led_max`
The index of the last LED in this batch.
#### Return Value {#api-led-matrix-indicators-advanced-kb-return}
Currently unused.
---
### `bool led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max)` {#api-led-matrix-indicators-advanced-user}
Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
### Arguments {#api-led-matrix-indicators-advanced-user-arguments}
- `uint8_t led_min`
The index of the first LED in this batch.
- `uint8_t led_max`
The index of the last LED in this batch.
#### Return Value {#api-led-matrix-indicators-advanced-user-return}
`true` to continue running the keyboard-level callback.

View File

@@ -807,12 +807,6 @@ By setting `RGB_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defi
Hardware maintainers who want to limit custom effects to a specific keyboard can create a `rgb_matrix_kb.inc` file in the root of the keyboard directory, and add `RGB_MATRIX_CUSTOM_KB = yes` to the keyboard level `rules.mk`.
:::
To use custom effects in your code, simply prepend `RGB_MATRIX_CUSTOM_` to the effect name specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with:
```c
rgb_matrix_mode(RGB_MATRIX_CUSTOM_my_cool_effect);
```
```c
// !!! DO NOT ADD #pragma once !!! //
@@ -856,6 +850,12 @@ static bool my_cool_effect2(effect_params_t* params) {
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
```
To switch to your custom effect programmatically, simply call `rgb_matrix_mode()` and prepend `RGB_MATRIX_CUSTOM_` to the effect name you specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with:
```c
rgb_matrix_mode(RGB_MATRIX_CUSTOM_my_cool_effect);
```
For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix/animations/`.
@@ -914,71 +914,6 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
The EEPROM for it is currently shared with the LED Matrix system (it's generally assumed only one feature would be used at a time).
## Functions {#functions}
### Direct Operation {#direct-operation}
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_set_color_all(r, g, b)` |Set all of the LEDs to the given RGB value, where `r`/`g`/`b` are between 0 and 255 (not written to EEPROM) |
|`rgb_matrix_set_color(index, r, g, b)` |Set a single LED to the given RGB value, where `r`/`g`/`b` are between 0 and 255, and `index` is between 0 and `RGB_MATRIX_LED_COUNT` (not written to EEPROM) |
### Disable/Enable Effects {#disable-enable-effects}
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_toggle()` |Toggle effect range LEDs between on and off |
|`rgb_matrix_toggle_noeeprom()` |Toggle effect range LEDs between on and off (not written to EEPROM) |
|`rgb_matrix_enable()` |Turn effect range LEDs on, based on their previous state |
|`rgb_matrix_enable_noeeprom()` |Turn effect range LEDs on, based on their previous state (not written to EEPROM) |
|`rgb_matrix_disable()` |Turn effect range LEDs off, based on their previous state |
|`rgb_matrix_disable_noeeprom()` |Turn effect range LEDs off, based on their previous state (not written to EEPROM) |
### Change Effect Mode {#change-effect-mode}
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_mode(mode)` |Set the mode, if RGB animations are enabled |
|`rgb_matrix_mode_noeeprom(mode)` |Set the mode, if RGB animations are enabled (not written to EEPROM) |
|`rgb_matrix_step()` |Change the mode to the next RGB animation in the list of enabled RGB animations |
|`rgb_matrix_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) |
|`rgb_matrix_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations |
|`rgb_matrix_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) |
|`rgb_matrix_increase_speed()` |Increase the speed of the animations |
|`rgb_matrix_increase_speed_noeeprom()` |Increase the speed of the animations (not written to EEPROM) |
|`rgb_matrix_decrease_speed()` |Decrease the speed of the animations |
|`rgb_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) |
|`rgb_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 |
|`rgb_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) |
|`rgb_matrix_reload_from_eeprom()` |Reload the effect configuration (enabled, mode and color) from EEPROM |
### Change Color {#change-color}
|Function |Description |
|--------------------------------------------|-------------|
|`rgb_matrix_increase_hue()` |Increase the hue for effect range LEDs. This wraps around at maximum hue |
|`rgb_matrix_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) |
|`rgb_matrix_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue |
|`rgb_matrix_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) |
|`rgb_matrix_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation |
|`rgb_matrix_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation (not written to EEPROM) |
|`rgb_matrix_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation |
|`rgb_matrix_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation (not written to EEPROM) |
|`rgb_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value |
|`rgb_matrix_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) |
|`rgb_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value |
|`rgb_matrix_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) |
|`rgb_matrix_sethsv(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|`rgb_matrix_sethsv_noeeprom(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |
### Query Current Status {#query-current-status}
|Function |Description |
|---------------------------------|---------------------------|
|`rgb_matrix_is_enabled()` |Gets current on/off status |
|`rgb_matrix_get_mode()` |Gets current mode |
|`rgb_matrix_get_hue()` |Gets current hue |
|`rgb_matrix_get_sat()` |Gets current sat |
|`rgb_matrix_get_val()` |Gets current val |
|`rgb_matrix_get_hsv()` |Gets hue, sat, and val and returns a [`HSV` structure](https://github.com/qmk/qmk_firmware/blob/7ba6456c0b2e041bb9f97dbed265c5b8b4b12192/quantum/color.h#L56-L61)|
|`rgb_matrix_get_speed()` |Gets current speed |
|`rgb_matrix_get_suspend_state()` |Gets current suspend state |
## Callbacks {#callbacks}
### Indicators {#indicators}
@@ -1072,9 +1007,9 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
HSV hsv = {0, 255, 255};
if (layer_state_is(layer_state, 2)) {
hsv = {130, 255, 255};
hsv = (HSV){130, 255, 255};
} else {
hsv = {30, 255, 255};
hsv = (HSV){30, 255, 255};
}
if (hsv.v > rgb_matrix_get_val()) {
@@ -1117,3 +1052,409 @@ void keyboard_post_init_user(void) {
rgb_matrix_sethsv_noeeprom(HSV_OFF);
}
```
## API {#api}
### `void rgb_matrix_toggle(void)` {#api-rgb-matrix-toggle}
Toggle RGB Matrix on or off.
---
### `void rgb_matrix_toggle_noeeprom(void)` {#api-rgb-matrix-toggle-noeeprom}
Toggle RGB Matrix on or off. New state is not written to EEPROM.
---
### `void rgb_matrix_enable(void)` {#api-rgb-matrix-enable}
Turn RGB Matrix on.
---
### `void rgb_matrix_enable_noeeprom(void)` {#api-rgb-matrix-enable-noeeprom}
Turn RGB Matrix on. New state is not written to EEPROM.
---
### `void rgb_matrix_disable(void)` {#api-rgb-matrix-disable}
Turn RGB Matrix off.
---
### `void rgb_matrix_disable_noeeprom(void)` {#api-rgb-matrix-disable-noeeprom}
Turn RGB Matrix off. New state is not written to EEPROM.
---
### `bool rgb_matrix_is_enabled(void)` {#api-rgb-matrix-is-enabled}
Get the current enabled state of RGB Matrix.
#### Return Value {#api-rgb-matrix-is-enabled-return}
`true` if RGB Matrix is enabled.
---
### `void rgb_matrix_set_color(uint8_t index, uint8_t r, uint8_t g, uint8_t b)` {#api-rgb-matrix-set-color}
Set the color of a single LED.
This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame.
#### Arguments {#api-rgb-matrix-set-color-arguments}
- `uint8_t index`
The LED index, from 0 to `RGB_MATRIX_LED_COUNT - 1`.
- `uint8_t r`
The red value to set.
- `uint8_t g`
The green value to set.
- `uint8_t b`
The blue value to set.
---
### `void rgb_matrix_set_color_all(uint8_t r, uint8_t g, uint8_t b)` {#api-rgb-matrix-set-color-all}
Set the color of all LEDs.
This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame.
#### Arguments {#api-rgb-matrix-set-color-all-arguments}
- `uint8_t r`
The red value to set.
- `uint8_t g`
The green value to set.
- `uint8_t b`
The blue value to set.
---
### `void rgb_matrix_mode(uint8_t mode)` {#api-rgb-matrix-mode}
Set the currently running effect.
#### Arguments {#api-rgb-matrix-mode-arguments}
- `uint8_t mode`
The effect to switch to.
---
### `void rgb_matrix_mode_noeeprom(uint8_t mode)` {#api-rgb-matrix-mode-noeeprom}
Set the currently running effect. New state is not written to EEPROM.
#### Arguments {#api-rgb-matrix-mode-noeeprom-arguments}
- `uint8_t mode`
The effect to switch to.
---
### `void rgb_matrix_step(void)` {#api-rgb-matrix-step}
Move to the next enabled effect.
---
### `void rgb_matrix_step_noeeprom(void)` {#api-rgb-matrix-step-noeeprom}
Move to the next enabled effect. New state is not written to EEPROM.
---
### `void rgb_matrix_step_reverse(void)` {#api-rgb-matrix-step-reverse}
Move to the previous enabled effect.
---
### `void rgb_matrix_step_reverse_noeeprom(void)` {#api-rgb-matrix-step-reverse-noeeprom}
Move to the previous enabled effect. New state is not written to EEPROM.
---
### `uint8_t rgb_matrix_get_mode(void)` {#api-rgb-matrix-get-mode}
Get the currently running effect.
#### Return Value {#api-rgb-matrix-get-mode-return}
The index of the currently running effect.
---
### `void rgb_matrix_increase_hue(void)` {#api-rgb-matrix-increase-hue}
Increase the global effect hue.
---
### `void rgb_matrix_increase_hue_noeeprom(void)` {#api-rgb-matrix-increase-hue-noeeprom}
Increase the global effect hue. New state is not written to EEPROM.
---
### `void rgb_matrix_decrease_hue(void)` {#api-rgb-matrix-decrease-hue}
Decrease the global effect hue.
---
### `void rgb_matrix_decrease_hue_noeeprom(void)` {#api-rgb-matrix-decrease-hue-noeeprom}
Decrease the global effect hue. New state is not written to EEPROM.
---
### `uint8_t rgb_matrix_get_hue(void)` {#api-rgb-matrix-get-hue}
Get the current global effect hue.
#### Return Value {#api-rgb-matrix-get-hue-return}
The current hue value, from 0 to 255.
---
### `void rgb_matrix_increase_sat(void)` {#api-rgb-matrix-increase-sat}
Increase the global effect saturation.
---
### `void rgb_matrix_increase_sat_noeeprom(void)` {#api-rgb-matrix-increase-sat-noeeprom}
Increase the global effect saturation. New state is not written to EEPROM.
---
### `void rgb_matrix_decrease_sat(void)` {#api-rgb-matrix-decrease-sat}
Decrease the global effect saturation.
---
### `void rgb_matrix_decrease_sat_noeeprom(void)` {#api-rgb-matrix-decrease-sat-noeeprom}
Decrease the global effect saturation. New state is not written to EEPROM.
---
### `uint8_t rgb_matrix_get_sat(void)` {#api-rgb-matrix-get-sat}
Get the current global effect saturation.
#### Return Value {#api-rgb-matrix-get-sat-return}
The current saturation value, from 0 to 255.
---
### `void rgb_matrix_increase_val(void)` {#api-rgb-matrix-increase-val}
Increase the global effect value (brightness).
---
### `void rgb_matrix_increase_val_noeeprom(void)` {#api-rgb-matrix-increase-val-noeeprom}
Increase the global effect value (brightness). New state is not written to EEPROM.
---
### `void rgb_matrix_decrease_val(void)` {#api-rgb-matrix-decrease-val}
Decrease the global effect value (brightness).
---
### `void rgb_matrix_decrease_val_noeeprom(void)` {#api-rgb-matrix-decrease-val-noeeprom}
Decrease the global effect value (brightness). New state is not written to EEPROM.
---
### `uint8_t rgb_matrix_get_val(void)` {#api-rgb-matrix-get-val}
Get the current global effect value (brightness).
#### Return Value {#api-rgb-matrix-get-val-return}
The current brightness value, from 0 to 255.
---
### `void rgb_matrix_increase_speed(void)` {#api-rgb-matrix-increase-speed}
Increase the effect speed.
---
### `void rgb_matrix_increase_speed_noeeprom(void)` {#api-rgb-matrix-increase-speed-noeeprom}
Increase the effect speed. New state is not written to EEPROM.
---
### `void rgb_matrix_decrease_speed(void)` {#api-rgb-matrix-decrease-speed}
Decrease the effect speed.
---
### `void rgb_matrix_decrease_speed_noeeprom(void)` {#api-rgb-matrix-decrease-speed-noeeprom}
Decrease the effect speed. New state is not written to EEPROM.
---
### `void rgb_matrix_set_speed(uint8_t speed)` {#api-rgb-matrix-set-speed}
Set the effect speed.
#### Arguments {#api-rgb-matrix-set-speed-arguments}
- `uint8_t speed`
The new speed to set, from 0 to 255.
---
### `void rgb_matrix_set_speed_noeeprom(uint8_t speed)` {#api-rgb-matrix-set-speed-noeeprom}
Set the effect speed. New state is not written to EEPROM.
#### Arguments {#api-rgb-matrix-set-speed-noeeprom-arguments}
- `uint8_t speed`
The new speed to set, from 0 to 255.
---
### `uint8_t rgb_matrix_get_speed(void)` {#api-rgb-matrix-get-speed}
Get the current effect speed.
#### Return Value {#api-rgb-matrix-get-speed-return}
The current effect speed, from 0 to 255.
---
### `void rgb_matrix_sethsv(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv}
Set the global effect hue, saturation, and value (brightness).
### Arguments {#api-rgb-matrix-sethsv-arguments}
- `uint8_t h`
The hue to set, from 0 to 255.
- `uint8_t s`
The saturation to set, from 0 to 255.
- `uint8_t v`
The value (brightness) to set, from 0 to 255.
---
### `void rgb_matrix_sethsv_noeeprom(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv-noeeprom}
Set the global effect hue, saturation, and value (brightness). New state is not written to EEPROM.
#### Arguments {#api-rgb-matrix-sethsv-noeeprom-arguments}
- `uint8_t h`
The hue to set, from 0 to 255.
- `uint8_t s`
The saturation to set, from 0 to 255.
- `uint8_t v`
The value (brightness) to set, from 0 to 255.
---
### `HSV rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv}
Get the current global effect hue, saturation, and value (brightness).
#### Return Value {#api-rgb-matrix-get-hsv-return}
The current effect HSV as an `HSV` struct.
---
### `void rgb_matrix_reload_from_eeprom(void)` {#api-rgb-matrix-reload-from-eeprom}
Reload the effect configuration (enabled, mode and color) from EEPROM.
---
### `bool rgb_matrix_get_suspend_state(void)` {#api-rgb-matrix-get-suspend-state}
Get the current suspend state of RGB Matrix.
#### Return Value {#api-rgb-matrix-get-suspend-state-return}
`true` if RGB Matrix is currently in the suspended state.
---
### `bool rgb_matrix_indicators_kb(void)` {#api-rgb-matrix-indicators-kb}
Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
#### Return Value {#api-rgb-matrix-indicators-kb-return}
Currently unused.
---
### `bool rgb_matrix_indicators_user(void)` {#api-rgb-matrix-indicators-user}
Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
#### Return Value {#api-rgb-matrix-indicators-user-return}
`true` to continue running the keyboard-level callback.
---
### `bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max)` {#api-rgb-matrix-indicators-advanced-kb}
Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
### Arguments {#api-rgb-matrix-indicators-advanced-kb-arguments}
- `uint8_t led_min`
The index of the first LED in this batch.
- `uint8_t led_max`
The index of the last LED in this batch.
#### Return Value {#api-rgb-matrix-indicators-advanced-kb-return}
Currently unused.
---
### `bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max)` {#api-rgb-matrix-indicators-advanced-user}
Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs.
### Arguments {#api-rgb-matrix-indicators-advanced-user-arguments}
- `uint8_t led_min`
The index of the first LED in this batch.
- `uint8_t led_max`
The index of the last LED in this batch.
#### Return Value {#api-rgb-matrix-indicators-advanced-user-return}
`true` to continue running the keyboard-level callback.

View File

@@ -1,74 +0,0 @@
# BootloadHID Flashing Instructions and Bootloader Information
ps2avr(GB) boards use an ATmega32A microcontroller and a different bootloader. It is not flashable using the regular QMK methods.
General flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `QK_BOOT` keycode (may not work on all devices)
* Hold the salt key while plugging the keyboard in (usually documented within keyboard readme)
2. Wait for the OS to detect the device
3. Flash a .hex file
4. Reset the device into application mode (may be done automatically)
## bootloadHID Flashing Target
::: tip
Using the QMK installation script, detailed [here](newbs_getting_started), the required bootloadHID tools should be automatically installed.
:::
To flash via the command line, use the target `:bootloadhid` by executing the following command:
```
make <keyboard>:<keymap>:bootloadhid
```
## GUI Flashing
### Windows
1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
2. Place your keyboard into reset.
3. Ensure the configured VendorID is `16c0` and ProductID is `05df`
4. Press the `Find Device` button and ensure that your keyboard is found.
5. Press the `Open .hex File` button and locate the `.hex` file you created.
6. Press the `Flash Device` button and wait for the process to complete.
## Command Line Flashing
1. Place your keyboard into reset.
2. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file.
### Windows Manual Installation
For MSYS2:
1. Download the BootloadHID firmware package from https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz.
2. Extract contents using a compatible tool, for example 7-Zip.
3. Add to the MSYS path by copying `commandline/bootloadHID.exe` from the extracted archive to your MSYS2 installation, typically `C:\msys64\usr\bin`.
For native Windows flashing, the `bootloadHID.exe` can be used outside of the MSYS2 environment.
### Linux Manual Installation
1. Install libusb development dependency:
```
# This depends on OS - for Debian the following works
sudo apt-get install libusb-dev
```
2. Download the BootloadHID firmware package:
```
wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz -O - | tar -xz -C /tmp
```
3. Build the bootloadHID executable:
```
cd /tmp/bootloadHID.2012-12-08/commandline/
make
sudo cp bootloadHID /usr/local/bin
```
### MacOS Manual Installation
1. Install Homebrew by typing the following:
```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
2. Install the following packages:
```
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
```

1
docs/public/CNAME Normal file
View File

@@ -0,0 +1 @@
docs.qmk.fm

View File

@@ -15,7 +15,8 @@
"console": false,
"extrakey": true,
"key_lock": true,
"mousekey": false,
"mousekey": true,
"encoder": true,
"nkro": true,
"rgblight": true
},

View File

@@ -15,7 +15,8 @@
"console": false,
"extrakey": true,
"key_lock": true,
"mousekey": false,
"mousekey": true,
"encoder": true,
"nkro": true,
"rgblight": true
},

View File

@@ -16,6 +16,7 @@
"extrakey": true,
"key_lock": true,
"mousekey": true,
"encoder": true,
"nkro": true,
"rgblight": true
},

View File

@@ -0,0 +1,12 @@
/* Copyright 2024 ai03 Design Studio */
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/* VBUS-routed pin for upstream detection */
#define USB_VBUS_PIN GP0
/* RP2040- and hardware-specific config */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64

View File

@@ -0,0 +1,118 @@
{
"manufacturer": "ai03 Design Studio",
"keyboard_name": "Altair",
"maintainer": "ai03_2725",
"bootloader": "rp2040",
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 6
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP9"],
"rows": ["GP11", "GP26", "GP27", "GP28", "GP10"]
},
"processor": "RP2040",
"split": {
"bootmagic": {
"matrix": [5, 0]
},
"enabled": true,
"handedness": {
"pin": "GP8"
},
"matrix_pins": {
"right": {
"cols": ["GP15", "GP21", "GP9", "GP13", "GP10", "GP11", "GP12"],
"rows": ["GP5", "GP16", "GP20", "GP28", "GP14"]
}
},
"soft_serial_pin": "GP29"
},
"url": "https://ai03.com/",
"usb": {
"device_version": "0.0.1",
"pid": "0x0022",
"vid": "0xA103"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.38},
{"matrix": [0, 1], "x": 1, "y": 0.38},
{"matrix": [0, 2], "x": 2, "y": 0.13},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.13},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [0, 6], "x": 6, "y": 0.5},
{"matrix": [5, 0], "x": 7.75, "y": 0.5},
{"matrix": [5, 1], "x": 8.75, "y": 0.25},
{"matrix": [5, 2], "x": 9.75, "y": 0.13},
{"matrix": [5, 3], "x": 10.75, "y": 0},
{"matrix": [5, 4], "x": 11.75, "y": 0.13},
{"matrix": [5, 5], "x": 12.75, "y": 0.38},
{"matrix": [5, 6], "x": 13.75, "y": 0.38},
{"matrix": [1, 0], "x": 0, "y": 1.38},
{"matrix": [1, 1], "x": 1, "y": 1.38},
{"matrix": [1, 2], "x": 2, "y": 1.13},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.13},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.5},
{"matrix": [6, 0], "x": 7.75, "y": 1.5},
{"matrix": [6, 1], "x": 8.75, "y": 1.25},
{"matrix": [6, 2], "x": 9.75, "y": 1.13},
{"matrix": [6, 3], "x": 10.75, "y": 1},
{"matrix": [6, 4], "x": 11.75, "y": 1.13},
{"matrix": [6, 5], "x": 12.75, "y": 1.38},
{"matrix": [6, 6], "x": 13.75, "y": 1.38},
{"matrix": [2, 0], "x": 0, "y": 2.38},
{"matrix": [2, 1], "x": 1, "y": 2.38},
{"matrix": [2, 2], "x": 2, "y": 2.13},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.13},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [2, 6], "x": 6, "y": 2.5},
{"matrix": [7, 0], "x": 7.75, "y": 2.5},
{"matrix": [7, 1], "x": 8.75, "y": 2.25},
{"matrix": [7, 2], "x": 9.75, "y": 2.13},
{"matrix": [7, 3], "x": 10.75, "y": 2},
{"matrix": [7, 4], "x": 11.75, "y": 2.13},
{"matrix": [7, 5], "x": 12.75, "y": 2.38},
{"matrix": [7, 6], "x": 13.75, "y": 2.38},
{"matrix": [3, 0], "x": 0, "y": 3.38},
{"matrix": [3, 1], "x": 1, "y": 3.38},
{"matrix": [3, 2], "x": 2, "y": 3.13},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3.13},
{"matrix": [3, 5], "x": 5, "y": 3.25},
{"matrix": [3, 6], "x": 6, "y": 3.5},
{"matrix": [8, 0], "x": 7.75, "y": 3.5},
{"matrix": [8, 1], "x": 8.75, "y": 3.25},
{"matrix": [8, 2], "x": 9.75, "y": 3.13},
{"matrix": [8, 3], "x": 10.75, "y": 3},
{"matrix": [8, 4], "x": 11.75, "y": 3.13},
{"matrix": [8, 5], "x": 12.75, "y": 3.38},
{"matrix": [8, 6], "x": 13.75, "y": 3.38},
{"matrix": [4, 3], "x": 2.71, "y": 4.13},
{"matrix": [4, 4], "x": 3.73, "y": 4.16},
{"matrix": [4, 5], "x": 4.74, "y": 4.36},
{"matrix": [4, 6], "x": 5.75, "y": 4.72},
{"matrix": [9, 0], "x": 8, "y": 4.72},
{"matrix": [9, 1], "x": 9.02, "y": 4.36},
{"matrix": [9, 2], "x": 10.03, "y": 4.18},
{"matrix": [9, 3], "x": 11.05, "y": 4.13}
]
}
}
}

View File

@@ -0,0 +1,24 @@
/* Copyright 2024 ai03 Design Studio */
/* SPDX-License-Identifier: GPL-2.0-or-later */
#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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_CAPS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL
),
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,24 @@
/* Copyright 2024 ai03 Design Studio */
/* SPDX-License-Identifier: GPL-2.0-or-later */
#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_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_CAPS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL
),
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,19 @@
# Altair
![altair](https://i.imgur.com/O9UXaCO.png)
ai03's third-generation ergonomic keyboard, 5-row variant
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
* Hardware Supported: Altair keyboard PCB
* Hardware Availability: Group buy
Make example for this keyboard (after setting up your build environment):
make ai03/altair:default
Flashing example for this keyboard:
make ai03/altair:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View File

@@ -0,0 +1,12 @@
/* Copyright 2024 ai03 Design Studio */
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/* VBUS-routed pin for upstream detection */
#define USB_VBUS_PIN GP0
/* RP2040- and hardware-specific config */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64

View File

@@ -0,0 +1,104 @@
{
"manufacturer": "ai03 Design Studio",
"keyboard_name": "Altair-X",
"maintainer": "ai03_2725",
"bootloader": "rp2040",
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 6
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP9"],
"rows": ["GP26", "GP27", "GP28", "GP10"]
},
"processor": "RP2040",
"split": {
"bootmagic": {
"matrix": [4, 0]
},
"enabled": true,
"handedness": {
"pin": "GP8"
},
"matrix_pins": {
"right": {
"cols": ["GP15", "GP21", "GP9", "GP13", "GP10", "GP11", "GP12"],
"rows": ["GP16", "GP20", "GP28", "GP14"]
}
},
"soft_serial_pin": "GP29"
},
"url": "https://ai03.com/",
"usb": {
"device_version": "0.0.1",
"pid": "0x0023",
"vid": "0xA103"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.38},
{"matrix": [0, 1], "x": 1, "y": 0.38},
{"matrix": [0, 2], "x": 2, "y": 0.13},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0.13},
{"matrix": [0, 5], "x": 5, "y": 0.25},
{"matrix": [0, 6], "x": 6, "y": 0.5},
{"matrix": [4, 0], "x": 7.75, "y": 0.5},
{"matrix": [4, 1], "x": 8.75, "y": 0.25},
{"matrix": [4, 2], "x": 9.75, "y": 0.13},
{"matrix": [4, 3], "x": 10.75, "y": 0},
{"matrix": [4, 4], "x": 11.75, "y": 0.13},
{"matrix": [4, 5], "x": 12.75, "y": 0.38},
{"matrix": [4, 6], "x": 13.75, "y": 0.38},
{"matrix": [1, 0], "x": 0, "y": 1.38},
{"matrix": [1, 1], "x": 1, "y": 1.38},
{"matrix": [1, 2], "x": 2, "y": 1.13},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1.13},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.5},
{"matrix": [5, 0], "x": 7.75, "y": 1.5},
{"matrix": [5, 1], "x": 8.75, "y": 1.25},
{"matrix": [5, 2], "x": 9.75, "y": 1.13},
{"matrix": [5, 3], "x": 10.75, "y": 1},
{"matrix": [5, 4], "x": 11.75, "y": 1.13},
{"matrix": [5, 5], "x": 12.75, "y": 1.38},
{"matrix": [5, 6], "x": 13.75, "y": 1.38},
{"matrix": [2, 0], "x": 0, "y": 2.38},
{"matrix": [2, 1], "x": 1, "y": 2.38},
{"matrix": [2, 2], "x": 2, "y": 2.13},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2.13},
{"matrix": [2, 5], "x": 5, "y": 2.25},
{"matrix": [2, 6], "x": 6, "y": 2.5},
{"matrix": [6, 0], "x": 7.75, "y": 2.5},
{"matrix": [6, 1], "x": 8.75, "y": 2.25},
{"matrix": [6, 2], "x": 9.75, "y": 2.13},
{"matrix": [6, 3], "x": 10.75, "y": 2},
{"matrix": [6, 4], "x": 11.75, "y": 2.13},
{"matrix": [6, 5], "x": 12.75, "y": 2.38},
{"matrix": [6, 6], "x": 13.75, "y": 2.38},
{"matrix": [3, 3], "x": 2.71, "y": 3.13},
{"matrix": [3, 4], "x": 3.73, "y": 3.16},
{"matrix": [3, 5], "x": 4.74, "y": 3.36},
{"matrix": [3, 6], "x": 5.75, "y": 3.72},
{"matrix": [7, 0], "x": 8, "y": 3.72},
{"matrix": [7, 1], "x": 9.02, "y": 3.36},
{"matrix": [7, 2], "x": 10.03, "y": 3.18},
{"matrix": [7, 3], "x": 11.05, "y": 3.13}
]
}
}
}

View File

@@ -0,0 +1,29 @@
/* Copyright 2024 ai03 Design Studio */
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL
),
[1] = LAYOUT(
_______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______,
_______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT(
_______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,29 @@
/* Copyright 2024 ai03 Design Studio */
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL
),
[1] = LAYOUT(
_______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______,
_______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT(
_______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,19 @@
# Altair-X
![altair-x](https://i.imgur.com/regfKQC.png)
ai03's third-generation ergonomic keyboard, 4-row variant
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
* Hardware Supported: Altair-X keyboard PCB
* Hardware Availability: Group buy
Make example for this keyboard (after setting up your build environment):
make ai03/altair_x:default
Flashing example for this keyboard:
make ai03/altair_x:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View File

@@ -15,7 +15,7 @@ Make example for this keyboard (after setting up your build environment):
make amag23:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make amag23:default:flash

View File

@@ -8,7 +8,7 @@ Make example for this keyboard (after setting up your build environment):
make ares:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make ares:default:flash

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make bfake:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make bfake:default:flash

View File

@@ -52,8 +52,11 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_classic": "LAYOUT"
},
"layouts": {
"LAYOUT_classic": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
{"matrix": [0, 1], "x": 1.5, "y": 0},

View File

@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | LGUI | DEL | ~` | LALT | SPACE | | FN | SPACE | | LEFT | DOWN | UP | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------'
*/
[_CLASSIC] = LAYOUT_classic(
[_CLASSIC] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
@@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | RGUI | | | RALT | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------'
*/
[_FNCLASSIC] = LAYOUT_classic(
[_FNCLASSIC] = LAYOUT(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, KC_APP, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______,
KC_CAPS, _______, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL,

View File

@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | LGUI | DEL | ~` | LALT | SPACE | | MO | SPACE | | LEFT | DOWN | UP | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_classic(
[0] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------'
*/
[1] = LAYOUT_classic(
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
@@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_classic(
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_classic(
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@@ -35,9 +35,9 @@
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 15], "x": 16.25, "y": 1, "flags": 4},
{"matrix": [0, 16], "x": 17.25, "y": 1, "flags": 4},
{"matrix": [0, 17], "x": 18.25, "y": 1, "flags": 4}
{"matrix": [0, 15], "x": 16, "y": 1, "flags": 4},
{"matrix": [0, 16], "x": 17, "y": 1, "flags": 4},
{"matrix": [0, 17], "x": 18, "y": 1, "flags": 4}
],
"led_count": 3,
"max_brightness": 255

View File

@@ -43,10 +43,10 @@
"levels": 6
},
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "ON/OFF", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "SAT+", "matrix": [0, 1], "x": 4, "y": 0},

View File

@@ -0,0 +1,14 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// FRAM configuration
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4
// SPI configuration
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4

View File

@@ -0,0 +1,14 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#define SERIAL_BUFFERS_SIZE 256
#define SPI_USE_WAIT TRUE
#include_next <halconf.h>

View File

@@ -0,0 +1,65 @@
{
"manufacturer": "customMK",
"keyboard_name": "Elysian",
"maintainer": "customMK",
"bootloader": "stm32-dfu",
"debounce": 10,
"diode_direction": "ROW2COL",
"dynamic_keymap": {
"layer_count": 32
},
"eeprom": {
"driver": "spi"
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"encoder": true
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4"],
"rows": ["B0", "B1", "B6", "B8"]
},
"processor": "STM32F411",
"qmk": {
"tap_keycode_delay": 10
},
"url": "https://shop.custommk.com/collections/elysian/products/elysian",
"usb": {
"device_version": "1.0.0",
"pid": "0xFABB",
"vid": "0xF35B",
"force_nkro": true
},
"encoder": {
"rotary": [
{ "pin_a": "A5", "pin_b": "A6", "resolution": 2},
{ "pin_a": "A7", "pin_b": "A8", "resolution": 2}
]
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3}
]
}
}
}

View File

@@ -0,0 +1,19 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_ENT,
KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) }
};
#endif

View File

@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@@ -0,0 +1,6 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define DYNAMIC_KEYMAP_MACRO_COUNT 128

View File

@@ -0,0 +1,19 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, MO(1),
KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) }
};
#endif

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@@ -0,0 +1,10 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
// FRAM
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE

View File

@@ -0,0 +1,27 @@
# Elysian
![Elysian](https://i.imgur.com/W8yx11qh.jpeg)
Elysian is a 3x5 macropad including two rotary encoders.
* Keyboard Maintainer: [customMK](https://github.com/customMK)
* Hardware Supported: Elysian
* Hardware Availability: [customMK](https://shop.custommk.com/collections/keyboards/products/elysian)
Make example for this keyboard (after setting up your build environment):
make custommk/elysian:default
Flashing example for this keyboard:
make custommk/elysian:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Press and hold down the rotary encoder at (0,0) in the matrix (the rotary encoder in the top left corner) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,28 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// FRAM configuration
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz
// SPI configuration
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4
// Audio configuration
#define AUDIO_PIN B8
#define AUDIO_PWM_DRIVER PWMD4
#define AUDIO_PWM_CHANNEL 3
#define AUDIO_PWM_PAL_MODE 2
#define AUDIO_STATE_TIMER GPTD5
#define AUDIO_INIT_DELAY
#define WS2812_PWM_DRIVER PWMD1
#define WS2812_PWM_CHANNEL 3
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6

View File

@@ -0,0 +1,30 @@
/* Copyright 2024 customMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define HAL_USE_PWM TRUE
#define HAL_USE_SPI TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#define SERIAL_BUFFERS_SIZE 256
// This enables interrupt-driven mode
#define SPI_USE_WAIT TRUE
#include_next <halconf.h>

View File

@@ -0,0 +1,192 @@
{
"manufacturer": "customMK",
"keyboard_name": "ErgoStrafer RGB",
"maintainer": "customMK",
"bootloader": "stm32-dfu",
"diode_direction": "ROW2COL",
"audio": {
"driver": "pwm_hardware"
},
"dynamic_keymap": {
"layer_count": 32
},
"eeprom": {
"driver": "spi"
},
"encoder": {
"rotary": [
{"pin_a": "A8", "pin_b": "A4", "resolution": 2},
{"pin_a": "B12", "pin_b": "B14", "resolution": 2},
{"pin_a": "B15", "pin_b": "A15", "resolution": 2}
]
},
"features": {
"audio": true,
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B0", "A1", "A2", "A3", "A6", "B6", "B10"],
"rows": ["C13", "C14", "C15", "B1", "A7", "A5"]
},
"processor": "STM32F411",
"qmk": {
"tap_keycode_delay": 10
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"center_point": [112, 112],
"driver": "ws2812",
"layout": [
{"matrix": [0, 1], "x": 32, "y": 45, "flags": 4},
{"matrix": [0, 2], "x": 57, "y": 40, "flags": 4},
{"matrix": [0, 3], "x": 83, "y": 38, "flags": 4},
{"matrix": [0, 4], "x": 109, "y": 40, "flags": 4},
{"matrix": [0, 5], "x": 134, "y": 45, "flags": 4},
{"x": 136, "y": 18, "flags": 4},
{"matrix": [0, 0], "x": 167, "y": 11, "flags": 4},
{"matrix": [1, 0], "x": 170, "y": 33, "flags": 4},
{"matrix": [2, 0], "x": 174, "y": 54, "flags": 4},
{"x": 195, "y": 57, "flags": 4},
{"x": 211, "y": 81, "flags": 4},
{"x": 193, "y": 90, "flags": 4},
{"matrix": [0, 6], "x": 171, "y": 90, "flags": 4},
{"matrix": [2, 5], "x": 143, "y": 90, "flags": 4},
{"matrix": [1, 5], "x": 140, "y": 67, "flags": 4},
{"matrix": [1, 4], "x": 118, "y": 61, "flags": 4},
{"matrix": [2, 3], "x": 95, "y": 58, "flags": 4},
{"matrix": [1, 3], "x": 71, "y": 58, "flags": 4},
{"matrix": [1, 2], "x": 48, "y": 61, "flags": 4},
{"matrix": [1, 1], "x": 26, "y": 67, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 90, "flags": 4},
{"matrix": [2, 1], "x": 23, "y": 90, "flags": 4},
{"matrix": [2, 2], "x": 52, "y": 87, "flags": 4},
{"matrix": [3, 3], "x": 83, "y": 85, "flags": 4},
{"matrix": [2, 4], "x": 114, "y": 87, "flags": 4},
{"matrix": [3, 5], "x": 139, "y": 113, "flags": 4},
{"matrix": [1, 6], "x": 167, "y": 114, "flags": 4},
{"x": 207, "y": 112, "flags": 4},
{"matrix": [5, 6], "x": 224, "y": 146, "flags": 4},
{"matrix": [3, 6], "x": 184, "y": 147, "flags": 4},
{"matrix": [2, 6], "x": 156, "y": 147, "flags": 4},
{"matrix": [4, 5], "x": 127, "y": 135, "flags": 4},
{"matrix": [3, 4], "x": 111, "y": 112, "flags": 4},
{"matrix": [4, 3], "x": 83, "y": 112, "flags": 4},
{"matrix": [3, 2], "x": 55, "y": 112, "flags": 4},
{"matrix": [3, 1], "x": 20, "y": 114, "flags": 4},
{"matrix": [4, 1], "x": 15, "y": 138, "flags": 4},
{"matrix": [5, 1], "x": 14, "y": 162, "flags": 4},
{"matrix": [4, 2], "x": 52, "y": 137, "flags": 4},
{"matrix": [5, 3], "x": 83, "y": 139, "flags": 4},
{"x": 83, "y": 164, "flags": 4},
{"x": 104, "y": 144, "flags": 4},
{"matrix": [5, 5], "x": 121, "y": 173, "flags": 4},
{"matrix": [4, 6], "x": 167, "y": 173, "flags": 4}
],
"max_brightness": 120,
"sat_steps": 8,
"speed_steps": 10,
"val_steps": 8
},
"url": "https://shop.custommk.com/collections/ergostrafer/products/ergostrafer",
"usb": {
"device_version": "1.0.0",
"pid": "0xFAB9",
"vid": "0xF35B"
},
"ws2812": {
"driver": "pwm",
"pin": "A10"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "F9", "matrix": [0, 0], "x": 7.5, "y": 0},
{"label": "7", "matrix": [0, 1], "x": 1.5, "y": 1.25},
{"label": "8", "matrix": [0, 2], "x": 2.5, "y": 1.25},
{"label": "9", "matrix": [0, 3], "x": 3.5, "y": 1.25},
{"label": "0", "matrix": [0, 4], "x": 4.5, "y": 1.25},
{"label": "-", "matrix": [0, 5], "x": 5.5, "y": 1.25},
{"label": "T", "matrix": [0, 6], "x": 7.25, "y": 3.25, "w": 1.5},
{"label": "PrtScr", "matrix": [1, 0], "x": 7.5, "y": 1},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 2.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 2.25},
{"label": "3", "matrix": [1, 3], "x": 3, "y": 2.25},
{"label": "5", "matrix": [1, 4], "x": 5, "y": 2.25},
{"label": "6", "matrix": [1, 5], "x": 6, "y": 2.25},
{"label": "G", "matrix": [1, 6], "x": 7.25, "y": 4.25, "w": 1.5},
{"label": "F5", "matrix": [2, 0], "x": 7.5, "y": 2},
{"label": "Tab", "matrix": [2, 1], "x": 1, "y": 3.5},
{"label": "Q", "matrix": [2, 2], "x": 2.5, "y": 3.4},
{"label": "4", "matrix": [2, 3], "x": 4, "y": 2.25},
{"label": "E", "matrix": [2, 4], "x": 4.5, "y": 3.4},
{"label": "R", "matrix": [2, 5], "x": 6, "y": 3.3},
{"label": "B", "matrix": [2, 6], "x": 6.5, "y": 5.75, "w": 1.5},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5},
{"label": "L Alt", "matrix": [3, 1], "x": 0.25, "y": 4.75, "w": 1.5},
{"label": "A", "matrix": [3, 2], "x": 2.5, "y": 4.5},
{"label": "W", "matrix": [3, 3], "x": 3.5, "y": 3.4},
{"label": "D", "matrix": [3, 4], "x": 4.5, "y": 4.5},
{"label": "F", "matrix": [3, 5], "x": 6, "y": 4.3},
{"label": "P", "matrix": [3, 6], "x": 8, "y": 5.75},
{"label": "L Shift", "matrix": [4, 1], "x": 0.25, "y": 5.75, "w": 1.5},
{"label": "Z", "matrix": [4, 2], "x": 2.5, "y": 5.6},
{"label": "S", "matrix": [4, 3], "x": 3.5, "y": 4.5},
{"label": "V", "matrix": [4, 5], "x": 5, "y": 5.75, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 6.5, "y": 6.85, "w": 1.75},
{"label": "L Ctrl Duck", "matrix": [5, 1], "x": 0.25, "y": 6.75, "w": 1.5},
{"label": "X", "matrix": [5, 3], "x": 3.5, "y": 5.6},
{"label": "C", "matrix": [5, 5], "x": 4.75, "y": 6.85, "w": 1.75},
{"label": "L Ctrl", "matrix": [5, 6], "x": 9.5, "y": 5.75}
]
}
}
}

View File

@@ -0,0 +1,21 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T,
KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G,
KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B,
KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P,
KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC,
KC_LCTL, KC_X, KC_C, KC_LCTL
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif

View File

@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@@ -0,0 +1,6 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define DYNAMIC_KEYMAP_MACRO_COUNT 128

View File

@@ -0,0 +1,19 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T,
KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G,
KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B,
KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P,
KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC,
KC_LCTL, KC_X, KC_C, KC_LCTL
)
};
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@@ -0,0 +1,31 @@
/* Copyright 2024 customMK
*
* 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_next <mcuconf.h>
// Used for audio
#undef STM32_PWM_USE_TIM4
#define STM32_PWM_USE_TIM4 TRUE
// Used for FRAM
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE
// Used for RGB matrix
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE

View File

@@ -0,0 +1,27 @@
# ergostrafer rgb
![ergostrafer rgb](https://i.imgur.com/3LZImFwh.jpeg)
ErgoStrafer RGB is a gaming mechanical keyboard with per-key RGB LEDs that reproduces the layout of the discontinued SteelSeries Merc Stealth a.k.a. Zboard.
* Keyboard Maintainer: [customMK](https://github.com/customMK)
* Hardware Supported: ErgoStrafer RGB
* Hardware Availability: [customMK](https://shop.custommk.com/collections/ergostrafer/products/ergostrafer)
Make example for this keyboard (after setting up your build environment):
make custommk/ergostrafer_rgb:default
Flashing example for this keyboard:
make custommk/ergostrafer_rgb:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the "Load" key in the top right corner) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -139,41 +139,41 @@
{ "flags": 4, "matrix": [2, 5], "x": 175, "y": 25 },
{ "flags": 8, "matrix": [2, 1], "x": 0, "y": 35 },
{ "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 35 },
{ "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 35 },
{ "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 35 },
{ "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 35 },
{ "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 35 },
{ "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 35 },
{ "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 35 },
{ "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 35 },
{ "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 35 },
{ "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 35 },
{ "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 35 },
{ "flags": 4, "matrix": [10, 4], "x": 127.5, "y": 35 },
{ "flags": 4, "matrix": [1, 2], "x": 17, "y": 35 },
{ "flags": 4, "matrix": [2, 2], "x": 27, "y": 35 },
{ "flags": 4, "matrix": [3, 2], "x": 37, "y": 35 },
{ "flags": 4, "matrix": [4, 2], "x": 47, "y": 35 },
{ "flags": 4, "matrix": [4, 3], "x": 57, "y": 35 },
{ "flags": 4, "matrix": [5, 3], "x": 67, "y": 35 },
{ "flags": 4, "matrix": [5, 2], "x": 77, "y": 35 },
{ "flags": 4, "matrix": [6, 2], "x": 87, "y": 35 },
{ "flags": 4, "matrix": [7, 2], "x": 97, "y": 35 },
{ "flags": 4, "matrix": [8, 2], "x": 107, "y": 35 },
{ "flags": 4, "matrix": [8, 3], "x": 117, "y": 35 },
{ "flags": 4, "matrix": [10, 4], "x": 127, "y": 35 },
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 45 },
{ "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 45 },
{ "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 45 },
{ "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 45 },
{ "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 45 },
{ "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 45 },
{ "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 45 },
{ "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 45 },
{ "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 45 },
{ "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 45 },
{ "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 45 },
{ "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 45 },
{ "flags": 4, "matrix": [1, 4], "x": 22, "y": 45 },
{ "flags": 4, "matrix": [2, 4], "x": 32, "y": 45 },
{ "flags": 4, "matrix": [3, 4], "x": 42, "y": 45 },
{ "flags": 4, "matrix": [4, 4], "x": 52, "y": 45 },
{ "flags": 4, "matrix": [4, 5], "x": 62, "y": 45 },
{ "flags": 4, "matrix": [5, 5], "x": 72, "y": 45 },
{ "flags": 4, "matrix": [5, 4], "x": 82, "y": 45 },
{ "flags": 4, "matrix": [6, 4], "x": 92, "y": 45 },
{ "flags": 4, "matrix": [7, 4], "x": 102, "y": 45 },
{ "flags": 4, "matrix": [8, 5], "x": 112, "y": 45 },
{ "flags": 4, "matrix": [9, 1], "x": 122, "y": 45 },
{ "flags": 4, "matrix": [3, 5], "x": 165, "y": 45 },
{ "flags": 4, "matrix": [0, 6], "x": 0, "y": 55 },
{ "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 55 },
{ "flags": 4, "matrix": [9, 0], "x": 12, "y": 55 },
{ "flags": 4, "matrix": [9, 3], "x": 25, "y": 55 },
{ "flags": 4, "matrix": [9, 4], "x": 37.5, "y": 55 },
{ "flags": 4, "matrix": [9, 4], "x": 37, "y": 55 },
{ "flags": 4, "matrix": [9, 5], "x": 100, "y": 55 },
{ "flags": 4, "matrix": [9, 2], "x": 112.5, "y": 55 },
{ "flags": 4, "matrix": [9, 2], "x": 112, "y": 55 },
{ "flags": 4, "matrix": [8, 4], "x": 125, "y": 55 },
{ "flags": 4, "matrix": [0, 4], "x": 137.5, "y": 55 },
{ "flags": 4, "matrix": [0, 4], "x": 137, "y": 55 },
{ "flags": 4, "matrix": [0, 3], "x": 155, "y": 55 },
{ "flags": 4, "matrix": [7, 3], "x": 165, "y": 55 },
{ "flags": 4, "matrix": [0, 5], "x": 175, "y": 55 }

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make db/db63:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make db/db63:default:flash

View File

@@ -7,7 +7,7 @@
// entirely and just use numbers.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_v2(
LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_HOME, KC_PGUP,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_END, KC_PGDN,
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, KC_SCRL,
@@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
LAYOUT_v2(
LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_VOLU, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@@ -36,8 +36,11 @@
"resync": true
}
},
"layout_aliases": {
"LAYOUT_v2": "LAYOUT_all"
},
"layouts": {
"LAYOUT_v2": {
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@@ -48,54 +48,54 @@
"driver": "ws2812",
"layout": [
{"flags": 4, "matrix": [0, 0], "x": 0, "y": 0},
{"flags": 4, "matrix": [0, 1], "x": 62.2, "y": 0},
{"flags": 4, "matrix": [0, 2], "x": 99.6, "y": 0},
{"flags": 4, "matrix": [0, 3], "x": 124.4, "y": 0},
{"flags": 4, "matrix": [0, 4], "x": 149.3, "y": 0},
{"flags": 4, "matrix": [0, 5], "x": 174.2, "y": 0},
{"flags": 4, "matrix": [0, 6], "x": 199.1, "y": 0},
{"flags": 4, "matrix": [0, 1], "x": 62, "y": 0},
{"flags": 4, "matrix": [0, 2], "x": 99, "y": 0},
{"flags": 4, "matrix": [0, 3], "x": 124, "y": 0},
{"flags": 4, "matrix": [0, 4], "x": 149, "y": 0},
{"flags": 4, "matrix": [0, 5], "x": 174, "y": 0},
{"flags": 4, "matrix": [0, 6], "x": 199, "y": 0},
{"flags": 4, "matrix": [0, 7], "x": 224, "y": 0},
{"flags": 4, "matrix": [1, 0], "x": 0, "y": 12.8},
{"flags": 4, "matrix": [1, 1], "x": 24.9, "y": 12.8},
{"flags": 4, "matrix": [1, 2], "x": 49.8, "y": 12.8},
{"flags": 4, "matrix": [1, 3], "x": 74.6, "y": 12.8},
{"flags": 4, "matrix": [1, 4], "x": 99.6, "y": 12.8},
{"flags": 4, "matrix": [1, 5], "x": 124.4, "y": 12.8},
{"flags": 4, "matrix": [1, 6], "x": 149.3, "y": 12.8},
{"flags": 4, "matrix": [1, 0], "x": 0, "y": 12},
{"flags": 4, "matrix": [1, 1], "x": 24, "y": 12},
{"flags": 4, "matrix": [1, 2], "x": 49, "y": 12},
{"flags": 4, "matrix": [1, 3], "x": 74, "y": 12},
{"flags": 4, "matrix": [1, 4], "x": 99, "y": 12},
{"flags": 4, "matrix": [1, 5], "x": 124, "y": 12},
{"flags": 4, "matrix": [1, 6], "x": 149, "y": 12},
{"flags": 4, "matrix": [2, 0], "x": 0, "y": 25.6},
{"flags": 4, "matrix": [2, 1], "x": 24.9, "y": 25.6},
{"flags": 4, "matrix": [2, 2], "x": 49.8, "y": 25.6},
{"flags": 4, "matrix": [2, 3], "x": 74.6, "y": 32},
{"flags": 4, "matrix": [2, 4], "x": 90, "y": 25.6},
{"flags": 4, "matrix": [2, 5], "x": 124.4, "y": 25.6},
{"flags": 4, "matrix": [2, 6], "x": 149.3, "y": 25.6},
{"flags": 4, "matrix": [2, 0], "x": 0, "y": 25},
{"flags": 4, "matrix": [2, 1], "x": 24, "y": 25},
{"flags": 4, "matrix": [2, 2], "x": 49, "y": 25},
{"flags": 4, "matrix": [2, 3], "x": 74, "y": 32},
{"flags": 4, "matrix": [2, 4], "x": 90, "y": 25},
{"flags": 4, "matrix": [2, 5], "x": 124, "y": 25},
{"flags": 4, "matrix": [2, 6], "x": 149, "y": 25},
{"flags": 4, "matrix": [3, 0], "x": 0, "y": 38.4},
{"flags": 4, "matrix": [3, 1], "x": 24.9, "y": 38.4},
{"flags": 4, "matrix": [3, 2], "x": 49.8, "y": 38.4},
{"flags": 4, "matrix": [3, 3], "x": 99.6, "y": 38.4},
{"flags": 4, "matrix": [3, 4], "x": 124.4, "y": 38.4},
{"flags": 4, "matrix": [3, 5], "x": 149.3, "y": 38.4},
{"flags": 4, "matrix": [3, 0], "x": 0, "y": 38},
{"flags": 4, "matrix": [3, 1], "x": 24, "y": 38},
{"flags": 4, "matrix": [3, 2], "x": 49, "y": 38},
{"flags": 4, "matrix": [3, 3], "x": 99, "y": 38},
{"flags": 4, "matrix": [3, 4], "x": 124, "y": 38},
{"flags": 4, "matrix": [3, 5], "x": 149, "y": 38},
{"flags": 4, "matrix": [4, 0], "x": 0, "y": 51.2},
{"flags": 4, "matrix": [4, 1], "x": 24.9, "y": 51.2},
{"flags": 4, "matrix": [4, 2], "x": 49.8, "y": 51.2},
{"flags": 4, "matrix": [4, 3], "x": 74.6, "y": 57.6},
{"flags": 4, "matrix": [4, 5], "x": 124.4, "y": 51.2},
{"flags": 4, "matrix": [4, 0], "x": 0, "y": 51},
{"flags": 4, "matrix": [4, 1], "x": 24, "y": 51},
{"flags": 4, "matrix": [4, 2], "x": 49, "y": 51},
{"flags": 4, "matrix": [4, 3], "x": 74, "y": 57},
{"flags": 4, "matrix": [4, 5], "x": 124, "y": 51},
{"flags": 4, "matrix": [5, 0], "x": 12.5, "y": 64},
{"flags": 4, "matrix": [5, 1], "x": 49.8, "y": 64},
{"flags": 4, "matrix": [5, 2], "x": 99.6, "y": 64},
{"flags": 4, "matrix": [5, 3], "x": 124.4, "y": 64},
{"flags": 4, "matrix": [5, 4], "x": 149.3, "y": 64},
{"flags": 4, "matrix": [5, 0], "x": 12, "y": 64},
{"flags": 4, "matrix": [5, 1], "x": 49, "y": 64},
{"flags": 4, "matrix": [5, 2], "x": 99, "y": 64},
{"flags": 4, "matrix": [5, 3], "x": 124, "y": 64},
{"flags": 4, "matrix": [5, 4], "x": 149, "y": 64},
{"flags": 2, "x": 224, "y": 64},
{"flags": 2, "x": 74.6, "y": 64},
{"flags": 2, "x": 74, "y": 64},
{"flags": 2, "x": 0, "y": 64},
{"flags": 2, "x": 0, "y": 0},
{"flags": 2, "x": 74.6, "y": 0},
{"flags": 2, "x": 74, "y": 0},
{"flags": 2, "x": 224, "y": 0}
],
"max_brightness": 200,

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make donutcables/budget96:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make donutcables/budget96:default:flash

View File

@@ -34,6 +34,7 @@
"bootloader": "atmel-dfu",
"community_layouts": ["65_ansi_blocker"],
"layout_aliases": {
"LAYOUT_multi": "LAYOUT_all",
"LAYOUT_ansi": "LAYOUT_65_ansi_blocker"
},
"layouts": {
@@ -188,7 +189,7 @@
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_multi": {
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* │LCtl│LGui│LAlt│ Space │Spc │ Space │RAl│Fn │RCt│ ← │ ↓ │ → │
* └────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┴───┘
*/
[0] = LAYOUT_multi(
[0] = LAYOUT_all(
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_BSLS, KC_GRV, KC_INS,
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, KC_DEL,
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,
@@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* │ │ │ │ │ │ │ │ │ │ │ │ │
* └────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┴───┘
*/
[1] = LAYOUT_multi(
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
BL_TOGG, BL_STEP, BL_DOWN, BL_UP, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@@ -1 +0,0 @@
# This file intentionally left blank

View File

@@ -2,5 +2,11 @@
"keyboard_name": "ErgoDox EZ",
"usb": {
"pid": "0x4974"
},
"features": {
"bootmagic": false,
"mousekey": true,
"extrakey": true,
"nkro": true
}
}

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make eve/meteor:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make eve/meteor:default:flash

View File

@@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment):
make exclusive/e6v2/le_bmc:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make exclusive/e6v2/le_bmc:default:flash

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make exclusive/e6v2/oe_bmc:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make exclusive/e6v2/oe_bmc:default:flash

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make exent:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](flashing_bootloadhid.md))
Flashing example for this keyboard:
make exent:default:flash

View File

@@ -27,8 +27,11 @@
"pid": "0x2320",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "D3", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "D2", "matrix": [1, 0], "x": 0, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/promicro",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@@ -33,8 +33,11 @@
"pid": "0x2321",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "A9", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "A10", "matrix": [1, 0], "x": 0, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/proton_c",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@@ -38,8 +38,11 @@
"pid": "0x2326",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "GP0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "GP1", "matrix": [1, 0], "x": 0, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/rp2040",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@@ -30,8 +30,11 @@
"pid": "0x2322",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "B0", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "F0", "matrix": [0, 1], "x": 4, "y": 0},
{"label": "B1", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "F1", "matrix": [1, 1], "x": 4, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_2",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0", "KC_1",

View File

@@ -37,8 +37,11 @@
"pid": "0x2323",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "B7", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "B6", "matrix": [0, 3], "x": 5, "y": 0},
{"label": "D0", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "B5", "matrix": [1, 3], "x": 5, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_2pp",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0", "KC_1",

View File

@@ -31,8 +31,11 @@
"pid": "0x2324",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [1, 0], "x": 0, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_32",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@@ -31,8 +31,11 @@
"pid": "0x2325",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [1, 0], "x": 0, "y": 1},

View File

@@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_lc",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment):
make facew:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make facew:default:flash

View File

@@ -30,8 +30,11 @@
"processor": "atmega32u4",
"bootloader": "caterina",
"community_layouts": ["ortho_4x4"],
"layout_aliases": {
"LAYOUT_tradestation": "LAYOUT_4x2u"
},
"layouts": {
"LAYOUT_tradestation": {
"LAYOUT_4x2u": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.125, "y": 0},

View File

@@ -15,13 +15,11 @@ Make example for this keyboard (after setting up your build environment):
make foxlab/time80:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make foxlab/time80:default:flash
**Reset Key**: There are no reset switches or pads. Follow this
[guide](https://docs.qmk.fm/#/flashing_bootloadhid)
to have it flashed for the first time. Remember to add a `QK_BOOT`
**Reset Key**: There are no reset switches or pads. Remember to add a `QK_BOOT`
key on your keymap for future endeavors.
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).

View File

@@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment):
make ft/mars65:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make ft/mars65:default:flash

View File

@@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment):
make ft/mars80:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make ft/mars80:default:flash

View File

@@ -107,12 +107,14 @@ led_config_t g_led_config = {{
2, 2, 2, 2, 2, 2, 2
} };
# ifdef AW20216S_PW_EN_PIN_1
# ifdef AW20216S_PW_EN_PIN
void keyboard_pre_init_user(void) {
void keyboard_pre_init_kb(void) {
wait_ms(2000);
gpio_set_pin_output(AW20216S_PW_EN_PIN);
gpio_write_pin_high(AW20216S_PW_EN_PIN);
keyboard_pre_init_user();
}
# endif

View File

@@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment):
make gray_studio/hb85:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
Flashing example for this keyboard:
make gray_studio/hb85:default:flash

View File

@@ -39,8 +39,11 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"debounce": 3,
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@@ -171,19 +171,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
TD(TD_CUT_REDO), TD(TD_MPRV_LEFT), TD(TD_PLAY_PAUSE_MUTE), TD(TD_MNXT_RIGHT), TD(QUAD_CVXA), TD(QUAD_LAYER_SWITCH)
),
[1] = LAYOUT_all(
[1] = LAYOUT(
YOUTUBE, KC_WBAK, TD(TD_SEARCH_REFRESH), KC_WFWD, FACEBOOK, TD(QUAD_LAYER_SWITCH)
),
[2] = LAYOUT_all(
[2] = LAYOUT(
A(KC_F4), SGUI(KC_S), KC_MYCM, LCA(KC_DEL), KC_CALC, TD(QUAD_LAYER_SWITCH)
),
[3] = LAYOUT_all(
[3] = LAYOUT(
C(KC_SLSH), VALORANT, VSCODE, DISCORD, LSA(KC_A), TD(QUAD_LAYER_SWITCH)
),
};

View File

@@ -171,19 +171,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
TD(TD_CUT_REDO), TD(TD_MPRV_LEFT), TD(TD_PLAY_PAUSE_MUTE), TD(TD_MNXT_RIGHT), TD(QUAD_CVXA), TD(QUAD_LAYER_SWITCH)
),
[1] = LAYOUT_all(
[1] = LAYOUT(
YOUTUBE, KC_WBAK, TD(TD_SEARCH_REFRESH), KC_WFWD, FACEBOOK, TD(QUAD_LAYER_SWITCH)
),
[2] = LAYOUT_all(
[2] = LAYOUT(
A(KC_F4), SGUI(KC_S), KC_MYCM, LCA(KC_DEL), KC_CALC, TD(QUAD_LAYER_SWITCH)
),
[3] = LAYOUT_all(
[3] = LAYOUT(
C(KC_SLSH), VALORANT, VSCODE, DISCORD, LSA(KC_A), TD(QUAD_LAYER_SWITCH)
),
};

View File

@@ -51,8 +51,11 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

Some files were not shown because too many files have changed in this diff Show More